Funzioni di inclusione
La classe Adp.Ingest viene utilizzata per caricare dati da origini diverse in tabelle e viste.
L'API Autonomous Database Load Data per Python consente le operazioni riportate di seguito.
- Copiare le tabelle dal database link a tabelle o viste dello schema corrente
- Copiare gli oggetti dal collegamento Storage cloud alle tabelle o alle tabelle esterne dello schema corrente
- Crea tabella con dati da json
Queste operazioni creano il job di inclusione corrispondente
Operazioni Database Link
Le funzioni Database Link forniscono la sintassi e le descrizioni delle classi, dei metodi, degli attributi e dei parametri dell'interfaccia di programmazione dell'applicazione al Database Link.
Recupera procedura gruppo di consumer
Questa funzione riceve una lista di gruppi di consumer per eseguire il codice SQL o PL/SQL. I valori corrispondono ai servizi di database disponibili durante la connessione al database. Questa funzione è disponibile solo se si dispone del privilegio EXECUTE sul pacchetto CS_SESSION.
Sintassi
Ingest.get_consumer_groups()Esempio
In questo esempio viene visualizzato l'elenco dei gruppi di consumer:
adp.Ingest.get_consumer_groups() //Output:['LOW', 'MEDIUM', 'HIGH']
Procedura Recupera collegamenti database
Restituisce l'elenco dei database link disponibili (per creare il database link, vedere Database LinksDatabase Links in "Oracle® Database Database Administrator's Guide 21c").
Ingest.get_database_links(owner)- Proprietario: questo campo visualizza il proprietario dei database link. Se manca questo campo, lo strumento utilizza il proprietario dello schema corrente.
Esempio
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":[]}Procedura di recupero delle tabelle nel database link
Restituisce la lista di tabelle e viste dal database link.
Ingest.get_db_link_owner_tables(db_link)Parametri:
- db_link: questo nome del database link.
Esempio
In questo esempio viene visualizzata la lista degli oggetti in un database link specificato:
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
},...
]Copia tabella dalla procedura Database Link
Creare una tabella dalle tabelle specificate nel database corrente.
Sintassi
Ingest.copy_tables_from_db_link(tables, consumer_group)Parametri:
- tabelle: array di descrizioni delle tabelle. Ogni descrizione ha 4 campi.
- Proprietario: questo campo visualizza il proprietario del database link. Se manca questo campo, lo strumento utilizza il proprietario dello schema corrente.
- table_name: il nome della tabella nel database link. Questo campo è obbligatorio.
- db_link: il nome del database link. Questo campo è obbligatorio.
- target_table_name: il nome della tabella di destinazione. Se manca questo campo, lo strumento utilizza il nome della tabella di origine.
- consumer_group: il gruppo di consumer. Il valore predefinito è "LOW".
Esempi
In questo esempio, è possibile creare una tabella basata sulla tabella nel database link:
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
}
]Il metodo restituisce l'elenco delle tabelle create. Il dizionario dell'output è uguale a quello dei parametri di input e viene inserito il conteggio delle righe.
Tabella collegamenti da procedura Database Link
Creare una vista dalle tabelle specificate nel database corrente. Tenere presente che la stringa dei risultati non contiene un numero di righe.
Ingest.link_tables_from_db_link(tables, consumer_group)- tabelle: array di descrizioni delle tabelle. Ogni descrizione ha 4 campi
- Proprietario: questo campo visualizza il proprietario del database link. Se manca questo campo, lo strumento utilizza il proprietario dello schema corrente.
- table_name: il nome della tabella nel database link. Questo campo è obbligatorio.
- db_link: il nome del database link. Questo campo è obbligatorio.
- target_table_name: il nome della tabella di destinazione. Se manca questo campo, lo strumento utilizza il nome della tabella di origine.
-
consumer_group: il gruppo di consumer. Il valore predefinito è "LOW".
Esempio
In questo esempio, è possibile creare una tabella basata sulla tabella nel database link:
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'}
]Operazioni del collegamento alla memoria cloud
Le funzioni Cloud Storage Link forniscono la sintassi e le descrizioni delle classi, dei metodi, degli attributi e dei parametri dell'interfaccia di programmazione dell'applicazione allo strumento Cloud Storage Link della suite di strumenti Data Studio.
Questi metodi consentono di gestire le credenziali e il collegamento allo storage cloud e di importare gli oggetti cloud in tabelle o tabelle esterne dello schema corrente.
Procedura di recupero della lista delle credenziali
Restituisce la lista delle credenziali disponibili
Ingest.get_credential_list()La funzione sopra riportata restituisce una lista di Credenziali.
Esempio
In questo esempio è possibile ottenere tutte le credenziali:
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\": \"\"}"
},
...
]
}
Crea procedura credenziali
Crea credenziale semplice. Per il cloud Microsoft Azure l'uso è un nome account e la password è una chiave di accesso, per l'utente Amazon è un ID chiave di accesso e la password è una chiave di accesso segreta, per l'utente Google è una chiave di accesso HMAC e la password è un segreto di accesso HMAC.
Sintassi
Ingest.create_credential(credential_name, user, password)Parametri:
- nome_credenziale: il nome di una nuova credenziale
- utente e password dipendono dal sistema cloud: per Microsoft Azure l'utente cloud è un nome account e la password è una chiave di accesso, per Amazon l'utente è un ID chiave di accesso e la password è una chiave di accesso segreta, per Google l'utente è una chiave di accesso HMAC e la password è un segreto di accesso HMAC.
Esempio
In questo esempio è possibile creare una credenziale con utente e password specificati:
adp.Ingest.create_credential('TEST", 'ADMIN', 'PASSWORD')Crea procedura credenziali OCID
Creare le credenziali utilizzando le chiavi di firma OCI.
Sintassi
Ingest.create_ocid_credential(credential_name, user_ocid, tenancy_ocid,
private_key, fingerprint)Questa funzione crea le credenziali utilizzando le chiavi di firma OCI.
Parametri:
- nome_credenziale: il nome della credenziale.
- user_ocid: l'OCID dell'utente.
- tenancy_ocid: l'OCID della tenancy.
- private_key: la chiave privata nella coppia di chiavi RSA. La chiave privata si estende su più righe. Assicurarsi di sostituire tutti i caratteri di nuova riga con il carattere di spazio e utilizzare la chiave risultante.
- impronta: l'impronta digitale per la coppia di chiavi RSA che si sta utilizzando per accedere a OCI.
Esempio
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')
Elimina procedura credenziali
Eliminare la credenziale con il nome specificato.
Ingest.drop_credential(credential_name)Parametri:
- nome_credenziale: il nome della credenziale.
Esempio
In questo esempio è possibile eliminare la credenziale con il nome 'TEST':
adp.Ingest.drop_credential('TEST')
Procedura di recupero della lista di collegamenti allo storage cloud
Sintassi
Ingest.get_cloud_storage_link_list(owner)Parametri:
- Proprietario: questo campo visualizza il proprietario del database link. Se manca questo campo, lo strumento utilizza il proprietario dello schema corrente.
Esempio
In questo esempio, è possibile visualizzare la lista dei collegamenti allo storage 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"
}
},
...
]
}
Procedura Crea collegamento memoria cloud
Crea la procedura di collegamento allo storage cloud in base all'URI e alle credenziali dello storage cloud. La credenziale può essere saltata se il collegamento di storage è un bucket pubblico.
Sintassi
Ingest.create_cloud_storage_link(storage_link_name, uri, credential_name,
description)Parametri:
- nome_collegamento_storage: il nome del collegamento allo storage cloud. Questo campo è obbligatorio.
- URI: il percorso URL (URI) ad eccezione del nome file. Questo campo è obbligatorio.
- nome_credenziale: il nome della credenziale deve essere conforme alle convenzioni di denominazione degli oggetti Oracle.
- descrizione: descrizione del collegamento. Se manca la descrizione, lo strumento utilizza nome_collegamento_storage.
Esempio
In questo esempio è possibile creare il collegamento allo storage cloud con il nome 'TEST'
Ingest.create_cloud_storage_link('TEST', 'https://.../test-bucket/o/', None, 'OCI Storage Link')
Elimina procedura collegamento storage cloud
Elimina il collegamento allo storage cloud in base al nome del collegamento allo storage.
Ingest.drop_cloud_storage_link(storage_link_name)Parametri:
- nome_collegamento_storage: il nome del collegamento allo storage cloud.
Esempio
In questo esempio, è possibile eliminare il collegamento allo storage cloud con il nome 'TEST'
Ingest.drop_cloud_storage_link('TEST')Procedura di recupero degli oggetti di storage cloud
Recupera la lista degli oggetti nel collegamento dello storage cloud.
Sintassi
Ingest.get_cloud_objects(storage_link,owner)Questa funzione restituisce la lista degli oggetti nel collegamento dello storage cloud.
Parametri:
- storage_link: il nome del collegamento allo storage cloud.
- Proprietario: questo campo visualizza il proprietario del database link. Se manca questo campo, lo strumento utilizza il proprietario dello schema corrente.
Esempio
In questo esempio, è possibile elencare gli oggetti nel collegamento Storage cloud con il nome '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"
}
},...
]
}Restituisce l'elenco dei gruppi di consumer disponibili.
Procedura Copia oggetti cloud
Copiare gli oggetti cloud dal collegamento Storage cloud alle tabelle nello schema corrente
Ingest.copy_cloud_objects(objects, consumer_group)Parametri:
- oggetti: array di descrizioni delle tabelle. Ogni descrizione ha 4 campi.
- storageLink: il nome del collegamento di storage cloud. Questo campo è obbligatorio.
- objectName: il nome del file nel collegamento Storage cloud. Vedere il campo name nei risultati del metodo get_cloud_object. Questo campo è obbligatorio.
- targetTableName: il nome della tabella di destinazione. Se manca questo campo, lo strumento utilizza il nome del file come nome della tabella.
-
consumer_group: il gruppo di consumer. Il valore predefinito è "LOW".
Esempio
In questo esempio è possibile creare una tabella e caricare i dati dall'oggetto nel collegamento Storage cloud.
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
}
]
Procedura Collega oggetti cloud
Crea tabelle esterne basate su oggetti cloud dal collegamento Storage cloud.
Ingest.link_cloud_objects(objects, consumer_group)Parametri:
- oggetti: array di descrizioni delle tabelle. Ogni descrizione ha 4 campi.
- storageLink: il nome del collegamento di storage cloud. Questo campo è obbligatorio.
- objectName: il nome del file nel collegamento Storage cloud. Vedere il campo nome nei risultati del metodo get_cloud_object. Questo campo è obbligatorio.
- targetTableName: il nome della tabella di destinazione. Se manca questo campo, lo strumento utilizza il nome del file come nome della tabella.
-
consumer_group: il gruppo di consumer. Il valore predefinito è "LOW".
Esempio
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
}
]Procedura Crea tabella da dati json
Ingest.load_data(tables)Parametri:
- tabelle è l'elenco dei dizionari con i seguenti campi:
- contenuto: è il contenuto dei dati, è un dizionario con chiave come nome colonna e valori come elenco di valori della colonna.
- targetTableName: il nome della tabella.
Esempio
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}]Argomento padre: Utilizzo dell'API di Python Data Studio per Autonomous Database