Ensemble DBMS_DCAT

L'ensemble DBMS_DCAT fournit des fonctions et des procédures pour aider les utilisateurs de base de données Autonomous AI Database à tirer parti de la détection de données et du système de gestion centralisée des métadonnées du catalogue de données OCI.

Le catalogue de données collecte les métadonnées à partir des ressources de stockage d'objets d'un lac de données. Le processus de collecte crée des entités logiques, qui peuvent être considérées comme des tables avec des colonnes et des types de données associés. Les procédures et fonctions DBMS_DCAT connectent la base de données de l'IA autonome au catalogue de données, puis synchronisent les ressources avec la base de données, créant des schémas protégés et des tables externes. Vous pouvez ensuite interroger le magasin d'objets à l'aide de ces tables externes, en joignant facilement des données externes aux données stockées dans Autonomous AI Database. Cela simplifie considérablement le processus de gestion. Il existe un magasin de métadonnées unique, géré de manière centralisée, qui est partagé par plusieurs services OCI (notamment les bases de données autonomes d'IA). Il existe également des vues du dictionnaire Autonomous AI Database qui vous permettent d'inspecter le contenu du catalogue de données à l'aide de SQL et de vous montrer comment ces entités de catalogue de données sont mappées à vos schémas et tables de base de données Autonomous AI Database.

Utilisateurs et rôles du catalogue de données

L'ensemble DBMS_DCAT prend en charge les utilisateurs/schémas synchronisés, les utilisateurs dcat_admin et les utilisateurs locaux. Les utilisateurs doivent avoir le rôle dcat_sync pour pouvoir utiliser cet ensemble.

Utilisateurs du catalogue de données

  • Utilisateurs/schémas synchronisés

    Les tables externes synchronisées sont organisées en schémas de base de données correspondant aux combinaisons ressource de données/seau, ou selon les propriétés personnalisées définies par l'utilisateur. Les schémas synchronisés sont automatiquement créés/supprimés lors de la synchronisation du catalogue de données. Ils sont créés en tant qu'utilisateurs d'authentification sans le privilège CREATE SESSION. Les schémas synchronisés sont également créés à l'aide de la clause protégée, de sorte qu'ils ne peuvent pas être modifiés par les utilisateurs locaux (pas même l'administrateur de la base de données enfichable) et ne peuvent être modifiés que par la synchronisation.

  • Utilisateur dcat_admin

    L'utilisateur dcat_admin est un utilisateur de base de données local qui peut exécuter une synchronisation et accorder le privilège READ sur les tables synchronisées à d'autres utilisateurs ou rôles. L'utilisateur est créé en tant qu'utilisateur sans authentification sans le privilège CREATE SESSION.

  • Utilisateurs locaux

    Les utilisateurs de base de données qui interrogent les tables externes doivent disposer explicitement des privilèges READ sur les tables externes synchronisées par les utilisateurs dcat_admin ou ADMIN. Par défaut, une fois la synchronisation terminée, seuls les utilisateurs dcat_admin et ADMIN ont accès aux tables externes synchronisées.

Rôles du catalogue de données

  • dcat_sync

    Le rôle dcat_sync dispose de tous les privilèges requis pour utiliser l'ensemble DBMS_DCAT. Les utilisateurs doivent avoir ce rôle pour pouvoir utiliser l'API pour naviguer dans le catalogue de données et exécuter la synchronisation.

Données d'identification requises et politiques IAM

Cette rubrique décrit les données d'identification et les politiques d'utilisateur d'Oracle Cloud Infrastructure Identity and Access Management (IAM) requises pour accorder aux utilisateurs de la base de données d'intelligence artificielle autonome l'autorisation de gérer un catalogue de données et d'effectuer des lectures à partir du stockage d'objets.

Exigences en matière de données d'identification et de politique pour le catalogue de données OCI :

Exigences relatives aux données d'identification et aux politiques du catalogue de données AWS Glue

Les données d'identification et les politiques d'utilisateur suivantes sont requises pour permettre aux utilisateurs d'Autonomous AI Database d'accéder aux catalogues de données de colle Amazon Web Services (AWS) et de lire à partir du stockage d'objets S3 :
  • Un objet de données d'identification avec l'autorisation d'accéder à un catalogue de données AWS Glue est requis. Pour plus d'informations sur la gestion des données d'identification, voir DBMS_CLOUD pour la gestion de l'accès.

    Pour accéder à un catalogue de données AWS Glue, les privilèges suivants sont requis : colle:GetDatabases , colle:GetTables et colle:GetTable.

    De plus, le privilège s3 :GetBucketLocation est nécessaire lors de la synchronisation pour générer des URL https résolubles pointant vers les objets S3 sous-jacents.
  • Un objet de données d'identification autorisé à accéder aux fichiers stockés dans S3 est requis pour que la base de données d'intelligence artificielle autonome puisse interroger les fichiers de données.
  • Les données d'identification AWS sont prises en charge. Les données d'identification AWS Amazon Resource Names (ARN) ne sont pas prises en charge.

Exemple : Création d'un objet de données d'identification pour l'authentification native OCI

Dans cet exemple, nous créons des données d'identification pour l'authentification native OCI qui peuvent être utilisées lors de la création d'un catalogue de données ou d'un objet de données d'identification de magasin d'objets. Pour plus de détails, consultez DBMS_DCAT SET_DATA_CATALOG_CREDENTIAL Procedure et DBMS_DCAT SET_OBJECT_STORE_CREDENTIAL Procedure respectivement.

Dans l'authentification native OCI, la procédure DBMS_CLOUD.CREATE_CREDENTIAL inclut les paramètres suivants : credential_name, user_ocid, tenancy_ocid, private_key et fingerprint. Voir DBMS_CLOUD CREATE_CREDENTIAL Procédure pour une description complète de cette procédure.

credential_name est le nom de l'objet de données d'identification. Les paramètres user_ocid et tenancy_ocid correspondent respectivement aux OCID de l'utilisateur et de la location.

Le paramètre private_key spécifie la clé privée générée au format PEM. Les clés privées créées avec une phrase secrète ne sont pas prises en charge. Par conséquent, nous devons nous assurer de générer une clé sans phrase secrète. Voir Comment générer une clé de signature d'API pour plus de détails sur la création d'une clé privée sans phrase secrète. De plus, la clé privée que nous fournissons pour ce paramètre ne doit contenir que la clé elle-même sans en-tête ni pied de page (par exemple, '-----BEGIN RSA PRIVATE KEY-----', '-----END RSA PRIVATE KEY-----').

Le paramètre fingerprint spécifie l'empreinte numérique obtenue après le chargement de la clé publique dans la console ou à l'aide des commandes OpenSSL. Pour plus de détails sur l'obtention de l'empreinte digitale, voir Comment charger la clé publique et Comment obtenir l'empreinte digitale de la clé.

Une fois que toutes les informations nécessaires sont collectées et que la clé privée est générée, nous sommes prêts à exécuter la procédure CREATE_CREDENTIAL suivante :

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL (
    credential_name => 'OCI_NATIVE_CRED',
    user_ocid              => 'ocid1.user.oc1..aaaaaaaatfn77fe3fxux3o5lego7glqjejrzjsqsrs64f4jsjrhbsk5qzndq',
    tenancy_ocid           => 'ocid1.tenancy.oc1..aaaaaaaapwkfqz3upqklvmelbm3j77nn3y7uqmlsod75rea5zmtmbl574ve6a',
    private_key            => 'MIIEogIBAAKCAQEA...t9SH7Zx7a5iV7QZJS5WeFLMUEv+YbYAjnXK+dOnPQtkhOblQwCEY3Hsblj7Xz7o=',
    fingerprint            => '4f:0c:d6:b7:f2:43:3c:08:df:62:e3:b2:27:2e:3c:7a');
END;
/
Après avoir créé l'objet de données d'identification, il s'affiche dans la table dba_credentials :
SELECT owner, credential_name
FROM dba_credentials 
WHERE credential_name LIKE '%NATIVE%';

OWNER CREDENTIAL_NAME
----- ---------------
ADMIN OCI_NATIVE_CRED

Exemple : Utilisation d'un principal de ressource de base de données IA autonome

Dans cet exemple, un groupe dynamique est créé qui inclut les membres de ressource appropriés, le groupe dynamique est autorisé à gérer un catalogue de données, puis le groupe dynamique est autorisé à lire à partir du stockage d'objets.

  1. Créez un groupe dynamique nommé adb-grp-1. Ajoutez une règle de correspondance à adb-grp-1 qui inclut l'instance de base de données du service d'intelligence artificielle autonome avec l'OCID ocid1.autonomousdatabase.oc1.iad.abuwcljr...fjkfe en tant que membre de ressource.

    Règle de correspondance de groupe dynamique :

    resource.id = 'ocid1.autonomousdatabase.oc1.iad.abuwcljr...fjkfe'
  2. Définissez une politique accordant au groupe dynamique adb-grp-1 l'accès complet aux instances du catalogue de données, dans le compartiment mycompartment.

    allow dynamic-group adb-grp-1 to manage data-catalog-family in compartment mycompartment
  3. Définissez une politique qui permet au groupe dynamique adb-grp-1 de lire n'importe quel seau du compartiment nommé mycompartment.
    allow dynamic-group adb-grp-1 to read objects in compartment mycompartment

Exemple : Utilisation des principaux d'utilisateur

Dans cet exemple, user1 est membre du groupe adb-admins. Tous les membres de ce groupe sont autorisés à gérer tous les catalogues de données dans mycompartment et à lire à partir du magasin d'objets dans mycompartment.

  1. Autoriser les utilisateurs membres de adb-admins à gérer tous les catalogues de données dans mycompartment.
    allow group adb-admins to manage data-catalog-family in compartment mycompartment
  2. Autoriser les utilisateurs qui sont membres de adb-admins à lire n'importe quel objet dans n'importe quel seau dans mycompartment.
    allow group adb-admins to read objects in compartment mycompartment

Sommaire des sous-programmes de gestion des connexions

Ce tableau répertorie les procédures d'ensemble DBMS_DCAT utilisées pour créer, interroger et supprimer des connexions au catalogue de données.

Sous-programme Description
SET_DATA_CATALOG_CONN Procédure Créer une connexion au catalogue de données indiqué
SET_DATA_CATALOG_CREDENTIAL Procédure Définir les données d'identification d'accès au catalogue de données utilisées par une connexion spécifique au catalogue de données
SET_OBJECT_STORE_CREDENTIAL Procédure Définir les données d'identification utilisées par l'identificateur de connexion unique indiqué pour accéder au magasin d'objets
UNSET_DATA_CATALOG_CONN Procédure Supprimer une connexion existante au catalogue de données

SET_DATA_CATALOG_CREDENTIAL Procédure

Cette procédure définit les données d'identification d'accès au catalogue de données utilisées par une connexion spécifique au catalogue de données.

Syntaxe

PROCEDURE DBMS_DCAT.SET_DATA_CATALOG_CREDENTIAL(
    credential_name VARCHAR2(128) DEFAULT NULL,
    dcat_con_id     VARCHAR2 DEFAULT NULL
  );

Paramètres

Paramètre Description

credential_name

(Facultatif) Données d'identification utilisées pour accéder au catalogue de données.

dcat_con_id Identificateur unique de connexion au catalogue de données. Ces données d'identification sont utilisées pour la connexion identifiée par dcat_con_id. La valeur par défaut est nulle.

Syntaxe

Ces données d'identification doivent avoir les autorisations Gérer le catalogue de données; voir Politiques de catalogue de données. La valeur par défaut est le principal de ressource; voir Accéder aux ressources en nuage en configurant des politiques et des rôles.

SET_OBJECT_STORE_CREDENTIAL Procédure

Cette procédure définit les données d'identification utilisées par l'identificateur de connexion unique indiqué pour accéder au magasin d'objets. La modification des données d'identification d'accès au magasin d'objets modifie toutes les tables synchronisées existantes pour utiliser les nouvelles données d'identification.

Syntaxe

PROCEDURE DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL(
    credential_name  VARCHAR2(128),
    dcat_con_id      IN VARCHAR2 DEFAULT NULL
  );

Paramètres

Paramètre Description

credential_name

Données d'identification utilisées par les tables externes pour accéder au magasin d'objets.

dcat_con_id Identificateur unique de connexion au catalogue de données. La valeur par défaut est NULL.

SET_DATA_CATALOG_CONN Procédure

Cette procédure crée une connexion au catalogue de données indiqué. La connexion est requise pour synchroniser les métadonnées avec le catalogue de données. Une instance de base de données autonome avec intelligence artificielle peut se connecter à plusieurs instances de catalogue de données et prend en charge la connexion aux catalogues de données OCI, aux catalogues de données AWS Glue et aux catalogues REST Apache Iceberg.

Syntaxe

PROCEDURE DBMS_DCAT.SET_DATA_CATALOG_CONN (
   region         VARCHAR2 DEFAULT NULL,
   endpoint       VARCHAR2 DEFAULT NULL,
   catalog_id     VARCHAR2 DEFAULT NULL,
   dcat_con_id    VARCHAR2 DEFAULT NULL,
   catalog_type   VARCHAR2 DEFAULT NULL,
   token_endpoint VARCHAR2 DEFAULT Null
 );

Paramètres

Paramètre Description

region

Région Catalogue de données. Si endpoint est spécifié, region est facultatif. Si endpoint et region sont indiqués, endpoint a préséance. La valeur par défaut est NULL.

endpoint

Point d'extrémité du catalogue de données. Si region est spécifié, endpoint est facultatif. Si endpoint et region sont indiqués, endpoint a préséance. La valeur par défaut est NULL.

catalog_id

Identificateur Oracle Cloud unique (OCID) pour l'instance de catalogue de données. Lors de la connexion à AWS Glue Data Catalogs, catalog_id est facultatif.

dcat_con_id Identificateur unique de connexion au catalogue de données. Cet identificateur est requis lors de la connexion à plusieurs catalogues de données et est facultatif lors de la connexion à un seul catalogue. Il est utilisé pour faire référence à la connexion au catalogue de données lors d'appels ultérieurs ou lors de l'interrogation de vues. Si aucun identificateur n'est indiqué, cette procédure génère un identificateur de connexion NULL. Les restrictions suivantes s'appliquent à dcat_con_id :
  • Il doit être unique dans l'instance Autonomous AI Database.
  • Il doit commencer par une lettre.
  • Il peut contenir des caractères alphanumériques, des traits de soulignement (_), des signes de dollar ($) et des signes de livre (#).
  • Il ne doit pas dépasser 16 caractères.
catalog_type Type de catalogue de données à connecter. Valeurs autorisées :
  • OCI_DCAT - Catalogue de données OCI
  • AWS_GLUE - Catalogue de données AWS Glue
  • ICEBERG_UNITY - Catalogue Iceberg de Databricks Unity
  • ICEBERG_POLARIS - Catalogue Polaris Iceberg
  • NULL - Le type de catalogue est automatiquement détecté à partir de la région ou du point d'extrémité fourni.
token_endpoint Point d'extrémité du jeton d'accès pour l'authentification OAuth. La valeur par défaut est NULL.

Syntaxe

Vous n'avez besoin d'appeler cette procédure qu'une seule fois pour définir la connexion. Dans le cadre du processus de connexion, Autonomous AI Database ajoute des propriétés personnalisées au catalogue de données. Ces propriétés personnalisées sont accessibles aux utilisateurs du catalogue de données et vous permettent de remplacer les noms par défaut (pour les schémas, les tables et les colonnes) et les types de données de colonne.

Avant de créer une connexion, les données d'identification doivent être créées et définies. Pour une description du processus de connexion, voir Flux de travail type avec le catalogue de données pour les catalogues de données OCI et Flux de travail d'utilisateur pour l'interrogation avec le catalogue de données AWS Glue pour les catalogues de données AWS Glue.

Exemple : Connexion avec un OCID connu

Dans cet exemple, Autonomous AI Database se connecte au catalogue de données dans la région uk-london-1. Le paramètre catalog_id utilise l'identificateur Oracle Cloud (ocid) pour l'instance de catalogue de données. Le type de catalogue de données est déterminé automatiquement : Catalogue de données AWS Glue ou Catalogue de données OCI.

BEGIN
  DBMS_DCAT.SET_DATA_CATALOG_CONN(
    region=>'uk-london-1',
    catalog_id=>'ocid1.datacatalog.oc1.uk-london-1...');
END;
/

Exemple : Connexion à un catalogue de données AWS Glue

Une connexion est l'association entre une instance de base de données IA autonome et un catalogue de données AWS Glue. Après une connexion réussie, l'instance de base de données Autonomous AI Database peut se synchroniser avec AWS Glue. Chaque compte AWS dispose d'un catalogue de données AWS Glue par région et chaque catalogue est accessible à l'aide du point d'extrémité de service correspondant pour chaque région. Une instance de base de données d'intelligence artificielle autonome peut être associée à un catalogue de données de colle AWS en appelant l'API DBMS_DCAT.SET_DATA_CATALOG_CONN et en spécifiant le point d'extrémité pour la région où réside le catalogue.

Voir Points d'extrémité et quotas de la colle AWS.

Dans cet exemple, Autonomous AI Database se connecte à un catalogue de données de colle AWS dans la région uk-london-1. Comme il s'agit d'une connexion au catalogue de données AWS Glue, le paramètre catalog_id n'est pas nécessaire.

BEGIN
  DBMS_DCAT.SET_DATA_CATALOG_CONN(
    region=>'uk-london-1',
    catalog_type=>'AWS_GLUE'
END;
/

Exemples : Connexion à un catalogue REST Databricks Unity Iceberg

Dans cet exemple, Autonomous AI Database se connecte à un catalogue REST Databricks Unity Iceberg à l'aide d'un jeton d'accès personnel (de longue durée).

DBMS_CLOUD.create_credential('MY_DATABRICKS_CRED','username', '<personal access token>');
DBMS_DCAT.set_data_catalog_credential(dcat_con_id=>'ICEBERG_CATALOG',credential_name=>'MY_DATABRICKS_CRED');
DBMS_DCAT.set_object_store_credential(dcat_con_id=>'ICEBERG_CATALOG',credential_name=>'SOMECRED');
DBMS_DCAT.set_data_catalog_conn (
  dcat_con_id  => 'ICEBERG_CATALOG',
  catalog_type => 'ICEBERG_UNITY',
  endpoint     => 'https://adb-...azuredatabricks.net/api/2.1/unity-catalog/iceberg/v1/');

Dans cet exemple, Autonomous AI Database est connecté à un catalogue REST Databricks Unity Iceberg avec un principal de service à l'aide de OAuth.

DBMS_CLOUD.create_credential('MY_DATABRICKS_SP_CRED','<client id for the service principal>', '<client secret for the service principal>');
DBMS_DCAT.set_data_catalog_credential(dcat_con_id=>'ICEBERG_CATALOG',credential_name=>'MY_DATABRICKS_SP_CRED');
DBMS_DCAT.set_object_store_credential(dcat_con_id=>'ICEBERG_CATALOG',credential_name=>'MY_OS_CRED');
DBMS_DCAT.set_data_catalog_conn (
  dcat_con_id    => 'ICEBERG_CATALOG',
  catalog_type   => 'ICEBERG_UNITY',
  endpoint       => 'https://adb-...azuredatabricks.net/api/2.1/unity-catalog/iceberg/v1',
  token_endpoint => 'https://adb-...azuredatabricks.net/oidc/v1/token');

Exemple : Connexion à un catalogue REST Apache Polaris Iceberg

Dans cet exemple, Autonomous AI Database se connecte à un catalogue REST Apache Polaris Iceberg à l'aide de OAuth.

DBMS_CLOUD.create_credential('MY_POLARIS_CRED','<client id>', '<client secret>');
DBMS_DCAT.set_data_catalog_credential(dcat_con_id=>'ICEBERG_CATALOG',credential_name=>'MY_POLARIS_CRED');
DBMS_DCAT.set_object_store_credential(dcat_con_id=>'ICEBERG_CATALOG',credential_name=>'SOMECRED');
DBMS_DCAT.set_data_catalog_conn (
  dcat_con_id    => 'ICEBERG_CATALOG',
  catalog_type   => 'ICEBERG_POLARIS',
  endpoint       => 'https://dev-iceberg.subnet...vcn...oraclevcn.com/api/catalog/v1/quickstart_catalog',
  token_endpoint => 'https://dev-iceberg.subnet...vcn...oraclevcn.com/api/catalog/v1/oauth/tokens');

UNSET_DATA_CATALOG_CONN Procédure

Cette procédure supprime une connexion existante au catalogue de données.

Syntaxe

Note

L'appel de cette procédure supprime tous les schémas protégés et les tables externes créés dans le cadre des synchronisations précédentes. Cela n'a aucune incidence sur les métadonnées du catalogue de données.
PROCEDURE DBMS_DCAT.UNSET_DATA_CATALOG_CONN (
    dcat_con_id IN VARCHAR2 DEFAULT NULL
);

Paramètres

Paramètre Description
dcat_con_id Identificateur unique de connexion au catalogue de données. La valeur par défaut est nulle.

Sommaire des sous-programmes de synchronisation

L'exécution d'une synchronisation, la création et la suppression d'un travail de synchronisation et la suppression de schémas synchronisés peuvent être effectuées avec les procédures répertoriées dans ce tableau.

Note

Le 4 avril 2022, les paramètres sync_option et grant_read ont été ajoutés à la procédure DBMS_DCAT.RUN_SYNC. Pour garantir la bonne exécution des tâches de synchronisation programmées créées avant cette date, vous devez supprimer et recréer les tâches de synchronisation programmées. Voir Procédure DBMS_DCAT.DROP_SYNC_JOB et Procédure DBMS_DCAT.CREATE_SYNC_JOB.
Sous-programme Description
CREATE_SYNC_JOB Procédure Créer un travail de programmateur pour appeler RUN_SYNC périodiquement
DROP_SYNC_JOB Procédure Supprimer une tâche de synchronisation existante pour l'identificateur de connexion unique indiqué
DROP_SYNCED_SCHEMAS Procédure Supprimer tous les schémas synchronisés précédemment pour l'identificateur de connexion unique indiqué
RUN_SYNC Procédure Exécuter une opération de synchronisation

RUN_SYNC Procédure

Cette procédure exécute une opération de synchronisation et constitue le point d'entrée de la synchronisation. En tant qu'entrée, il prend des listes de ressources, de dossiers et d'entités de catalogue de données sélectionnés et les matérialise en créant, en supprimant et en modifiant des tables externes.

Le paramètre sync_option spécifie l'opération effectuée par la procédure RUN_SYNC : SYNC, DELETE ou REPLACE. L'opération est effectuée sur des entités dans la portée du paramètre synced_objects.

Chaque appel à la procédure RUN_SYNC retourne une valeur operation_id unique qui peut être utilisée pour interroger la vue USER_LOAD_OPERATIONS afin d'obtenir des informations sur le statut de la synchronisation et la valeur log_table correspondante. La vue DBMS_DCAT$SYNC_LOG peut être interrogée pour permettre un accès facile à log_table pour la dernière opération de synchronisation exécutée par l'utilisateur courant. Pour plus de détails, voir Vue DBMS_DCAT$SYNC_LOG et Surveillance et dépannage des chargements.

Note

Le 4 avril 2022, les paramètres sync_option et grant_read ont été ajoutés à la procédure RUN_SYNC. Pour garantir la bonne exécution des tâches de synchronisation programmées créées avant cette date, vous devez supprimer et recréer les tâches de synchronisation programmées. Voir Procédure DBMS_DCAT.DROP_SYNC_JOB et Procédure DBMS_DCAT.CREATE_SYNC_JOB.

Synchronisation des entités logiques partitionnées ou des tables de colle

La procédure RUN_SYNC crée une table externe partitionnée pour chaque entité logique ou table de colle lorsque les trois éléments suivants s'appliquent :

  1. L'entité logique du catalogue de données OCI ou la table de colle comporte un ou plusieurs attributs partitionnés.
  2. Pour les catalogues de données OCI, l'entité logique est dérivée d'un modèle de nom de fichier basé sur des préfixes. Les entités logiques partitionnées dérivées de modèles basés sur une expression rationnelle ne sont pas prises en charge.
  3. Pour les catalogues de données OCI, l'entité logique est basée sur des données partitionnées qui suivent le format de dossier de type ruche ou autre. Les entités logiques basées sur des données partitionnées qui suivent le format de style non ruche utilisant des noms d'objet ne sont pas prises en charge.
    • Exemple 1. Entités logiques basées sur des objets collectés qui suivent le format de partitionnement de style Hive avec des modèles de nom de fichier basés sur des préfixes.

      Les objets suivants sont à considérer :
      Bucket: MYBUCKET
      cluster1/db1.db/sales/country=USA/year=2020/month=01/sales1.csv
      cluster1/db1.db/sales/country=USA/year=2020/month=01/sales2.csv
      cluster1/db1.db/sales/country=USA/year=2020/month=02/sales1.csv

      La collecte du seau à l'aide d'un modèle de nom de fichier avec le préfixe de dossier de début cluster1/db1.db génère une entité logique nommée SALES avec trois attributs de partition : country, year et month. Le type des attributs partitionnés est Partition alors que celui des attributs non partitionnés est Primitive.

    • Exemple 2. Entités logiques basées sur des objets collectés qui suivent le format de partitionnement de style non Hive avec des modèles de nom de fichier basés sur des préfixes.
      Les objets suivants sont à considérer :
      Bucket: MYBUCKET
      cluster2/db2.db/sales/USA/2020/01/sales1.csv
      cluster2/db2.db/sales/USA/2020/01/sales2.csv
      cluster2/db2.db/sales/USA/2020/02/sales1.csv

      La collecte du seau à l'aide d'un modèle de nom de fichier avec le préfixe de dossier de début cluster2/db2.db génère une entité logique nommée SALES avec trois attributs de partition : name0, name1 et name2. La seule différence entre l'entité logique générée et l'exemple 1 est que les noms des attributs partitionnés sont générés automatiquement, alors que dans l'exemple 1, ils sont extraits de l'URL (country, year et month respectivement).

Pour un exemple complet de synchronisation de bout en bout d'entités logiques partitionnées, voir Exemple : Scénario de données partitionnées.

Synchronisation incrémentielle des entités logiques partitionnées/tables de grue

Chaque appel à la procédure RUN_SYNC spécifie un jeu d'entités logiques de catalogue de données OCI ou de tables AWS Glue à synchroniser avec la base de données. Lorsqu'une entité logique ou une table de colle est présente dans deux appels RUN_SYNC, le deuxième appel conserve et modifie éventuellement les tables externes existantes. Le tableau suivant indique les modifications d'entité logique ou de table de colle prises en charge lorsque l'entité logique ou la table de colle est partitionnée :

Modification d'entité logique ou de table de colle Action

Ajout, suppression ou mise à jour d'une partition

Toutes les partitions de la table partitionnée externe sont mises à jour, qu'une modification ait été détectée ou non par le catalogue de données.

Ajout d'un attribut partitionné

L'ajout d'une colonne partitionnée à une table partitionnée externe n'est pas pris en charge. Une exception est générée.

Suppression d'un attribut de partition

La suppression d'une colonne partitionnée d'une table partitionnée externe n'est pas prise en charge. Une exception est générée.

Modification du nom d'un attribut partitionné

Le changement de nom d'une colonne partitionnée dans une table partitionnée externe n'est pas pris en charge. Une exception est générée.

Syntaxe

PROCEDURE DBMS_DCAT.RUN_SYNC (
    synced_objects   IN  CLOB,
    sync_option      IN VARCHAR2 DEFAULT 'SYNC',
    error_semantics  IN VARCHAR2 DEFAULT 'SKIP_ERRORS',
    log_level        IN VARCHAR2 DEFAULT 'INFO',
    grant_read       IN VARCHAR2 DEFAULT NULL,
    dcat_con_id      IN VARCHAR2 DEFAULT NULL
 );
PROCEDURE DBMS_DCAT.RUN_SYNC (
    synced_objects   IN  CLOB,
    sync_option      IN VARCHAR2 DEFAULT 'SYNC',
    error_semantics  IN VARCHAR2 DEFAULT 'SKIP_ERRORS',
    log_level        IN VARCHAR2 DEFAULT 'INFO',
    grant_read       IN VARCHAR2 DEFAULT NULL,
    operation_id     OUT NOCOPY NUMBER,
    dcat_con_id      IN VARCHAR2 DEFAULT NULL
 );

Paramètres

Paramètre Description

synced_objects

Ce paramètre est un document JSON qui spécifie les objets de catalogue de données à synchroniser.

Pour les catalogues de données OCI, le document JSON spécifie un jeu d'entités à granularité multiple : ressources de données, dossiers (seaux du magasin d'objets) ou entités logiques. Il contient un asset_list qui est soit un tableau d'objets de ressource, soit un tableau contenant une seule chaîne "*" qui signifie "synchroniser toutes les ressources de données (magasin d'objets) dans le catalogue".

Pour AWS Glue Data Catalogs, le document JSON spécifie une liste de tables de granularité multiple : bases de données, tables. Le document spécifie une liste de bases de données. Les utilisateurs peuvent restreindre le jeu de tables à synchroniser en spécifiant des tables individuelles dans une base de données.

Pour les catalogues de données Iceberg, le document JSON spécifie les espaces de noms et les tables.

sync_option (Facultatif) Trois options sont disponibles :
  • SYNC (Par défaut) - Cette option garantit que ce qui se trouve dans le catalogue de données, sur la portée synced_objects, est représenté dans la base de données de l'IA autonome. Si une entité logique ou une table de colle a été supprimée du catalogue de données, depuis la dernière opération de synchronisation, elle est supprimée dans la base de données d'intelligence artificielle autonome. Les opérations suivantes sont effectuées sur la portée synced_objects :
    • Ajoute des tables pour les nouvelles entités de catalogue de données
    • Supprime les tables pour les entités de catalogue de données supprimées
    • Met à jour les propriétés (telles que le nom, les colonnes et les types de données) des tables existantes
  • DELETE - Supprime les tables de la portée synced_objects.
  • REPLACE - Remplace tous les objets actuellement synchronisés par les objets de la portée synced_objects.

error_semantics

(Facultatif) Ce paramètre spécifie le comportement de l'erreur. Si elle est réglée à SKIP_ERRORS, la synchronisation tente de continuer malgré les erreurs rencontrées pour les entités individuelles. Si elle est réglée à STOP_ON_ERROR, la procédure échoue lors de la première erreur détectée. La valeur par défaut est SKIP_ERRORS.

log_level

(Facultatif) Ce paramètre spécifie les valeurs suivantes pour l'augmentation du niveau des détails de journalisation : (OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL). La valeur par défaut est INFO.
grant_read (Facultatif) Ce paramètre est une liste d'utilisateurs/rôles auxquels des privilèges READ sont automatiquement accordés sur toutes les tables externes traitées par cet appel de RUN_SYNC. Tous les utilisateurs/rôles de la liste grant_read disposent des privilèges READ sur toutes les tables externes nouvelles ou existantes qui correspondent aux entités spécifiées par le paramètre synced_objects. La procédure RUN_SYNC conserve les privilèges déjà accordés sur les tables externes synchronisées.

operation_id

(Facultatif) Ce paramètre est utilisé pour rechercher l'entrée correspondante dans USER_LOAD_OPERATIONS pour la synchronisation et déterminer le nom de la table de journaux.

Note : Une version de RUN_SYNC qui ne retourne pas operation_id est disponible afin que les utilisateurs puissent interroger USER_LOAD_OPERATIONS pour la dernière synchronisation.

dcat_con_id Ce paramètre est l'identificateur unique de connexion au catalogue de données qui a été spécifié lors de la création de la connexion au catalogue de données. Voir DBMS_DCAT SET_DATA_CATALOG_CONN Procédure. Ce paramètre identifie la connexion utilisée pour la synchronisation et fait partie du nom du schéma dérivé. Voir Mappage de synchronisation pour une description de la façon dont le nom du schéma est dérivé. La valeur par défaut du paramètre est NULL.

Exemple : Synchroniser toutes les entités du catalogue de données OCI

Dans l'exemple suivant, toutes les entités du catalogue de données sont synchronisées.

EXEC DBMS_DCAT.RUN_SYNC(synced_objects=>'{"asset_list":["*"]}');

Exemple : Paramètre synced_objects pour synchroniser toutes les ressources de données du catalogue de données OCI

Voici un exemple de paramètre synced_objects pour synchroniser toutes les ressources de données (stockage d'objets) du catalogue de données.

{"asset_list" : ["*"]}

Exemple : Paramètre synced_objects pour synchroniser des ressources de données de catalogue de données OCI spécifiques

Voici un exemple de paramètre synced_objects pour synchroniser deux ressources de données.

{"asset_list": [
        {
            "asset_id":"...-9e2e7f78fd5f"
        },
        {
            "asset_id":"...-9e2e7f74523"
        }
    ]}

Exemple : Paramètre synced_objects pour synchroniser des entités de catalogue de données OCI spécifiques dans une ressource de données

Ce qui suit présente un exemple de paramètre synced_objects pour synchroniser deux entités au sein de la ressource de données.

{"asset_list": [
        {
            "asset_id":"...-9e2e7f78fd5f",
            "folder_list":[
                "f1",         
                "f2" 
           ]
        }   
    ]}

Exemple : Paramètre synced_objects pour synchroniser des dossiers et des entités de catalogue de données OCI spécifiques dans une ressource de données

Voici un exemple de paramètre synced_objects pour synchroniser deux dossiers et deux entités au sein de la ressource de données.

{"asset_list":[
        {
            "asset_id":"...-9e2e7f78fd5f",
            "entity_list": [
                "entity1",     
                "entity2"
            ],
             "folder_list": [
                "f1",         
                "f2"
            ]
        }   
    ]}

Exemple : Paramètre synced_objects pour synchroniser toutes les bases de données du catalogue de données de colle AWS

Voici un exemple de paramètre synced_objects pour synchroniser toutes les bases de données dans le catalogue de données AWS Glue.

{"database_list":["*"]}

Exemple : Paramètre synced_objects pour synchroniser deux bases de données de catalogue de données de colle AWS

Voici un exemple de paramètre synced_objects pour la synchronisation de deux bases de données AWS Glue Data Catalog.

{"database_list":[
    {"database":"tpcdscsv"},
    {"database":"tpcdsparquet"} ]}

Exemple : Paramètre synced_objects pour la synchronisation de trois bases de données de catalogue de données de colle AWS

Voici un exemple de paramètre synced_objects pour synchroniser trois tables à partir d'une base de données AWS Glue Data Catalog.

{"database_list":[
 {"database":"tpcdsparquet",
     "table_list": [ "tpcdsparquet_customer",
                     "tpcdsparquet_item",
                     "tpcdsparquet_web_sales" ] } ]}

Exemple : Appelez DBMS_DCAT.run_sync pour synchroniser tous les espaces de noms d'un catalogue Iceberg

Pour un catalogue Iceberg, cet exemple d'appel synchronise tous les espaces de noms :

DBMS_DCAT.run_sync(
  dcat_con_id     => 'MY_ICEBERG_CON',
  synced_objects  => '{"namespace_list" : ["*"]}',
  sync_option     => 'SYNC',     
  error_semantics => 'STOP_ON_ERROR,     
  log_level       => 'DEBUG',     
  grant_read      => 'DB_USER');

Exemple : Appelez DBMS_DCAT.run_sync pour synchroniser toutes les tables d'un espace de noms Iceberg et quelques tables d'un autre espace de noms Iceberg

Pour un catalogue Iceberg, cet exemple d'appel synchronise toutes les tables de l'espace de noms warehouse et trois tables de l'espace de noms ["bigdata","tpcdsparquet"] :

DBMS_DCAT.run_sync(
  dcat_con_id     => 'MY_ICEBERG_CON',
  synced_objects  => '{"namespace_list": [
                          { "namespace": ["warehouse"] },
                          { "namespace": ["bigdata", "tpcdsparquet"],
                                "table_list": [ "tpcdsparquet_customer",
                                                "tpcdsparquet_item",
                                                "tpcdsparquet_web_sales" ] } ]}',
  sync_option     => 'SYNC',    
  error_semantics => 'STOP_ON_ERROR,    
  log_level       => 'DEBUG',    
  grant_read      => 'DB_USER');

CREATE_SYNC_JOB Procédure

Cette procédure crée un travail de programmateur pour appeler RUN_SYNC périodiquement.

Il prend en entrée l'ensemble des objets à synchroniser, la sémantique d'erreur, le niveau de journal et un intervalle de répétition. Voir DBMS_DCAT RUN_SYNC Procédure pour plus de détails sur le fonctionnement de la synchronisation.

Il ne peut y avoir qu'une seule tâche de synchronisation. La procédure CREATE_SYNC_JOB échoue si une autre tâche est déjà spécifiée, sauf si le paramètre force est réglé à TRUE. Si force est réglée à TRUE, la tâche précédente est supprimée.

Si un travail du programmateur tente de s'exécuter alors qu'une autre synchronisation est en cours, le travail du programmateur échoue.

Note

Le 4 avril 2022, les paramètres sync_option et grant_read ont été ajoutés à la procédure RUN_SYNC. Pour garantir la bonne exécution des tâches de synchronisation programmées créées avant cette date, vous devez supprimer et recréer les tâches de synchronisation programmées. Voir Procédure DBMS_DCAT.DROP_SYNC_JOB et Procédure DBMS_DCAT.CREATE_SYNC_JOB.

Syntaxe

PROCEDURE DBMS_DCAT.CREATE_SYNC_JOB (
    synced_objects   IN CLOB,
    error_semantics  IN VARCHAR2 DEFAULT 'SKIP_ERRORS',
    log_level        IN VARCHAR2 DEFAULT 'INFO',
    repeat_interval  IN VARCHAR2,
    force            IN VARCHAR2 DEFAULT 'FALSE',
    grant_read       IN VARCHAR2 DEFAULT NULL,
    sync_option      IN VARCHAR2 DEFAULT 'SYNC',
    dcat_con_id      IN VARCHAR2 DEFAULT NULL
);

Paramètres

Paramètre Description

synced_objects

Objet JSON spécifiant les objets à synchroniser, comme décrit dans la procédure RUN_SYNC. Voir ProcédureRUN_SYNC.

error_semantics

(Facultatif) Comportement de l'erreur, tel que spécifié pour RUN_SYNC. La valeur par défaut est SKIP_ERRORS.

log_level

(Facultatif) Niveau de journalisation, tel que spécifié pour RUN_SYNC. La valeur par défaut est INFO.

repeat_interval

Intervalle de répétition de la tâche, avec la même sémantique que le paramètre d'intervalle de répétition de la procédure DBMS_SCHEDULER.CREATE_JOB. Pour plus de détails sur repeat_interval, voir Aperçu de la création de tâches.

force

(Facultatif) Si TRUE, les tâches de synchronisation existantes sont d'abord supprimées. Si FALSE, la procédure CREATE_SYNC_JOB échoue si une tâche de synchronisation existe déjà. La valeur par défaut est FALSE.

grant_read (Facultatif) Liste des utilisateurs/rôles auxquels accorder la fonction READ sur les tables externes synchronisées, comme décrit pour la procédure RUN_SYNC. Voir ProcédureDBMS_DCAT.RUN_SYNC.
sync_option (Facultatif) Comportement par rapport aux entités qui ont déjà été synchronisées au moyen d'une opération RUN_SYNC précédente, comme décrit pour la procédure RUN_SYNC. Voir ProcédureDBMS_DCAT.RUN_SYNC.
dcat_con_id Ce paramètre est l'identificateur unique de connexion au catalogue de données qui a été spécifié lors de la création de la connexion au catalogue de données. Voir DBMS_DCAT SET_DATA_CATALOG_CONN Procédure. Ce paramètre identifie la connexion utilisée pour la synchronisation et fait partie du nom du schéma dérivé. Voir Mappage de synchronisation pour une description de la façon dont le nom du schéma est dérivé. La valeur par défaut du paramètre est NULL.

DROP_SYNC_JOB Procédure

Cette procédure supprime une tâche de synchronisation existante pour l'identificateur de connexion unique indiqué.

Syntaxe

PROCEDURE DBMS_DCAT.DROP_SYNC_JOB (
    dcat_con_id IN VARCHAR2 DEFAULT NULL
  );

Paramètres

Paramètre Description
dcat_con_id Identificateur unique de connexion au catalogue de données. La valeur par défaut est NULL.

DROP_SYNCED_SCHEMAS Procédure

Cette procédure supprime tous les schémas précédemment synchronisés pour l'identificateur de connexion unique indiqué.

Syntaxe

PROCEDURE DBMS_DCAT.DROP_SYNCED_SCHEMAS (
    dcat_con_id IN VARCHAR2 DEFAULT NULL
  );

Paramètres

Paramètre Description
dcat_con_id Identificateur unique de connexion au catalogue de données. La valeur par défaut est NULL.

Sommaire des vues de catalogue de données

L'intégration du catalogue de données à Autonomous AI Database fournit de nombreuses tables et vues.

Ces tables et vues vous aident à comprendre :

  • Ressources de catalogue de données disponibles. Obtenez des informations sur tout type de ressource du catalogue de données, y compris les bases de données, les magasins d'objets, etc.
  • Informations sur les ressources et les entités de stockage d'objets du catalogue de données qui ont été synchronisées avec la base de données d'intelligence artificielle autonome. Cela inclut des détails sur la façon dont les éléments du catalogue de données (ressources, dossiers et entités) sont mappés aux objets de base de données de l'IA autonome (c'est-à-dire les schémas et les tables externes).
  • Exécutions de synchronisation des métadonnées. Vérifiez les détails des tâches de synchronisation, y compris les problèmes qui peuvent se produire lors de la synchronisation.

Ce tableau répertorie les tables et les vues fournies par l'ensemble DBMS_DCAT.

Voir Description
Vue ALL_CLOUD_CATALOG_DATABASES Afficher des informations sur les ressources de données du catalogue de données OCI et les bases de données du catalogue de données AWS Glue
Vue ALL_CLOUD_CATALOG_TABLES Utilisé pour afficher des informations sur les entités de données pour les catalogues de données et les tables OCI pour les catalogues de données AWS Glue
Vue ALL_DCAT_ASSETS Répertorier les ressources de catalogue de données auxquelles cette base de données est autorisée à accéder
Vue ALL_DCAT_ATTRIBUTES Répertorier les attributs de catalogue de données auxquels cette base de données est autorisée à accéder
Vue ALL_DCAT_CONNECTIONS Vue contenant des informations sur les catalogues de données connectés à cette instance
Vue ALL_DCAT_ENTITIES

Répertorie les entités logiques auxquelles cette base de données est autorisée à accéder

Vue ALL_DCAT_FOLDERS Répertorier les métadonnées des seaux de stockage d'objets contenant les fichiers de données des entités logiques
Vue ALL_DCAT_GLOBAL_ACCESSIBLE_CATALOGS Répertorier tous les catalogues accessibles dans toutes les régions, ainsi que le niveau des privilèges d'accès pour chaque catalogue
Vue ALL_DCAT_LOCAL_ACCESSIBLE_CATALOGS Répertorier tous les catalogues accessibles dans la région courante, ainsi que le niveau des privilèges d'accès pour chaque catalogue
Vue ALL_GLUE_DATABASES Répertorie les bases de données AWS Glue Data Catalog auxquelles les données d'identification du catalogue de données sont autorisées à accéder
Vue ALL_GLUE_TABLES Affiche toutes les tables du catalogue de données AWS Glue auxquelles les données d'identification du catalogue de données sont autorisées à accéder
Vue DCAT_ATTRIBUTES Répertorier le mappage des attributs d'entité logique aux colonnes de table externe
Vue DCAT_ENTITIES Décrit le mappage d'entités logiques à des tables externes
DBMS_DCAT$SYNC_LOG Vue Permet d'accéder facilement à la table de journaux pour la dernière opération de synchronisation exécutée par l'utilisateur courant

Vue ALL_CLOUD_CATALOG_DATABASES

Utilisez la vue ALL_CLOUD_CATALOG_DATABASES pour afficher des informations sur les ressources de données du catalogue de données OCI et les bases de données du catalogue de données AWS Glue.

Colonne Description
DCAT_CON_ID CON1
CATALOG_ID Identificateur unique du catalogue de données.

Exemple de catalogue de données OCI :

ocid1.datacatalog.oc1.ap-mumbai-1.….y35a

Exemple de catalogue de données de colle AWS :

NULL

579294766787

NAME Nom de la ressource de données (OCI)/base de données (colle AWS).

Exemple de catalogue de données OCI :

OBJECT_STORE_AT_ASHBURN

Exemple de catalogue de données de colle AWS :

OBJECT_STORE_AT_N_CALIFORNIA

DESCRIPTION Description de la ressource de données (OCI)/base de données (colle AWS).

Exemple de catalogue de données OCI :

Data stored in S3 (N. California)

Exemple de catalogue de données de colle AWS :

Data stored in S3 (N. California)
TIME_CREATED Date et heure de création de la ressource de données/bases de données (colle AWS) dans le catalogue de données.

Exemple de catalogue de données OCI :

26-SEP-22 10.56.01.395000 PM +00:00

Exemple de catalogue de données de colle AWS :

2022-06-15T09:45:35+01:00

DETAILS Document JSON avec métadonnées sur chaque entité de données (OCI) / base de données (AWS Glue).

Exemple de catalogue de données OCI :

{
  "catalog-id": "ocid1.datacatalog.oc1.ap-mumbai-1.amaaa...",
  "description": null,
  "display-name": "OBJECT_STORE_AT_ASHBURN",
  "external-key": "https://swiftobjectstorage.us-ashburn-1....",
  "key": "bc95181c-3ac3-4959-9e5f-4e460d3fb82a",
  "lifecycle-state": "ACTIVE",
  "time-created": "2022-09-26T22:56:01.395000+00:00",
  "type-key": "3ea65bc5-f60d-477a-a591-f063665339f9",
  "uri": "/dcat/20190325/dataAssets/bc95181c-3ac3-4959-9e5f-4e460d3fb82a"
}

Exemple de catalogue de données de colle AWS :

{
    "Name": "dbmsdcatpoc",
    "Parameters": {
        "somekey": "somevalue"
    },
    "CreateTime": "2022-06-15T09:45:35+01:00",
    "CreateTableDefaultPermissions": [
        {
            "Principal": {
                "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"
            },
            "Permissions": [
                "ALL"
            ]
        }
    ],
    "CatalogId": "579294766787"
}

Vue ALL_CLOUD_CATALOG_TABLES

La vue ALL_CLOUD_CATALOG_TABLES est utilisée pour afficher des informations sur les entités de données pour les catalogues de données et les tables OCI pour les catalogues de données AWS Glue.

Colonne Description
DCAT_CON_ID Identificateur unique du catalogue de données. ID connexion.

Exemple de catalogue de données OCI : CON1

Exemple de catalogue de données de colle AWS : CON1

CATALOG_ID Identificateur unique du catalogue de données.

Exemple de catalogue de données OCI : ocid1.datacatalog.oc1.ap-mumbai-1.….y35a

Exemple de catalogue de données de colle AWS : NULL

579294766787

DATABASE_NAME Nom de la ressource de données (OCI)/base de données (colle AWS).

Exemple de catalogue de données OCI : OBJECT_STORE_AT_ASHBURN

Exemple de catalogue de données de colle AWS : OBJECT_STORE_AT_N_CALIFORNIA

NAME Nom de l'entité de données (OCI) / table (colle AWS).

Exemple de catalogue de données OCI : BIKES_TRIPS

Exemple de catalogue de données de colle AWS : BIKES_TRIPS

DESCRIPTION Description de l'entité de données (OCI) / table (colle AWS).

Exemple de catalogue de données OCI : Table storing bike trips

Exemple de catalogue de données de colle AWS : Table storing bike trips

TIME_CREATED Date et heure de création de l'entité de données (OCI) / de la table (colle AWS) dans le catalogue de données.

Exemple de catalogue de données OCI : 26-SEP-22 10.56.01.395000 PM +00:00

Exemple de catalogue de données de colle AWS : 2022-06-15T09:45:35+01:00

TIME_UPDATED La dernière fois qu'une modification a été apportée à l'entité de données (OCI) / à la table (colle AWS).

Exemple de catalogue de données OCI : 26-SEP-22 10.56.01.395000 PM +00:00

Exemple de catalogue de données de colle AWS : 2022-06-15T09:45:35+01:00

DETAILS Document JSON avec des métadonnées sur chaque entité de données (OCI) / table (colle AWS)

Exemple de catalogue de données OCI :

{  
  "business-name": null,
  "data-asset-key": "bc95181c-3ac3-4959-9e5f-...",
  "description": null,
  "display-name": "bikes_trips",
  "external-key": "LE: https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/..._trips",
  "folder-key": "9c4b542d-d6eb-4b83-bf59-...",
  "folder-name": "hive",
  "is-logical": true,
  "is-partition": false,
  "key": "fde30a69-a07c-478a-ab62-...",
  "lifecycle-state": "ACTIVE",
  "object-storage-url": "https://objectstorage.us-ashburn-1.oraclecloud.com/n/...",
  "path": "OBJECT_STORE_AT_ASHBURN/hive/hive",
  "pattern-key": "db21b3f1-1508-4045-aa80-...",
  "properties": {
    "default": {
      "CONTENT-LENGTH": "4310321",
      "LAST-MODIFIED": "Fri, 9 Oct 2020 20:16:52 UTC",
      "archivedPECount": "0",
      "dataEntityExpression": "{logicalEntity:[^/]+}.db/{logicalEntity:[^/]+}/.*",
      "harvestedFile": "bikes.db/trips/p_start_month=2019-09/000000_0",
      "patternName": "bikes_trips"
    },
    "harvestProps": {
      "characterset": "UTF8",
      "compression": "none",
      "type": "PARQUET"
    }
  },
  "realized-expression": "bikes.db/trips/.*",
  "time-created": "2022-09-26T22:56:35.063000+00:00",
  "time-updated": "2022-09-26T22:56:35.063000+00:00",
  "type-key": "6753c3af-7f88-44b9-be52-1d57bef462fb",
  "updated-by-id": "ocid1.user.oc1..r5l3tov7a",
  "uri": "/dcat/20190325/dataAssets/bc95181c-3ac3-4959-9e5f-..."
}

Exemple de catalogue de données de colle AWS :

{
    "Name": "bikes_trips",
    "DatabaseName": "dbmsdcatpoc",
    "Owner": "owner",
    "CreateTime": "2022-06-23T13:24:20+01:00",
    "UpdateTime": "2022-06-23T13:24:20+01:00",
    "LastAccessTime": "2022-06-23T13:24:20+01:00",
    "Retention": 0,
    "StorageDescriptor": {
        "Columns": [
            {
                "Name": "trip_duration",
                "Type": "int"
            },
            {
                "Name": "start_month",
                "Type": "string"
            }, ...
        ],
        "Location": "s3://dbmsdcatpoc/hive/bikes.db/trips/",
        "InputFormat": "org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat",
        "OutputFormat": "org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat",
        "Compressed": false,
        "NumberOfBuckets": -1,
        "SerdeInfo":
 {            "SerializationLibrary": "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe",
            "Parameters": {
                "serialization.format": "1"
            }
        },
        "BucketColumns": [],
        "SortColumns": [],
        "Parameters": {
            "CrawlerSchemaDeserializerVersion": "1.0",
            "CrawlerSchemaSerializerVersion": "1.0",
            "UPDATED_BY_CRAWLER": "crawler-bikes",
            "averageRecordSize": "86",
            "classification": "parquet",
            "compressionType": "none",
            "objectCount": "12",
            "recordCount": "404947",
            "sizeKey": "35312159",
            "typeOfData": "file"
        },
        "StoredAsSubDirectories": false
    },
    "PartitionKeys": [
        {
            "Name": "p_start_month",
            "Type": "string"
        }
    ],
    "TableType": "EXTERNAL_TABLE",
    "Parameters": {
        "CrawlerSchemaDeserializerVersion": "1.0",
        "CrawlerSchemaSerializerVersion": "1.0",
        "UPDATED_BY_CRAWLER": "crawler-bikes",
        "averageRecordSize": "86",
        "classification": "parquet",
        "compressionType": "none",
        "objectCount": "12",
        "recordCount": "404947",
        "sizeKey": "35312159",
        "typeOfData": "file"
    },
    "CreatedBy": "arn:aws:sts::579294766787:assumed-role/AWSGlueServiceRole-dbmsdcat/AWS-Crawler",
    "IsRegisteredWithLakeFormation": false,
    "CatalogId": "579294766787",
    "VersionId": "0"
}

Exemple

Vue ALL_DCAT_ASSETS

Ressources de catalogue de données auxquelles cette base de données est autorisée à accéder.

Colonne Type de données Description
DCAT_CON_ID VARCHAR2 (4000) Identificateur de connexion unique au sein de l'instance

KEY

VARCHAR2(4000)

Clé de ressource

DISPLAY_NAME VARCHAR2(4000) Nom d'affichage de la ressource
DESCRIPTION VARCHAR2(4000) Description de la ressource
CATALOG_ID VARCHAR2(4000) OCID du catalogue de données contenant la ressource
EXTERNAL_KEY VARCHAR2(4000) URI du stockage d'objets de base pour la ressource
URI VARCHAR2(4000) URI de ressource pour l'API de catalogue de données
TIME_CREATED TIMESTAMP(6) WITH TIMEZONE La date et l'heure de création de la ressource de données
TYPE_KEY VARCHAR2(4000) Clé du type de ressource de données (actuellement, seules les ressources de données du service de stockage d'objets sont prises en charge). Les clés de type se trouvent au moyen du point d'extrémité du catalogue de données '/types'.
LIFECYCLE_STATE VARCHAR2(4000) État courant de la ressource de données. Pour plus d'informations sur les états de cycle de vie possibles, consultez les référencesDataAsset sur le catalogue de données pour obtenir la liste des états possibles pour lifecycleState.

Vue ALL_DCAT_ATTRIBUTES

Attributs du catalogue de données auxquels cette base de données est autorisée à accéder.

Colonne Type de données Description
DCAT_CON_ID VARCHAR2 (4000) Identificateur de connexion unique au sein de l'instance
KEY NUMBER Clé d'attribut

DISPLAY_NAME

VARCHAR2(4000)

Nom d'affichage de l'attribut

BUSINESS_NAME VARCHAR2(4000) Nom d'affaires de l'attribut
DESCRIPTION VARCHAR2(4000) Description de l'attribut
DATA_ASSET_KEY VARCHAR2(4000) Clé de ressource de données
FOLDER_KEY VARCHAR2(4000) Clé de dossier
ENTITY_KEY VARCHAR2(4000) Clé d'entité
EXTERNAL_KEY VARCHAR2(4000) Clé externe unique pour l'attribut
LENGTH NUMBER Longueur maximale autorisée de la valeur d'attribut
PRECISION NUMBER Précision de la valeur d'attribut (s'applique généralement au type de données flottant)
SCALE NUMBER Échelle de la valeur d'attribut (s'applique généralement au type de données flottant)
IS_NULLABLE NUMBER Indique si des valeurs nulles peuvent être affectées à cet attribut
URI VARCHAR2(4000) URI de l'instance d'attribut dans l'API du catalogue de données
LIFECYCLE_STATE VARCHAR2(4000) État actuel de l'attribut. Pour plus d'informations sur les états de cycle de vie possibles, voir Informations de référence sur les attributs du catalogue de données pour obtenir la liste des états possibles pour lifecycleState.
TIME_CREATED TIMESTAMP(6) WITH TIME ZONE Date et heure de création de l'attribut
EXTERNAL_DATA_TYPE VARCHAR2(4000) Type de données de l'attribut tel que défini dans le système externe
MIN_COLLECTION_COUNT NUMBER Nombre minimal d'éléments, si le type de l'attribut est un type de collection
MAX_COLLECTION_COUNT NUMBER Nombre maximal d'éléments, si le type de l'attribut est un type de collection
DATATYPE_ENTITY_KEY VARCHAR2(4000) Clé d'entité qui représente le type de données de cet attribut, applicable s'il s'agit d'un type complexe
EXTERNAL_DATATYPE_ENTITY_KEY VARCHAR2(4000) Clé d'entité externe représentant le type de données de cet attribut, applicable s'il s'agit d'un type complexe
PARENT_ATTRIBUTE_KEY VARCHAR2(4000) Clé d'attribut qui représente l'attribut parent de cet attribut, applicable si l'attribut parent est de type de données complexe
EXTERNAL_PARENT_ATTRIBUTE_KEY VARCHAR2(4000) Clé d'attribut externe qui représente l'attribut parent de cet attribut, applicable si l'attribut parent est de type complexe
PATH VARCHAR2(4000) Chemin complet de l'attribut

Vue ALL_DCAT_CONNECTIONS

Vue contenant des informations sur les catalogues de données connectés à cette instance.

Colonne Type de données Description
DCAT_CON_ID VARCHAR2(4000) Identificateur de connexion unique au sein de l'instance
COMPARTMENT_ID VARCHAR2(4000) OCID du compartiment où réside l'instance de catalogue de données
INSTANCE_ID VARCHAR2(4000)

OCID de l'instance de catalogue de données

REGION

VARCHAR2(4000)

Région pour l'instance de catalogue de données

ENDPOINT VARCHAR2(4000) Point d'extrémité pour l'instance de catalogue de données
CREATED TIMESTAMP Lors de la création de l'instance de catalogue de données
NAME VARCHAR2(4000) Nom de l'instance de catalogue de données
LAST_UPDATED TIMESTAMP Horodatage de la dernière mise à jour de la connexion à l'instance de catalogue de données
LATEST_OPERATION_ID NUMBER ID de la dernière opération de synchronisation
DATA_CATALOG_CREDENTIAL VARCHAR2(128) Données d'identification utilisées pour accéder au catalogue de données
OBJECT_STORE_CREDENTIAL VARCHAR2(128) Données d'identification utilisées par le pilote de table externe pour accéder au magasin d'objets

Vue ALL_DCAT_ENTITIES

Entités logiques du catalogue de données auxquelles cette base de données est autorisée à accéder.

Colonne Type de données Description
DCAT_CON_ID VARCHAR2(4000) Identificateur de connexion unique au sein de l'instance
CATALOG_ID VARCHAR2(4000) OCID du catalogue de données contenant la ressource

KEY

VARCHAR2(4000)

Clé d'entité

DISPLAY_NAME VARCHAR2(4000)

Nom d'affichage de l'entité

BUSINESS_NAME VARCHAR2(4000)

Nom d'entreprise de l'entité

DESCRIPTION VARCHAR2(4000)

Description de l'entité logique

DATA_ASSET_KEY

VARCHAR2(4000)

Clé de ressource

FOLDER_KEY

VARCHAR2(4000)

Clé unique du dossier

FOLDER_NAME VARCHAR2(4000) Nom du dossier (seau)
EXTERNAL_KEY VARCHAR2(4000) Clé externe pour l'entité logique
PATTERN_KEY VARCHAR2(4000) Clé du modèle associé pour l'entité logique
REALIZED_EXPRESSION VARCHAR2(4000) Expression rationnelle utilisée pour obtenir les fichiers de cette entité logique
PATH VARCHAR2(4000) Chemin complet de l'entité logique
TIME_CREATED TIMESTAMP(6) WITH TIME ZONE Date et heure de création de l'entité
TIME_UPDATED TIMESTAMP(6) WITH TIME ZONE La dernière fois qu'une modification a été apportée à l'entité de données
UPDATED_BY_ID VARCHAR2(4000) OCID de l'utilisateur qui a mis à jour cet objet dans le catalogue de données
URI VARCHAR2(4000) URI de l'instance d'entité dans l'API
LIFECYCLE_STATE VARCHAR2(4000) État courant de l'entité. Pour plus d'informations sur les états de cycle de vie possibles, voir Informations de référence sur les entités du catalogue de données pour obtenir la liste des états possibles pour lifecycleState.

Vue ALL_DCAT_FOLDERS

Métadonnées pour les seaux de stockage d'objets contenant les fichiers de données des entités logiques.

Colonne Type de données Description
DCAT_CON_ID VARCHAR2(4000) Identificateur de connexion unique au sein de l'instance
CATALOG_ID VARCHAR2(4000) OCID du catalogue de données contenant la ressource

KEY

VARCHAR2(4000)

Clé de dossier

DISPLAY_NAME

VARCHAR2(4000)

Nom d'affichage du dossier

BUSINESS_NAME VARCHAR2(4000) Nom de l'entreprise du dossier
DESCRIPTION VARCHAR2(4000) Description du dossier
DATA_ASSET_KEY VARCHAR2(4000) Clé de la ressource de données contenant le dossier
PARENT_FOLDER_KEY VARCHAR2(4000) Clé pour le dossier parent (actuellement, il s'agit de la clé de ressource de données)
PATH VARCHAR2(4000) Chemin complet du dossier
EXTERNAL_KEY VARCHAR2(4000) URI du stockage d'objets pour le seau
TIME_EXTERNAL TIMESTAMP(6) WITH TIMEZONE Horodatage de la dernière modification de ce dossier
TIME_CREATED TIMESTAMP(6) WITH TIMEZONE Date et heure de création du dossier
URI VARCHAR2(4000) URI de l'instance de dossier dans l'API du catalogue de données.
LIFECYCLE_STATE VARCHAR2(4000) État actuel du dossier. Pour plus d'informations sur les états de cycle de vie possibles, voir Informations de référence sur le dossier du catalogue de données pour obtenir la liste des états possibles pour lifecycleState.

Vue ALL_DCAT_GLOBAL_ACCESSIBLE_CATALOGS

Cette vue liste tous les catalogues accessibles dans toutes les régions, ainsi que le niveau des privilèges d'accès pour chaque catalogue.

Colonne Type de données Description

CATALOG_ID

VARCHAR2(4000)

OCID du catalogue

CATALOG_NAME VARCHAR2(4000) Nom du catalogue
CATALOG_REGION VARCHAR2(4000) Nom de la région de catalogue
CATALOG_SCORE NUMBER La note du catalogue est une valeur numérique calculée à partir des privilèges configurés pour les données d'identification d'accès au catalogue de données. Une note de catalogue supérieure signifie des privilèges plus importants, ce qui peut entraîner une probabilité plus élevée que ce catalogue soit destiné à être utilisé avec cette instance de base de données IA autonome.

Vue ALL_DCAT_LOCAL_ACCESSIBLE_CATALOGS

Cette vue liste tous les catalogues accessibles dans la région courante, ainsi que le niveau des privilèges d'accès pour chaque catalogue.

Colonne Type de données Description

CATALOG_ID

VARCHAR2(4000)

OCID du catalogue

CATALOG_NAME VARCHAR2(4000) Nom du catalogue
CATALOG_SCORE NUMBER La note du catalogue est une valeur numérique calculée à partir des privilèges configurés pour les données d'identification d'accès au catalogue de données. Une note de catalogue supérieure signifie des privilèges plus importants, ce qui peut entraîner une probabilité plus élevée que ce catalogue soit destiné à être utilisé avec cette instance de base de données IA autonome.

Vue ALL_GLUE_DATABASES

Bases de données AWS Glue Data Catalog auxquelles les données d'identification du catalogue de données sont autorisées à accéder.

Colonne Type de données Description
DCAT_CON_ID VARCHAR2(4000) Identificateur unique de l'ID connexion au catalogue de données.
CATALOG_ID VARCHAR2(255) Identificateur unique du catalogue de données.
NAME VARCHAR2(255) Nom de la base de données.
DESCRIPTION VARCHAR2(2048) Description de la base de données.
LOCATION_URI VARCHAR2(1024) Emplacement de la base de données.
CREATE_TIME TIMESTAMP Heure à laquelle la base de données a été créée dans le catalogue de données.
PARAMETERS CLOB Document JSON avec paires clé-valeur qui définissent les paramètres et les propriétés de la base de données.
TARGET_DATABASE VARCHAR2(4000) Document JSON qui décrit une base de données cible pour la liaison de ressources dans AWS.

Vue ALL_GLUE_TABLES

Cette vue affiche toutes les tables du catalogue de données AWS Glue auxquelles les données d'identification du catalogue de données sont autorisées à accéder.

Colonne Type de données Description
DCAT_CON_ID VARCHAR2(4000) Identificateur unique de l'ID connexion au catalogue de données.
CATALOG_ID VARCHAR2(255) Identificateur du catalogue
DATABASE_NAME VARCHAR2(255) Nom de la base de données
NAME VARCHAR2(255) Nom de la table
TABLE_TYPE VARCHAR2(255) Type de table
CLASSIFICATION VARCHAR2(255)  
DESCRIPTION VARCHAR2(2048) Description de la table
OWNER VARCHAR2(255) Responsable de la table
CREATED_BY VARCHAR2(255) Créateur de table
CREATE_TIME TIMESTAMP Heure à laquelle la table a été créée dans le catalogue de données.
LAST_ANALYZED_TIME TIMESTAMP Les statistiques de la dernière colonne ont été calculées pour cette table.
LAST_ACCESS_TIME TIMESTAMP Dernière consultation de la table.
UPDATE_TIME TIMESTAMP Dernière mise à jour de la table.
IS_REGISTERED_WITH_LAKE_FORMATION NUMBER Indique si la table est enregistrée avec la formation de lac AWS.
PARAMETERS CLOB Document JSON avec paires clé-valeur qui définissent les propriétés de la table.
PARTITION_KEYS CLOB Document JSON avec une liste de colonnes par lesquelles la table est partitionnée.
RETENTION NUMBER Temps de conservation de cette table.
STORAGE_DESCRIPTION CLOB Document JSON contenant des informations sur le stockage physique d'une table.
TARGET_TABLE VARCHAR2(4000) Document JSON décrivant une table cible utilisée pour la liaison de ressources dans AWS.
VERSION_ID VARCHAR2(255) Identificateur de version de la table.
VIEW_EXPANDED_TEXT CLOB Introduit par AWS Glue pour la compatibilité avec Hive. Non utilisé par AWS Glue.
VIEW_ORIGINAL_TEXT CLOB Introduit par AWS Glue pour la compatibilité avec Hive. Non utilisé par AWS Glue.

Vue DCAT_ATTRIBUTES

Répertorie le mappage des attributs d'entité logique aux colonnes de table externe.

Colonne Type de données Description
DCAT_CON_ID VARCHAR2 (4000) Identificateur de connexion unique au sein de l'instance
ASSET_KEY VARCHAR2(4000) Clé de ressource du catalogue de données

ENTITY_KEY

VARCHAR2(4000)

Clé d'entité du catalogue de données

ATTRIBUTE_KEY

VARCHAR2(4000)

Clé d'attribut du catalogue de données

ORACLE_COLUMN_NAME VARCHAR2(128) Nom de la colonne mappée

Vue DCAT_ENTITIES

Décrit le mappage des entités logiques aux tables externes.

Colonne Type de données Description
DCAT_CON_ID VARCHAR2(4000) Identificateur de connexion unique au sein de l'instance
ASSET_KEY VARCHAR2(4000) Clé de ressource du catalogue de données

ENTITY_KEY

VARCHAR2(4000)

Clé d'entité du catalogue de données

FOLDER_KEY

VARCHAR2(4000)

Clé de dossier du catalogue de données

ORACLE_TABLE_NAME VARCHAR2(128) Nom de la table mappée
ORACLE_SCHEMA_NAME VARCHAR2(128) Nom du schéma mappé
ENTITY_ORACLE_DB_SCHEMA VARCHAR2(4000) Propriété personnalisée oracle-db-schema de l'entité utilisée pour dériver le schéma
ASSET_ORACLE_DB_SCHEMA VARCHAR2(4000) Propriété personnalisée oracle-db-schema de la ressource de données utilisée pour dériver le schéma
FOLDER_ORACLE_DB_SCHEMA VARCHAR2(4000) Propriété personnalisée oracle-db-schema du dossier utilisée pour dériver le schéma

DBMS_DCAT$SYNC_LOG Vue

La vue DBMS_DCAT$SYNC_LOG permet d'accéder facilement à la table de journaux pour la dernière opération de synchronisation exécutée par l'utilisateur courant.

Chaque appel à la procédure RUN_SYNC est journalisé dans une nouvelle table de journaux, pointée par le champ LOGFILE_TABLE de USER_LOAD_OPERATIONS. Les tables de journaux sont automatiquement supprimées après 2 jours et les utilisateurs peuvent effacer tous les journaux de synchronisation à l'aide de la procédure DELETE_ALL_OPERATIONS dont le type est DCAT_SYNC.

La vue DBMS_DCAT$SYNC_LOG identifie automatiquement la dernière table de journaux. Le schéma de la vue DBMS_DCAT$SYNC_LOG est décrit ci-dessous et les autorisations d'accès sont identiques à celles des tables de journaux individuelles. Par défaut, READ est accordé au rôle dbms_dcat et à l'utilisateur ADMIN.

Les tables de journalisation ont le format suivant :

Colonne Type de données Description

LOG_TIMESTAMP

TIMESTAMP

Horodatage de l'entrée de journal.

LOG_LEVEL

VARCHAR2(32)

Le niveau de journal d'entrée peut avoir l'une des valeurs suivantes : OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL.

LOG_DETAILS VARCHAR2(32767) Message de journal.