La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement.

Présentations similaires


Présentation au sujet: "3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement."— Transcription de la présentation:

1 3 Chargement et Indexation

2 Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement des données entre bases Export/import Tablespaces transportables

3 Sources de données géo-spatiales Données applicatives Clients, magasins, entrepôts, agences, etc. Il faut les géocoder avant de pouvoir s'en servir Référentiel de géocodage et calcul Réseau routier, adresses Souvent fournies par Navteq ou Tele Atlas, … Autres données (vecteur et raster) Limites administratives, occupation du sol, points d'intérêt, … Multiples sources (IGN, etc)

4 Format des données géo-spatiales Chaque outil SIG utilise son ou ses formats propres ESRI: shape files, coverages MapInfo: TAB files, MIF/MID Intergraph: DGN files Autodesk: DWG files Etc...

5 Chargement des données Géo-spatiales Au moyen des outils fournis avec les outils SIG Au moyen d'outils génériques FME (Safe Software) CITRA (CISS TDI) Pour les fichiers SHAPE: convertisseur SHP2SDO Oracle Mapbuilder Au moyen de SQL*Loader Les données doivent être formatées au préalable Charger les données avant de créer lindex spatial. !

6 Database files Data files Control file SQL*Loader Log file Inserted Selected Utilisation de SQL*Loader Parameter file (optional) Rejected Bad file Rejected Accepted Discard file (optional) Discarded Field processing Record selection Oracle Server

7 SQL*Loader pour des Points LOAD DATA INTO TABLE cities FIELDS TERMINATED BY '|' ( CITY, STATE_ABRV, POP90, RANK90, LOCATION COLUMN OBJECT ( SDO_GTYPE INTEGER EXTERNAL, SDO_POINT COLUMN OBJECT ( X FLOAT EXTERNAL, Y FLOAT EXTERNAL ) ) New York|NY| |1| 2001| | | Los Angeles|CA| |2| 2001| | | Chicago|IL| |3| 2001| | | Houston|TX| |4| 2001| | | Philadelphia|PA| |5| 2001| | | San Diego|CA| |6| 2001| | |

8 Autauga|Alabama| | #2003|1|1003|1/ # | | | | |....| # | | | / Baldwin|Alabama| | #2003|1|1003|1/ # | | | | |..../ SQL*Loader pour des lignes et polygones LOAD DATA CONTINUEIF NEXT(1:1) = '#' INTO TABLE counties FIELDS TERMINATED BY '|' ( COUNTY, STATE, POPPSQMI, GEOM COLUMN OBJECT ( SDO_GTYPE INTEGER EXTERNAL, SDO_ELEM_INFO VARRAY TERMINATED BY '/' (E FLOAT EXTERNAL), SDO_ORDINATES VARRAY TERMINATED BY '/' (O FLOAT EXTERNAL) ) )

9 Applications spécifiques Verbes SQL INSERT standards Utiliser des variables (pas des constantes) Faire des commit réguliers Utiliser des insertions par lots (array insert) pour de meilleures performances Conserver l'état d'avancement du chargement Les insertions sont plus rapides sans index spatial Grouper les insertions en lots (finir par COMMIT) INSERT INTO lines (id, … type, shape) VALUES (:id, … :type, :my_geom);

10 Convertisseur Shapefile : SHP2SDO Traite un fichier SHAPE à la fois Convertit les attributs (.DBF) aussi bien que les géométries (.SHP et.SHX) Génère des scripts SQL pour la création de la table, la mise à jour des meta-données spatiales, et la création de l'index spatial. Génère les fichiers pour SQL*Loader: control file et data file

11 Utilisation du convertisseur = nom du shapefile à convertir (sans inclure le suffixe.SHP) = nom de la table en sortie (aussi préfixe des fichiers produits) -g = nom donné à la colonne géométrique -i = nom donné à une colonne numérique servant d'identifiant unique shp2sdo -g -i -x (, ) -y (, ) -s -t

12 Utilisation du convertisseur -x (Xmin, Xmax) = bornes de la dimension X (si omis, alors on utilise les bornes réelles du shape file) -y (Ymin, Ymax) = bornes de la dimension Y (si omis, alors on utilise les bornes réelles du shape file) -s = numéro du système de coordonnées -t = valeur de tolérance

13 Exemple d'utilisation Entrées Fichiers CITIES.SHP, CITIES.SHX, CITIES.DBF Sorties CITIES.SQL: crée la table CITIES et remplit les méta-données pour la table. CITIES_SX.SQL : crée l'index spatial CITIES.CTL: fichier de contrôle pour SQL*Loader CITIES.DAT: fichier de données shp2sdo cities -g location -x (-180,180) –y (-90,90) –t 0.5 –s 8307

14 shp2sdo - Shapefile(r) To Oracle Spatial Converter Version Apr-2004 Copyright 2003, 2004 Oracle Corporation Processing shapefile cities into spatial table CITIES Oracle version is 9.2 Geometry column is LOCATION Points stored in SDO_POINT attributes SRID used is 8307 Data is in a separate file No loading mode specified. Will use SQL*Loader default of INSERT Bounds set to X=[-180,180] Y=[-90,90] Tolerance: Conversion complete : 195 points processed The following files have been created: cities.sql : SQL script to create the table cities_sx.sql : SQL script to create the spatial index cities.ctl : Control file for loading the table cities.dat : Data file Exemple d'utilisation

15 Mapbuilder

16 Validation des données Les données peuvent contenir des erreurs Polygones « self-crossing » Points redondants Erreur d'orientation (polygones) Pas de vérification automatique ! Certains outils acceptent certaines erreurs... Certains demandent des données sans erreurs. Utiliser les fonctions de validation fournies

17 Validation des données Fonction SDO_GEOM.VALIDATE_GEOMETRY Détermine la validité d'un objet isolé Procédure SDO_GEOM.VALIDATE_LAYER Détermine la validité de tous les objets d'une table Chaque fonction retourne un diagnostic précis (code erreur ORA-13xxx) Les variantes VALIDATE_GEOMETRY_WITH_CONTEXT et VALIDATE_LAYER_WITH_CONTEXT indiquent en plus à quel endroit se trouve l'erreur dans l'objet.

18 Exemple de validation automatique create or replace trigger counties_geom before insert or update of geom on counties for each row declare status varchar2(10); begin if :new.geom is not null then status := sdo_geom.validate_geometry (:new.geom, 0.5); if status <> 'TRUE' then raise_application_error (-20000, sqlerrm (-status)); end if; end; /

19 Radius Check

20 Indexation Spatiale Indexation R-tree Arborescence de rectangles (MBR) Indexation en 2 ou 3 dimensions Indexation Quad-tree Utilisation d'une grille régulière Plus documentée en 10g Ne plus utiliser Sauf exceptions …. Un index spatial doit exister avant de pouvoir poser des requêtes spatiales sur une table! ! abcd RS root

21 Quad-tree ou R-tree ? R-Tree est le choix par défaut et préféré Le seul choix pour les données en Longitude/Latitude Les Quad-tree peuvent être utiles dans des cas particuliers

22 Concept du R-tree A B C D ABCD MBRs, pointers to geometries R S RS root R-tree root

23 Création d'un index R-tree create index CUSTOMERS_SIDX on CUSTOMERS (LOCATION) indextype is MDSYS.SPATIAL_INDEX; Table MDRT_7B50$ Index Information

24 Syntaxe pour la création d'index Créer un index spatial est plus long que créer un index "normal" Dépend du nombre et de la complexité des objets. CREATE INDEX ON ( ) INDEXTYPE IS MDSYS.SPATIAL_INDEX [PARAMETERS ( 'SDO_RTR_PCTFREE = =... ) ] [PARALLEL [ ]];

25 DROP INDEX La création d'un index spatial n'est PAS une opération "atomique" En cas d'échec lors de la création, il faut d'abord détruire l'index existant avant de relancer la création Si cette destruction est refusée, utilisez la FORCE! DROP INDEX ; DROP INDEX FORCE;

26 Comment trouver de l'information sur les index spatiaux USER_INDEXES INDEX_TYPE = 'DOMAIN' et ITYP_NAME = 'SPATIAL_INDEX' USER_SDO_INDEX_INFO La colonne SDO_INDEX_TABLE identifie la table physique contenant l'index proprement dit (table dont le nom est de la forme MDRT_xxxx$) USER_SDO_INDEX_METADATA Comme ci-dessus, mais avec plus de détails: nombre de nœuds, taille des nœud, hauteur de l'arbre d'index, etc

27 Export/Import Export Permet le déchargement de tables ou de groupes de tables Pas de syntaxe particulière pour les tables spatiales Les méta-données (USER_SDO_GEOM_METADATA) sont seulement extraites si la table est indexée. Import Permet le rechargement de données exportées par EXPORT Pas de syntaxe particulière pour les tables spatiales Si la table est indexée: restaure les méta-données et re-crée l'index spatial

28 Tablespaces Transportables A faire sur la base source avant de déplacer le tablespace A faire sur la base cible après l'intégration du tablespace Il n'est pas possible de transporter un tablespace contenant un index spatial entre des plate-formes incompatibles EXECUTE SDO_UTIL.PREPARE_FOR_TTS('my_tablespace'); EXECUTE SDO_UTIL.INITIALIZE_INDEXES_FOR_TTS; !

29 En résumé … Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement des données entre bases Export/import Tablespaces transportables

30


Télécharger ppt "3 Chargement et Indexation. Points couverts Formats des données géo-spatiales Chargement des données Validation Création des index spatiaux Déplacement."

Présentations similaires


Annonces Google