Skip to content

Instantly share code, notes, and snippets.

@Iron-Wolf
Last active March 30, 2021 16:19
Show Gist options
  • Save Iron-Wolf/c320e34c271b1edede4cbd05762b23b2 to your computer and use it in GitHub Desktop.
Save Iron-Wolf/c320e34c271b1edede4cbd05762b23b2 to your computer and use it in GitHub Desktop.
Note de 5ORC

Matière 5ORC

Rappel

constitution d'une BDD Oracle
control file : où ce situe les fichiers (redondé sur plusieur disques)
data file : fichier de données (tables, vues, index, ...)
redo log file : log d'actions (commandes executées). permet de retrouver un etat stable après un crash par ex.
parameter file : paramètre de la base au démarrage
password file : user/password
archives : permet de sauvegarder les redo log file

tablespaces : contient les donnéés (espace de stockage logique ~= RAID0)
séparé en segment, extends, block (os block)

SGA : system global area
PGA : personal global area

( ⚠️ A savoir) Data Pump : export/import vers oracle. création d'un Directory objects, puis donner le droit en lecture (import), ecriture (exporter) à l'utilisateur ce qui permet de modifier la base

( ⚠️ A savoir) SQL loader : mini ETL (charger des fichier externes, dans la base)
fichiers obligatoires : control file (comment intégrer les données de A à Z) / input data files (données)
fichiers facultatifs : log file (log de l'opération) / bad files (ligne pas passé pour des raisons techniques) / discard files (ligne que l'on a choisi de ne pas intégrer pour des raions de règles)

direct path : charger des block de données (plus rapide, table non requetable, gros volumes)
conventionel : chargement pas insert (plus lent, commit obligatoire, génère du redo)

Les besoins du Data warehouse

analyse de rapport amène à des décision stratégiques
les BDD relationelles ne sont pas faites pour générer des rapport suffisament important pour être utilisé rapidement

objectif du DW :

rendre la donnée visualisable, via des rapports
fournir de l'info à d'autre outils BI (ERP, ...)
ne produit pas de donnée (ne génère pas de nouvelles vente par exemple), contrairement à un ERP
"on transforme l'existant pour le rendre plus lisible"

Donnée interessante si fiable (unitée monétaire, ...)

olap : analyse de gros volumes de données (data warehouse), accès rapide aux données (peu de jointure)
oltp : modification fréquente (relationelle), pas de redondance

Composant et management

datamart : découpage logique des données
ad-hoc : rapport customisable par l'utilisateur (cube)

Cheminement logique : Extraire données brutes (STA ou DPA) > ODS > load DWH (datawarehouse)
Data Preparation Area (ou Staging Area) : environnement virtuelle utilisé avant l'insertion dans le DW (base opérationelle)
contient uniquement les données brutes. L'ODS se chargera de nettoyer les données pour les rendres cohérentes.

Molap : cube (utile pour de la grosse volumétrie mais avec un niveau de détail faible)
Rolap : relationnel

Model en étoile : table de fait centrale, lié à des tables de dimensions (1 jointure max, requêtes rapides)
Model flocon : extension du model étoile, permet d'éviter la redondance (moins d'espace de stockage, plus de jointure donc moins performant)
Shared dimension : table de dimensions reliée à plusieurs table de fait (Dimension Temps : table préconstruite avec les année, jours, 1/4année, mois paire, ...)
table d'agréga : étape en plus dans l'ETL. requête sur une table contenant déjà des champs calculés
alimentée le soir pour être utilisé le matin par exemple

4 element principaux :

les besoins
les limites techniques
le model de base de donnée
spécification de l'utilisateur
= bien comprendre le besoin pour la mise en place d'un DW (pour le projet BI)

autres composants

Queries Optimizer : composant d'oracle. Permet d'indiquer à Oracle quels données on veut, mais pas comment le faire

Rule Based Optimizer : deprecated
Cost Based Optimizer (CBO) : nouveau (plus efficace)
utilise des statistiques du DW pour générer la meilleur requête.
compute statistics calcul les stat sur la table entière
estimate statistics extrapole les statistiques à partir de X lignes

SQL hints : utilisé pour bypass l'optimiser, si on sait que les statistiques sont pas bonnes

(transport tablespace : méthode plus rapide pour export/import oracle)
External table : métadonnées dans la database, mais données sur le file système

multistage : plusieurs tables intermédiaires lors du chargement des données dans le DW (plus sécure)
pipeline : insertion directe dans le DW, une fois les données transformées (plus rapide)

Unconditional Insert : insert un jeu de données dans plusieurs table (données dupliquées)
Insert First : ordone le jeu de données (données non dupliquées)

technicals tools

Explain plan : utilisé pour comprendre l'execution d'une commande
explain plan for <query>
select * from table (dbms.xplan.display)

star transformation : réécrire une requette pour profiter des index bitmap (jointure sur booléens)

partitionnement : structurer la table (en fonction des champs) pour accélérer les performance des requêttes
en général, on partitionne sur les mois et les années
range : entre deux valeurs
list: liste explicite de valeurs
hash: partitionnement intéligent par oracle

Parallelisme

Parallelisme utile sur de gros volumes de données.
DOP : degree of parallelism

(un parallel sur un SELECT implique d'utiliser SQL Hint)
parallélisme possible sur les Data Definition Language (create, alter, drop, ...)
PDML (insert, update, delete, merge) : nécéssite un commit/rollback pour utiliser l'objet à nouveau

vue matérialisé : correspond à peut près à une table d'agréga (vue contenant les données précalculées)
rafraichisement automatique la vue peut être utilisé à la volée, pour répondre à des requêtes faisant des calculs déjà stockée dedans
(oracle peut réécrire les requêtes utilisateurs pour utilisée la vue si besoin)

Build Status

Info Labs

tablespace :
exemple : jeux de données
temporaire : opération longue
undo : pour le rollback
users : pour les utilisateurs
system : utilisé par le système

Part 1

Récupérer la VM linux et démarrer tous les services

  1. démarrage du listener (en attente des connection) - lsnrctl start
  2. démarrage de la base - sqlplus / as sysdba
  3. démarrer le service entreprise manager (interface web) - emctl start dbconsole
    (4. démarrer Isql plus - isqlplusctl start)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment