Interrogation de données partitionnées hybrides

Si vous souhaitez interroger des données internes et plusieurs fichiers de données dans la banque d'objets en tant que table logique unique, vous pouvez utiliser une table partitionnée hybride pour représenter les données en tant qu'objet unique. Utilisez la procédure DBMS_CLOUD.CREATE_HYBRID_PART_TABLE pour créer une table partitionnée hybride.

Si vos données, internes ou externes, peuvent être représentées avec une granularité plus fine en tant que partitions logiques multiples, il est fortement recommandé de créer une table partitionnée hybride avec plusieurs partitions internes et externes, en préservant le partitionnement logique de vos données pour l'accès aux requêtes.

Lorsque vous créez une table partitionnée hybride, vous incluez une clause de partitionnement dans l'instruction DBMS_CLOUD.CREATE_HYBRID_PART_TABLE. La clause de partitionnement que vous incluez dépend de vos fichiers de données et du type de partitionnement que vous utilisez. Pour plus d'informations, reportez-vous à Création de tables partitionnées hybrides.

  1. Stockez les informations d'identification de la banque d'objets à l'aide de la procédure DBMS_CLOUD.CREATE_CREDENTIAL.

    Par exemple :

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL (
        credential_name => 'DEF_CRED_NAME',
        username => 'adb_user@example.com',
        password => 'password' );
    END;
    /
    

    La création d'informations d'identification pour accéder à la banque d'objets Oracle Cloud Infrastructure n'est pas requise si vous activez les informations d'identification de principal de ressource. Pour plus d'informations, reportez-vous à Utilisation du principal de ressource pour accéder à des ressources Oracle Cloud Infrastructure.

    Cette opération stocke les informations d'identification dans la base de données dans un format crypté. Vous pouvez utiliser n'importe quel nom pour le nom des informations d'identification. Cette étape n'est requise qu'une seule fois, sauf si vos informations d'identification de banque d'objets changent. Une fois les informations d'identification stockées, vous pouvez utiliser le même nom d'informations d'identification pour créer des tables partitionnées hybrides.

    Pour plus d'informations sur les paramètres username et password pour différents services Object Storage, reportez-vous à Procédure CREATE_CREDENTIAL.

  2. Créez une table partitionnée hybride sur vos fichiers source à l'aide de la procédure DBMS_CLOUD.CREATE_HYBRID_PART_TABLE.

    La procédure DBMS_CLOUD.CREATE_HYBRID_PART_TABLE prend en charge les fichiers partitionnés externes dans les services de stockage d'objets cloud pris en charge. Les informations d'identification sont des propriétés de niveau table. Par conséquent, les fichiers externes doivent se trouver dans la même banque d'objets.

    Par exemple :

    BEGIN
      DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
          table_name =>'HPT1',  
          credential_name =>'DEF_CRED_NAME',  
          format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),  
          column_list => 'col1 number, col2 number, col3 number',
          partitioning_clause => 'partition by range (col1)
               (partition p1 values less than (1000) external location
                  ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_11.txt'') ,
                partition p2 values less than (2000) external location
                  ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_21.txt'') ,
                partition p3 values less than (3000) )'
         );
    END;
    /
    

    Les paramètres sont les suivants :

    • table_name : nom de la table partitionnée hybride.

    • credential_name : nom des informations d'identification créées à l'étape précédente.

    • partitioning_clause est la clause de partitionnement complète, y compris les informations d'emplacement pour les partitions individuelles.

    • format : définit les options que vous pouvez indiquer pour décrire le format du fichier source.

      Si les données de vos fichiers source sont cryptées, décryptez les données en indiquant le paramètre format avec l'option encryption. Pour plus d'informations sur le décryptage des données, reportez-vous à Décryptage des données lors de l'import à partir d'Object Storage.

    • column_list : liste des définitions de colonne dans les fichiers source, séparées par une virgule.

    Dans cet exemple, namespace-string est l'espace de noms d'objet Oracle Cloud Infrastructure et bucketname est le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.

    Vous pouvez maintenant exécuter des requêtes sur la table partitionnée hybride que vous avez créée à l'étape précédente. Votre instance Autonomous Database tire parti des informations de partitionnement de votre table partitionnée hybride, en veillant à ce que la requête n'accède qu'aux fichiers de données pertinents dans la banque d'objets. Par exemple, la requête suivante lit uniquement les fichiers de données de la partition P1 :

    SELECT * FROM hpt1 WHERE col1 < 750;

    Les tables partitionnées hybrides que vous créez avec DBMS_CLOUD.CREATE_HYBRID_PART_TABLE incluent deux colonnes invisibles file$path et file$name. Ces colonnes permettent d'identifier le fichier d'où provient un enregistrement. Pour plus d'informations, reportez-vous à Colonnes de métadonnées de table externe.

    Si des lignes des fichiers source ne correspondent pas aux options de format spécifiées, la requête signale une erreur. Vous pouvez utiliser les paramètres DBMS_CLOUD, tels que rejectlimit, pour supprimer ces erreurs. Vous pouvez également valider la table partitionnée hybride que vous avez créée pour afficher les messages d'erreur et les lignes rejetées afin de modifier vos options d'un format en conséquence. Pour plus d'informations, reportez-vous aux sections Valider les données externes et Valider les données partitionnées hybrides.

    Pour plus d'informations sur les paramètres, reportez-vous à la procédure CREATE_HYBRID_PART_TABLE.

    Pour plus d'informations sur les services de stockage d'objets cloud pris en charge, reportez-vous à Formats d'URI DBMS_CLOUD.