Fonctions d'inclusion
La classe Adp.Ingest permet de charger des données provenant de différentes sources dans des tables et des vues.
L'API de chargement de données Autonomous Database pour Python autorise les opérations suivantes :
- Copier des tables du lien de base de données vers des tables ou des vues du schéma en cours
- Copier des objets du lien de stockage cloud vers des tables ou des tables externes du schéma en cours
- Créer une table avec les données de json
Ces opérations créent le travail d'inclusion correspondant
Opérations de lien de base de données
Les fonctions Lien de base de données fournissent la syntaxe et les descriptions des classes, méthodes, attributs et paramètres de l'interface de programmation d'application vers le lien de base de données.
Obtenir une procédure de groupe de consommateurs de ressources
Cette fonction reçoit la liste des groupes de destinataires pour exécuter le code SQL ou PL/SQL. Les valeurs correspondent aux services de base de données disponibles lors de la connexion à la base de données. Cette fonctionnalité n'est disponible que si vous disposez du privilège EXECUTE sur le package CS_SESSION.
Syntaxe
Ingest.get_consumer_groups()Exemple
Dans cet exemple, vous obtenez la liste des groupes de consommateurs de ressources :
adp.Ingest.get_consumer_groups() //Output:['LOW', 'MEDIUM', 'HIGH']
Procédure d'obtention de liens de base de données
Renvoie la liste des liens de base de données disponibles (pour créer un lien de base de données, reportez-vous à Database LinksDatabase Links dans le "Guide de l'administrateur Oracle® Database Database 21c").
Ingest.get_database_links(owner)- owner : Ce champ affiche le propriétaire des liens de base de données. Si ce champ est manquant, l'outil utilise le propriétaire de schéma actuel.
Exemple
adp.Ingest.get_database_links()
//Output
{"nodes":
[
{"label":"***********_*********_SH.REGRESS.RDBMS.DEV.US.ORACLE.COM",
"type":"DB_LINK",
"id":"\"ADPTEST\".\"DB_LINK\".\"***********_*********_SH.REGRESS.RDBMS.DEV.US.ORACLE.COM\"",
"data":{
"name":"********_*******_SH.REGRESS.RDBMS.DEV.US.ORACLE.COM",
"namespace":"DB_LINK",
"path":"\"DB_LINK\".\"*************_********_SH.REGRESS.RDBMS.DEV.US.ORACLE.COM\"",
"schema":"ADPTEST",
"application":"DATABASE",
"created":"2024-05-02T08:30:15Z",
"updated":"2024-05-02T08:30:15Z"
}
}
],"links":[]}Obtenir les tables dans la procédure Lien de base de données
Renvoie la liste des tables et des vues à partir du lien de base de données.
Ingest.get_db_link_owner_tables(db_link)Paramètres:
- db_link : nom du liaison de base de données.
Exemple
Dans cet exemple, vous obtenez la liste des objets d'un lien de base de données donné :
adp.Ingest.get_db_link_owner_tables("**************_********_SH.REGRESS.RDBMS.DEV.US.ORACLE.COM")
//Output
[
"APEX_DG_DATASET_ROWS": {
"dbLink": "**************_********_SH.REGRESS.RDBMS.DEV.US.ORACLE.COM",
"owner": "APEX_230200",
"tableName": "APEX_DG_DATASET_ROWS",
"numRows": 3,
"avgRowLen": 54
},...
]Copier une table à partir d'un lien de base de données - Procédure
Créez une table à partir des tables indiquées dans la base de données en cours.
Syntaxe
Ingest.copy_tables_from_db_link(tables, consumer_group)Paramètres:
- tables : tableau de description des tables. Chaque description comporte 4 champs.
- owner : Ce champ affiche le propriétaire du lien de base de données. Si ce champ est manquant, l'outil utilise le propriétaire de schéma actuel.
- table_name : nom de la table dans le lien de base de données. Ce champ est obligatoire.
- db_link : nom du Lien de base de données. Ce champ est obligatoire.
- target_table_name : nom de la Table cible. Si ce champ est manquant, l'outil utilise le nom de la table source.
- consumer_group : groupe de consommateurs de ressources. La valeur par défaut est "LOW".
Exemples
Dans cet exemple, vous pouvez créer une table basée sur la table du lien de base de données :
adp.Ingest.copy_tables_from_db_link([{'owner':'SH', 'tableName':'PRODUCTS', 'dbLink':'PHOENIX119757_ORDS_SH.REGRESS.RDBMS.DEV.US.ORACLE.COM','targetTableName': 'PRODUCT'}], 'HIGH')
//Output
[
{
'schema': 'SH',
'tableName': 'PRODUCTS',
'targetTableName': 'PRODUCTS',
'name': '***********_***********_SH.REGRESS.RDBMS.DEV.US.ORACLE.COM',
'rowsCopied': 766
}
]La méthode renvoie la liste des tables que vous créez. Le dictionnaire de la sortie est identique aux paramètres d'entrée et une valeur supplémentaire est insérée.
Table de liens à partir d'un lien de base de données - Procédure
Créez une vue à partir des tables indiquées dans la base de données en cours. Tenez compte du fait que la chaîne de résultat n'a pas de nombre de lignes.
Ingest.link_tables_from_db_link(tables, consumer_group)- tables : tableau de description des tables. Chaque description comporte 4 champs
- owner : Ce champ affiche le propriétaire du lien de base de données. Si ce champ est manquant, l'outil utilise le propriétaire de schéma actuel.
- table_name : nom de la table dans le lien de base de données. Ce champ est obligatoire.
- db_link : nom du Lien de base de données. Ce champ est obligatoire.
- target_table_name : nom de la Table cible. Si ce champ est manquant, l'outil utilise le nom de la table source.
-
consumer_group : groupe de consommateurs de ressources. La valeur par défaut est "LOW".
Exemple
Dans cet exemple, vous pouvez créer une table basée sur la table du lien de base de données :
adp.Ingest.link_tables_from_db_link([{'owner':'SH', 'tableName':'PROMOTIONS', 'dbLink':'**************_********_SH.REGRESS.RDBMS.DEV.US.ORACLE.COM', 'targetTableName': 'PROMOTIONS'}},'HIGH')
//Output
[
{
'schema': 'SH',
'tableName': 'PROMOTIONS',
'targetTableName': 'PROMOTIONS',
'name': '**************_********_SH.REGRESS.RDBMS.DEV.US.ORACLE.COM'}
]Opérations de lien de stockage cloud
Les fonctions Cloud Storage Link fournissent la syntaxe et les descriptions des classes, méthodes, attributs et paramètres de l'interface de programmation d'application à l'outil Cloud Storage Link de la suite d'outils Data Studio.
Ces méthodes permettent de gérer les informations d'identification et le lien de stockage cloud, et d'importer des objets cloud dans des tables ou des tables externes du schéma en cours.
Obtenir la liste des informations d'identification - Procédure
Renvoyer la liste des informations d'identification disponibles
Ingest.get_credential_list()La fonction ci-dessus renvoie une liste d'informations d'identification.
Exemple
Dans cet exemple, vous pouvez obtenir toutes les informations d'identification :
adp.Ingest.get_credential_list()
{
"items": [
{
"credential_name": "PROVIDER_DEMO_DELTA_SHARING_111$SHARE_CRED",
"username": "BEARER_TOKEN",
"windows_domain": null,
"comments": "{\"comments\": \"Created via DBMS_CLOUD.create_credential\",\"user_comments\": \"\"}"
},
...
]
}
Créer une procédure d'identification
Créez des informations d'identification simples. Pour l'utilisation du cloud Microsoft Azure est un nom de compte, et le mot de passe est une clé d'accès, pour l'utilisateur Amazon est un ID de clé d'accès et le mot de passe est une clé d'accès secrète, pour l'utilisateur Google est une clé d'accès HMAC et le mot de passe est une clé secrète d'accès HMAC.
Syntaxe
Ingest.create_credential(credential_name, user, password)Paramètres:
- credential_name : nom des nouvelles informations d'identification
- user et password dépendent du système cloud : pour le cloud Microsoft Azure, user est un nom de compte et password est une clé d'accès, pour Amazon, user est un ID de clé d'accès et password est une clé d'accès secrète, pour Google, user est une clé d'accès HMAC et password est une clé secrète d'accès HMAC.
Exemple
Dans cet exemple, vous pouvez créer des informations d'identification avec l'utilisateur et le mot de passe indiqués :
adp.Ingest.create_credential('TEST", 'ADMIN', 'PASSWORD')Créer une procédure d'informations d'identification d'OCID
Créez des informations d'identification à l'aide des clés de signature OCI.
Syntaxe
Ingest.create_ocid_credential(credential_name, user_ocid, tenancy_ocid,
private_key, fingerprint)Cette fonction crée des informations d'identification à l'aide des clés de signature OCI.
Paramètres:
- credential_name : nom des informations d'identification.
- user_ocid : OCID de l'utilisateur.
- tenancy_ocid : OCID de la location.
- private_key : clé privée dans la paire de clés RSA. La clé privée s'étend sur plusieurs lignes. Veillez à remplacer tous les caractères de retour à la ligne par l'espace et utilisez la clé obtenue.
- empreinte : empreinte de la paire de clés RSA que vous utilisez pour accéder à OCI.
Exemple
adp.Ingest.create_ocid_credential('OCI_NATIVE_CRED', 'ocid1.user.oc1..aaaaaaaatfn77fe3fxux3o5lego7glqjejrzjsqsrs64f4jsjrhbsk5qzndq','ocid1.user.oc1..aaaaaaaatfn77fe3fxux3o5lego7glqjejrzjsqsrs64f4jsjrhbsk5qzndq', 'MIIEogIBAAKCAQEAsbNPOYEkxM5h0DF+qXmie6ddo95BhlSMSIxRRSO1JEMPeSta0C7WEg7g8SOSzhIroCkgOqDzkcyXnk4BlOdn5Wm/BYpdAtTXk0sln2DH...', '4f:0c:d6:b7:f2:43:3c:08:df:62:e3:b2:27:2e:3c:7a')
Procédure de suppression des informations d'identification
Supprimez les informations d'identification avec le nom indiqué.
Ingest.drop_credential(credential_name)Paramètres:
- credential_name : nom des informations d'identification.
Exemple
Dans cet exemple, vous pouvez supprimer les informations d'identification portant le nom "TEST" :
adp.Ingest.drop_credential('TEST')
Obtenir la liste des liens de stockage cloud - Procédure
Syntaxe
Ingest.get_cloud_storage_link_list(owner)Paramètres:
- owner : Ce champ affiche le propriétaire du lien de base de données. Si ce champ est manquant, l'outil utilise le propriétaire de schéma actuel.
Exemple
Dans cet exemple, vous pouvez obtenir la liste des liens de stockage cloud :
Ingest.get_cloud_storage_link_list()
// Output
{
"nodes": [
{
"label": "AA",
"type": "CLOUD_STORAGE_LINK",
"id": "\"ADMIN\".\"STORAGE_LINK\".\"AA\"",
"data": {
"name": "AA",
"entityID": 28897,
"namespace": "STORAGE_LINK",
"path": "\"STORAGE_LINK\".\"AA\"",
"schema": "ADMIN",
"application": "CLOUD",
"created": "2023-01-30T21:42:17Z",
"updated": "2023-01-30T21:42:17Z",
"catalog": "LOCAL"
}
},
...
]
}
Créer une procédure de lien de stockage cloud
Créez une procédure de lien de stockage cloud basée sur l'URI et les informations d'identification de stockage cloud. Les informations d'identification peuvent être ignorées si le lien de stockage est un bucket public.
Syntaxe
Ingest.create_cloud_storage_link(storage_link_name, uri, credential_name,
description)Paramètres:
- storage_link_name : nom du lien de stockage cloud. Ce champ est obligatoire.
- URI : Chemin d'URL (URI) à l'exception du nom de fichier. Ce champ est obligatoire.
- credential_name : le nom des informations d'identification doit être conforme aux conventions de dénomination des objets Oracle.
- description : description du lien. Si la description est manquante, l'outil utilise storage_link_name à la place.
Exemple
Dans cet exemple, vous pouvez créer le lien de stockage cloud nommé TEST.
Ingest.create_cloud_storage_link('TEST', 'https://.../test-bucket/o/', None, 'OCI Storage Link')
Procédure de suppression de lien de stockage cloud
Supprimez le lien de stockage cloud en fonction du nom du lien de stockage.
Ingest.drop_cloud_storage_link(storage_link_name)Paramètres:
- storage_link_name : nom du lien de stockage cloud.
Exemple
Dans cet exemple, vous pouvez supprimer le lien de stockage cloud portant le nom "TEST"
Ingest.drop_cloud_storage_link('TEST')Procédure d'obtention des objets de stockage cloud
Obtenez la liste des objets dans Cloud Storage Link.
Syntaxe
Ingest.get_cloud_objects(storage_link,owner)Cette fonction renvoie la liste des objets dans le lien de stockage cloud.
Paramètres:
- storage_link : nom du lien de stockage cloud.
- owner : Ce champ affiche le propriétaire du lien de base de données. Si ce champ est manquant, l'outil utilise le propriétaire de schéma actuel.
Exemple
Dans cet exemple, vous pouvez répertorier les objets dans le lien de stockage cloud portant le nom 'TEST'
Ingest.get_cloud_objects('TEST')
// Output
{
"nodes": [
{
"label": "users/1623813236395.parquet",
"type": "CLOUD_OBJECT",
"id": "\"ADMIN\".\"STORAGE_LINK\".\"TEST\".\"OBJECT\".\"users/1623813236395.parquet\"",
"data": {
"name": "users/1623813236395.parquet",
"namespace": "OBJECT",
"path": "\"STORAGE_LINK\".\"TEST\".\"OBJECT\".\"users/1623813236395.parquet\"",
"schema": "ADMIN",
"annotation": {
"bytes": 1835742,
"checksum": "8c215516638037427850b03f0e111850",
"isFolder": false,
"fileName": "1623813236395.parquet",
"uri": "https://.../test-bucket/o/users/1623813236395.parquet"
},
"application": "CLOUD",
"created": "2022-08-02T14:21:26Z",
"updated": "2022-08-02T14:21:26Z",
"catalog": "LOCAL"
}
},...
]
}La liste des groupes de consommateurs de ressources disponibles est alors renvoyée.
Procédure de copie d'objets cloud
Copier les objets cloud du lien de stockage cloud vers les tables du schéma en cours
Ingest.copy_cloud_objects(objects, consumer_group)Paramètres:
- objects : tableau de la description des tables. Chaque description comporte 4 champs.
- storageLink : nom de la liaison de stockage cloud. Ce champ est obligatoire.
- objectName : nom du fichier dans le lien de stockage cloud. Reportez-vous au champ name dans les résultats de la méthode get_cloud_object. Ce champ est obligatoire.
- targetTableName : nom de la Table cible. Si ce champ est manquant, l'outil utilise le nom de fichier comme nom de table.
-
consumer_group : groupe de consommateurs de ressources. La valeur par défaut est "LOW".
Exemple
Dans cet exemple, vous pouvez créer une table et charger des données à partir de l'objet dans Cloud Storage Link.
adp.Ingest.copy_cloud_objects([{'storageLink': 'TEST', 'objectName': 'users/testData.csv','targetTableName': 'TESTDATA'}, 'HIGH')
output:
[
{
"storageLink": "TEST",
"targetTableName": "TESTDATA",
"objectName": "users/testData.csv",
"rowsCopied": 588
}
]
Procédure de liaison d'objets cloud
Créez des tables externes basées sur des objets cloud à partir du lien de stockage cloud.
Ingest.link_cloud_objects(objects, consumer_group)Paramètres:
- objects : tableau de la description des tables. Chaque description comporte 4 champs.
- storageLink : nom de la liaison de stockage cloud. Ce champ est obligatoire.
- objectName : nom du fichier dans le lien de stockage cloud. Reportez-vous au champ name dans les résultats de la méthode get_cloud_object. Ce champ est obligatoire.
- targetTableName : nom de la Table cible. Si ce champ est manquant, l'outil utilise le nom de fichier comme nom de table.
-
consumer_group : groupe de consommateurs de ressources. La valeur par défaut est "LOW".
Exemple
adp.Ingest.link_cloud_objects([{'storageLink': 'TEST', 'objectName': 'users/testData.csv','targetTableName': 'TESTDATA'}, 'HIGH')
output:
[
{
"storageLink": "TEST",
"targetTableName": "TESTDATA",
"objectName": "users/testData.csv",
"rowsCopied": 588
}
]Créer une table à partir de données json - Procédure
Ingest.load_data(tables)Paramètres:
- tables est la liste des dictionnaires avec les champs suivants :
- contenu : contenu des données. Il s'agit d'un dictionnaire avec une clé comme nom de colonne et des valeurs comme liste de valeurs de la colonne.
- targetTableName : nom de la table.
Exemple
content = {
"Year_id":[11,12,13,14,15],
"Year_name": ["CY2011","CY2012","CY2013","CY2014","CY2015"],
"Year_end_date": ["31-DEC-11","31-DEC-12","31-DEC-13","31-DEC-14","31-DEC-15"],
"Quarter_id":[211,212,213,214,215],
"Quarter_name":["Q2CY2011","Q2CY2012","Q2CY2013","Q2CY2014","Q2CY2015"],
"Quarter_end_date":["30-JUN-11","30-JUN-12","30-JUN-13","30-JUN-14","30-JUN-15"]
}
content_list=[{"content": content, "targetTableName": "TestLoad"}]
adp.Ingest.load_data(content_list)
//Output
[{'fileName': 'TESTLOAD', 'targetTableName': 'TESTLOAD', 'rowsCopied': 6}]Rubrique parent : Utilisation de l'API Python Data Studio pour Autonomous Database