Aufnahmefunktionen

Die Klasse Adp.Ingest wird zum Laden von Daten aus verschiedenen Quellen in Tabellen und Views verwendet.

Die Autonomous Database Load Data-API für Python ermöglicht die folgenden Vorgänge:

  • Tabellen aus dem Datenbanklink in Tabellen oder Views des aktuellen Schemas kopieren
  • Objekte aus dem Cloud Storage-Link in Tabellen oder externe Tabellen des aktuellen Schemas kopieren
  • Tabelle mit Daten aus json erstellen

Diese Vorgänge erstellen den entsprechenden Aufnahmejob

Datenbanklinkvorgänge

Database Link-Funktionen stellen die Syntax und Beschreibungen der Klassen, Methoden, Attribute und Parameter der Anwendungsprogrammierschnittstelle für den Datenbanklink bereit.

Consumer-Gruppe abrufen - Vorgehensweise

Diese Funktion empfängt eine Liste von Nutzungsgruppen zum Ausführen des SQL- oder PL/SQL-Codes. Die Werte stimmen mit den Datenbankservices überein, die bei der Anmeldung bei der Datenbank verfügbar sind. Diese Funktion ist nur verfügbar, wenn Sie über die Berechtigung EXECUTE für das Package CS_SESSION verfügen.

Syntax

Ingest.get_consumer_groups()

Beispiel

In diesem Beispiel wird die Liste der Nutzungsgruppen angezeigt:

adp.Ingest.get_consumer_groups() //Output:['LOW', 'MEDIUM', 'HIGH']

Prozedur "Datenbanklinks abrufen"

Liste der verfügbaren Datenbanklinks zurückgeben (Informationen zum Erstellen eines Datenbanklinks finden Sie unter Datenbanklinks in "Oracle® Database Database Administrator's Guide 21c").

Ingest.get_database_links(owner)
Parameter:
  • Eigentümer: In diesem Feld wird der Eigentümer von Datenbanklinks angezeigt. Wenn dieses Feld fehlt, verwendet das Tool den aktuellen Schemaeigentümer.

Beispiel

In diesem Beispiel erhalten Sie die Liste der Datenbanklinks:
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":[]}

Tabellen in der Prozedur "Datenbanklink" abrufen

Liste der Tabellen und Views aus dem Datenbanklink zurückgeben

Ingest.get_db_link_owner_tables(db_link)

Parameter:

  • db_link: Dieser Name des Datenbanklinks.

Beispiel

In diesem Beispiel erhalten Sie die Liste der Objekte in einem angegebenen Datenbanklink:

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
  },...
]

Tabelle aus Prozedur "Datenbanklink kopieren"

Erstellen Sie eine Tabelle aus den angegebenen Tabellen in der aktuellen Datenbank.

Syntax

Ingest.copy_tables_from_db_link(tables, consumer_group)

Parameter:

  • Tabellen: Array der Tabellenbeschreibung. Jede Beschreibung enthält 4 Felder.
  • Eigentümer: In diesem Feld wird der Eigentümer des Datenbanklinks angezeigt. Wenn dieses Feld fehlt, verwendet das Tool den aktuellen Schemaeigentümer.
  • table_name: Der Name der Tabelle im Datenbanklink. Dieses Feld ist ein Pflichtfeld.
  • db_link: Der Name des Datenbanklinks. Dieses Feld ist ein Pflichtfeld.
  • target_table_name: Der Name der Zieltabelle. Wenn dieses Feld fehlt, verwendet das Tool den Namen der Quelltabelle.
  • consumer_group: Die Nutzungsgruppe. Der Standardwert ist "LOW".

Beispiele

In diesem Beispiel können Sie eine Tabelle basierend auf der Tabelle im Datenbanklink erstellen:

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
    }
]

Die Methode gibt die Liste der Tabellen zurück, die Sie erstellen. Das Dictionary der Ausgabe entspricht dem der Eingabeparameter, und der zusätzliche Wert wird in die Zeilenanzahl eingefügt.

Linktabelle aus Datenbanklinkprozedur

View aus den angegebenen Tabellen in der aktuellen Datenbank erstellen Beachten Sie, dass die Ergebniszeichenfolge keine Zeilen enthält.

Ingest.link_tables_from_db_link(tables, consumer_group)
Parameter:
  • Tabellen: Array der Tabellenbeschreibung. Jede Beschreibung enthält 4 Felder
    • Eigentümer: In diesem Feld wird der Eigentümer des Datenbanklinks angezeigt. Wenn dieses Feld fehlt, verwendet das Tool den aktuellen Schemaeigentümer.
    • table_name: Der Name der Tabelle im Datenbanklink. Dieses Feld ist ein Pflichtfeld.
    • db_link: Der Name des Datenbanklinks. Dieses Feld ist ein Pflichtfeld.
    • target_table_name: Der Name der Zieltabelle. Wenn dieses Feld fehlt, verwendet das Tool den Namen der Quelltabelle.
  • consumer_group: Die Nutzungsgruppe. Der Standardwert ist "LOW".

Beispiel

In diesem Beispiel können Sie eine Tabelle basierend auf der Tabelle im Datenbanklink erstellen:

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'}
]

Cloud Storage Link-Vorgänge

Cloud Storage Link-Funktionen stellen die Syntax und Beschreibungen der Klassen, Methoden, Attribute und Parameter der Anwendungsprogrammierschnittstelle für das Cloud Storage Link-Tool der Data Studio-Toolsuite bereit.

Mit diesen Methoden können Sie Zugangsdaten und Cloud Storage Link verwalten und Cloud-Objekte in Tabellen oder externe Tabellen des aktuellen Schemas importieren.

Prozedur "Liste der Zugangsdaten abrufen"

Liste der verfügbaren Zugangsdaten zurückgeben

Ingest.get_credential_list()

Die obige Funktion gibt eine Liste der Zugangsdaten zurück.

Beispiel

In diesem Beispiel können Sie alle Zugangsdaten abrufen:

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\": \"\"}"
    },
    ...
    ]
}

Zugangsdaten erstellen - Vorgehensweise

Erstellen Sie einfache Zugangsdaten. Für Microsoft Azure Cloud-Verwendung ist ein Kontoname, und Passwort ist ein Zugriffsschlüssel, für Amazon-Benutzer ist eine Zugriffsschlüssel-ID, und Passwort ist geheimer Zugriffsschlüssel, für Google-Benutzer ist HMAC-Zugriffsschlüssel, und Passwort ist HMAC-Zugriffsgeheimnis.

Syntax

Ingest.create_credential(credential_name, user, password)

Parameter:

  • credential_name: Der Name der neuen Zugangsdaten
  • user and password depend on Cloud system: For Microsoft Azure cloud user is an account name, and password is an access key, for Amazon user is an access key ID, and password is secret access key, for Google user is HMAC access key, and password is HMAC access secret.

Beispiel

In diesem Beispiel können Sie Zugangsdaten mit dem angegebenen Benutzer und Kennwort erstellen:

adp.Ingest.create_credential('TEST", 'ADMIN', 'PASSWORD')

OCID-Zugangsdaten erstellen - Prozedur

Zugangsdaten mit OCI-Signaturschlüsseln erstellen

Syntax

Ingest.create_ocid_credential(credential_name, user_ocid, tenancy_ocid,
                          private_key, fingerprint)

Diese Funktion erstellt Zugangsdaten mit OCI-Signaturschlüsseln.

Parameter:

  • credential_name: Der Name der Zugangsdaten.
  • user_ocid: Die OCID des Benutzers.
  • tenancy_ocid: Die OCID des Mandanten.
  • private_key: Der Private Key im RSA-Schlüsselpaar. Der Private Key erstreckt sich über mehrere Zeilen. Ersetzen Sie alle Zeilenvorschubzeichen durch das Leerzeichen, und verwenden Sie den resultierenden Schlüssel.
  • Fingerprint: Der Fingerprint für das RSA-Schlüsselpaar, mit dem Sie auf OCI zugreifen.

Beispiel

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')

Prozedur zum Löschen von Zugangsdaten

Löschen Sie Zugangsdaten mit dem angegebenen Namen.

Ingest.drop_credential(credential_name)

Parameter:

  • credential_name: Der Name der Zugangsdaten.

Beispiel

In diesem Beispiel können Sie Zugangsdaten mit dem Namen "TEST" löschen:

adp.Ingest.drop_credential('TEST')

Listenprozedur für Cloud-Speicher-Links abrufen

Syntax

Ingest.get_cloud_storage_link_list(owner)

Parameter:

  • Eigentümer: In diesem Feld wird der Eigentümer des Datenbanklinks angezeigt. Wenn dieses Feld fehlt, verwendet das Tool den aktuellen Schemaeigentümer.

Beispiel

In diesem Beispiel können Sie die Liste der Cloud Storage-Links anzeigen:

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"
      }
    },
    ...
    ]
}

Prozedur "Cloud-Speicherlink erstellen"

Linkprozedur für Cloud-Speicher basierend auf Cloud-Speicher-URI und Zugangsdaten erstellen. Zugangsdaten können übersprungen werden, wenn der Speicherlink ein öffentlicher Bucket ist.

Syntax

Ingest.create_cloud_storage_link(storage_link_name, uri, credential_name,
                          description)

Parameter:

  • storage_link_name: Der Name für den Cloud-Speicherlink. Dieses Feld ist ein Pflichtfeld.
  • URI: Der URL-Pfad (URI) mit Ausnahme des Dateinamens. Dieses Feld ist ein Pflichtfeld.
  • credential_name: Der Zugangsdatenname muss den Benennungskonventionen für Oracle-Objekte entsprechen.
  • Beschreibung: Eine Beschreibung für den Link. Wenn eine Beschreibung fehlt, verwendet das Tool stattdessen storage_link_name.

Beispiel

In diesem Beispiel können Sie den Cloud-Speicherlink mit dem Namen "TEST" erstellen

Ingest.create_cloud_storage_link('TEST', 'https://.../test-bucket/o/', None, 'OCI Storage Link')

Cloud-Speicherlink löschen - Vorgehensweise

Cloud-Speicherlink basierend auf dem Namen des Speicherlinks löschen.

Ingest.drop_cloud_storage_link(storage_link_name)

Parameter:

  • storage_link_name: Der Name für den Cloud-Speicherlink.

Beispiel

In diesem Beispiel können Sie den Cloud-Speicherlink mit dem Namen "TEST" löschen

Ingest.drop_cloud_storage_link('TEST')

Cloud Storage-Objekte abrufen - Vorgehensweise

Rufen Sie die Liste der Objekte in Cloud Storage Link ab.

Syntax

Ingest.get_cloud_objects(storage_link,owner)

Diese Funktion gibt die Liste der Objekte im Cloud-Speicherlink zurück.

Parameter:

  • storage_link: Der Name für den Cloud-Speicherlink.
  • Eigentümer: In diesem Feld wird der Eigentümer des Datenbanklinks angezeigt. Wenn dieses Feld fehlt, verwendet das Tool den aktuellen Schemaeigentümer.

Beispiel

In diesem Beispiel können Sie Objekte in Cloud Storage Link mit dem Namen "TEST" auflisten

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"
      }
    },...
    ]
}

Gibt die Liste der verfügbaren Nutzungsgruppen zurück.

Cloud-Objekte kopieren - Vorgehensweise

Cloud-Objekte aus dem Cloud Storage-Link in die Tabellen im aktuellen Schema kopieren

Ingest.copy_cloud_objects(objects, consumer_group)

Parameter:

  • Objekte: Array der Tabellenbeschreibung. Jede Beschreibung enthält 4 Felder.
    • storageLink: Der Name des Cloud Storage-Links. Dieses Feld ist ein Pflichtfeld.
    • objectName: Der Name der Datei im Cloud-Speicherlink. Weitere Informationen finden Sie in den Ergebnissen der Methode get_cloud_object im Feld name. Dieses Feld ist ein Pflichtfeld.
    • targetTableName: Der Name der Zieltabelle. Wenn dieses Feld fehlt, verwendet das Tool den Dateinamen als Tabellennamen.
  • consumer_group: Die Nutzungsgruppe. Der Standardwert ist "LOW".

Beispiel

In diesem Beispiel können Sie eine Tabelle erstellen und Daten aus dem Objekt in Cloud Storage Link laden.

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
  }
]

Cloud-Objekte verknüpfen - Vorgehensweise

Erstellen Sie externe Tabellen basierend auf Cloud-Objekten über den Cloud Storage-Link.

Ingest.link_cloud_objects(objects, consumer_group)

Parameter:

  • Objekte: Array der Tabellenbeschreibung. Jede Beschreibung enthält 4 Felder.
    • storageLink: Der Name des Cloud Storage-Links. Dieses Feld ist ein Pflichtfeld.
    • objectName: Der Name der Datei im Cloud-Speicherlink. Siehe Feld Name in den Ergebnissen der Methode get_cloud_object. Dieses Feld ist ein Pflichtfeld.
    • targetTableName: Der Name der Zieltabelle. Wenn dieses Feld fehlt, verwendet das Tool den Dateinamen als Tabellennamen.
  • consumer_group: Die Nutzungsgruppe. Der Standardwert ist "LOW".

Beispiel

In diesem Beispiel können Sie eine externe Tabelle aus dem angegebenen Objekt in Cloud Storage Link erstellen.
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
  }
]

Tabelle aus json-Datenprozedur erstellen

Ingest.load_data(tables)

Parameter:

  • Tabellen ist die Liste der Wörterbücher mit den folgenden Feldern:
    • Inhalt: Ist der Inhalt von Daten, es ist ein Dictionary mit Schlüssel als Spaltenname und Werten als Werteliste der Spalte.
    • targetTableName: Der Name einer Tabelle.

Beispiel

In diesem Beispiel können Sie eine Tabelle erstellen und mit Daten aus dem Inhalt füllen:
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}]