Vous êtes sur la page 1sur 21

Charger des données dans une base

Copyright © Oracle Corporation, 2001. Tous droits réservés.


Objectifs

A la fin de ce chapitre, vous pourrez :


• présenter l'utilisation d'opérations de chargement
de données par chemin direct
• décrire l'utilisation de SQL*Loader
• réaliser les opérations de base de SQL*Loader
• répertorier les règles d'utilisation de SQL*Loader et
du chargement des données par chemin direct

19-2 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Méthodes de chargement des données

Autres applications

Base de
données
Oracle
Export
Utilitaire
SQL*Loader

Import
Base de
données
Oracle
Chargement des données
par chemin direct

19-3 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Chargement des données par chemin direct

Le chargement des données par chemin direct peut


être réalisé de la manière suivante :
• Normale (en série) ou en parallèle
• Dans des tables partitionnées, dans des tables non
partitionnées ou dans des partitions d'une table
• Avec ou sans consignation des données de
journalisation

19-4 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Chargement des données par chemin
direct en série
INSERT /*+ APPEND */ INTO emp
NOLOGGING
SELECT * FROM t_employees;
COMMIT;

Processus
serveur
Table EMPLOYEES

Bloc utilisé Repère high-water mark


Espace libre après Blocs utilisés par
la suppression les lignes insérées

19-6 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Chargement des données par chemin
direct en parrallèle
ALTER SESSION ENABLE PARALLEL DML;
INSERT /*+PARALLEL(hr.employees,2) */
INTO hr.employees NOLOGGING
SELECT * FROM hr.old_employees;

Processus Processus
esclave esclave
Table EMPLOYEES

Bloc utilisé Repère high-water mark


Espace libre après la Segments temporaires
suppression

19-7 Copyright © Oracle Corporation, 2001. Tous droits réservés.


SQL*Loader
Fichier de contrôle du programme de chargement
Fichiers de données en entrée

Fichier de paramètres
SQL*Loader Rejet
(facultatif)
Traitement du champ
Rebut Acceptation
Sélection de l'enregistrement Fichier des
enregistrements
Sélection refusés
Serveur Oracle
Fichier de rebut
Insertion Rejet
(facultatif)

Fichier journal

Fichiers de données de la base

19-9 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Utiliser SQL*Loader

$sqlldr hr/hr \
> control=case1.ctl \
> log=case1.log direct=Y

case1.ctl

SQL*Loader

Table EMPLOYEES

case1.log

19-11 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Fichier de contrôle de SQL*Loader

Le fichier de contrôle du programme de chargement


indique à SQL*Loader :
• L'emplacement des données de chargement
• Le format des données
• Les détails de la configuration
– gestion de la mémoire
– rejet de l'enregistrement
– détails du traitement des chargements interrompus
• La méthode de manipulation des données

19-13 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Remarques sur la syntaxe du fichier de
contrôle

• Le format de la syntaxe est libre.


• La syntaxe n'est pas sensible à la casse.
• Les commentaires sont précédés de deux traits
d'union (--) et se terminent à la fin de la ligne.
• Le mot-clé CONSTANT est réservé.

19-17 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Données et fichiers de données en entrée

• SQL*Loader lit les données à partir d'un ou de


plusieurs fichiers définis dans le fichier de contrôle.
• Dans SQL*Loader, les données du fichier de
données sont organisées en enregistrements.
• Un fichier de données peut avoir l'un des trois
formats suivants :
– Format d'enregistrement fixe
– Format d'enregistrement variable
– Format d'enregistrement de type "stream"

19-18 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Enregistrements logiques

Vous pouvez indiquer à SQL*Loader de suivre l'une


des stratégies de création d'enregistrement logique
suivantes :
• Combiner un nombre fixe d'enregistrements
physiques pour la création de chaque
enregistrement logique.
• Combiner des enregistrements physiques à des
enregistrements logiques lorsqu'une condition
donnée est vraie.

19-22 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Méthodes de chargement des données
Instance
Mémoire Zone de
Insertion SGA mémoire
de tableau partagée

Conventionnel

Table Chemin
Enregistrement direct
des données

Repère
Espace utilisé uniquement par le high-water mark
chargement par chemin conventionnel

19-24 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Comparer les chargements de données par
chemin direct et par chemin conventionnel
Chargement des données Chargement des données
par chemin conventionnel par chemin direct
Utilise COMMITs pour rendre Utilise des enregistrements de données
les modifications permanentes
Entrées de journalisation Génère une journalisation uniquement
toujours générées sous certaines conditions
Applique toutes les contraintes Applique uniquement les contraintes
de clé primaire, de clé unique et NOT NULL
Les déclencheurs INSERT Les déclencheurs INSERT ne
s'exécutent s'exécutent pas
Peut effectuer un chargement Ne peut pas effectuer de chargement
dans des tables clusterisées dans des tables clusterisées
Les autres utilisateurs peuvent Les autres utilisateurs ne peuvent
modifier les tables pas modifier les tables

19-27 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Chargement des données par chemin
direct en parallèle
Segments temporaires
load1.dat SQL*Loader
load1.ctl

SQL*Loader
load2.dat
load2.ctl

SQL*Loader
load3.dat
load3.ctl
Table

Repère
high-water mark

19-29 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Conversion des données

Pendant le chargement des données par chemin


conventionnel, les champs de données du fichier de
données sont convertis en colonnes dans la base. La
conversion s'effectue en deux étapes :
• Les spécifications de champ du fichier de contrôle
permettent d'interpréter le format de ce fichier et de
le convertir en instruction SQL INSERT à l'aide de
ces données.
• Le serveur de bases de données Oracle accepte les
données, puis exécute l'instruction INSERT pour les
stocker dans la base.

19-31 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Enregistrements de rebut ou refusés

• Fichier des enregistrements refusés


– SQL*Loader rejette les enregistrements dont le format
d'entrée n'est pas valide.
– Si la base de données Oracle considère que la ligne
n'est pas valide, l'enregistrement est rejeté et placé par
SQL*Loader dans le fichier des enregistrements
refusés.
• Fichier de rebut
– Ce fichier ne peut être utilisé que s'il a été activé.
– Ce fichier contient des enregistrements qui ont été
extraits par filtrage, car ils ne correspondaient pas aux
critères de sélection de l'enregistrement définis dans
le fichier de contrôle.

19-32 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Contenu des fichiers journaux

• Informations d'en-tête
• Informations générales
• Informations sur les tables
• Informations sur les fichiers de données
• Informations de chargement des tables
• Statistiques récapitulatives
• Statistiques supplémentaires relatives aux
chargements des données par chemin direct et
informations sur la technologie multithread

19-36 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Règles d'utilisation de SQL*Loader

• Utilisez un fichier de paramètres pour définir les


options de ligne de commande couramment
utilisées.
• Ne placez les données dans le fichier de contrôle
que pour un chargement réduit unique.
• Améliorez les performances de la manière suivante :
– Allouez un espace suffisant
– Triez les données sur l'index le plus volumineux
– Dans les chargements en parallèle, définissez
différents fichiers pour les segments temporaires

19-38 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Synthèse

Ce chapitre vous a permis d'apprendre à :


• décrire l'utilisation de SQL*Loader
• réaliser des opérations de base avec SQL*Loader
• démontrer vos capacités dans le cadre d'un
chargement des données par chemin direct
• répertorier les règles d'utilisation de SQL*Loader et
du chargement des données par chemin direct

19-39 Copyright © Oracle Corporation, 2001. Tous droits réservés.


Présentation de l'exercice 19

Dans cet exercice, vous allez :


• utiliser SQL*Loader pour restaurer des données
– à l'aide d'un fichier de contrôle
– à l'aide d'un fichier de données
• utiliser le chargement des données par chemin
direct pour charger des données

19-40 Copyright © Oracle Corporation, 2001. Tous droits réservés.