JSON-Datei mit zeilengetrennten Dokumenten in eine Collection laden

Zum Laden von Daten aus Collections in der Cloud müssen Sie zuerst Ihre Objektspeicherzugangsdaten in Autonomous Database speichern und dann mit der Prozedur DBMS_CLOUD.COPY_COLLECTION Dokumente in eine Collection laden.

In diesem Beispiel werden JSON-Werte aus einer zeilenbegrenzten Datei geladen und die JSON-Datei myCollection.json verwendet. Jeder Wert, jede Zeile, wird als einzelnes Dokument in eine Collection in der Datenbank geladen.

Im Folgenden finden Sie ein Beispiel für eine solche Datei. Es enthält drei Zeilen mit einem Objekt pro Zeile. Jedes dieser Objekte wird als separates JSON-Dokument geladen.

{ "name" : "apple", "count": 20 }
{ "name" : "orange", "count": 42 }
{ "name" : "pear", "count": 10 }

Bevor Sie die Daten aus myCollection.json in die Datenbank laden, kopieren Sie die Datei in den Objektspeicher:

  • Erstellen Sie einen Bucket im Objektspeicher. Beispiel: Erstellen Sie einen Oracle Cloud Infrastructure Object Storage-Bucket über den Oracle Cloud Infrastructure Object Storage-Link, und klicken Sie dann im ausgewählten Compartment auf Bucket erstellen, oder verwenden Sie einen Befehl wie den folgenden OCI-CLI-Befehl, um einen Bucket zu erstellen:

    oci os bucket create --name fruit_bucket -c <compartment id>
  • Kopieren Sie die JSON-Datei in den Objektspeicher-Bucket. Beispiel: Verwenden Sie den folgenden OCI-CLI-Befehl, um die JSON-Datei in fruit_bucket in Oracle Cloud Infrastructure Object Storage zu kopieren:

    
    oci os object put --bucket-name fruit_bucket \
                      --file "myCollection.json"

So laden Sie die JSON-Datei aus dem Objektspeicher in eine Collection namens fruit in der Datenbank:

  1. Speichern Sie Ihre Objektspeicherzugangsdaten mit der Prozedur DBMS_CLOUD.CREATE_CREDENTIAL, wie im folgenden Beispiel dargestellt.
    SET DEFINE OFF
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
        username => 'adb_user@example.com',
        password => 'password'
      );
    END;
    /

    Dieser Vorgang speichert die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen als Zugangsdatenname verwenden. Beachten Sie, dass dieser Schritt nur einmal erforderlich ist, es sei denn, Ihre Objektspeicherzugangsdaten werden geändert. Nachdem Sie die Zugangsdaten gespeichert haben, können Sie denselben Zugangsdatennamen verwenden, um alle Dokumente zu laden.

    Das Erstellen von Zugangsdaten für den Zugriff auf Oracle Cloud Infrastructure Object Storage ist nicht erforderlich, wenn Sie Ressourcen-Principal-Zugangsdaten aktivieren. Weitere Informationen finden Sie unter Resource Principal für den Zugriff auf Oracle Cloud Infrastructure-Ressourcen verwenden.

    Ausführliche Informationen zu den Parametern finden Sie unter Prozedur CREATE_CREDENTIAL.

    Hinweis

    Einige Tools wie SQL*Plus und SQL Developer verwenden das Et-Zeichen (&) als Sonderzeichen. Wenn das Et-Zeichen in Ihrem Kennwort enthalten ist, verwenden Sie den Befehl SET DEFINE OFF in diesen Tools, wie im Beispiel gezeigt, um das Sonderzeichen zu deaktivieren und die Zugangsdaten korrekt zu erstellen.
  2. Laden Sie die Daten mit der Prozedur DBMS_CLOUD.COPY_COLLECTION in eine Collection.
    
    BEGIN  
     DBMS_CLOUD.COPY_COLLECTION(    
        collection_name => 'fruit',
        credential_name => 'DEF_CRED_NAME',
        file_uri_list   =>
          'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/fruit_bucket/o/myCollection.json',
        format          =>
          JSON_OBJECT('recorddelimiter' value '''\n''')  );
    END;
    /
    

    Parameter:

    • collection_name: Der Name der Zieldatei.

    • credential_name: Der Name der Zugangsdaten, die im vorherigen Schritt erstellt wurden. Der Parameter credential_name muss den Benennungskonventionen für Oracle-Objekte entsprechen. Weitere Informationen finden Sie unter Benennungsregeln für Datenbankobjekte.

    • file_uri_list: Eine kommagetrennte Liste der Quelldateien, die Sie laden möchten.

    • format: Definiert die Optionen, die Sie angeben können, um das Format der Quelldatei zu beschreiben. Die Formatoptionen characterset, compression, encryption, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, type, unpackarrays werden beim Laden von JSON-Daten unterstützt. Alle anderen angegebenen Formate führen zu einem Fehler.

      Wenn die Daten in den Quelldateien verschlüsselt sind, entschlüsseln Sie die Daten, indem Sie den Parameter format mit der Option encryption angeben. Weitere Informationen zum Entschlüsseln von Daten finden Sie unter Daten beim Importieren aus Object Storage entschlüsseln.

      Weitere Informationen finden Sie unter DBMS_CLOUD Packageformatoptionen.

    Dabei ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und fruit_bucket der Bucket-Name. Weitere Informationen finden Sie unter Objektspeicher-Namespaces und Überblick über Objektspeicher.

    Weitere Informationen zu den Parametern finden Sie unter Prozedur COPY_COLLECTION.

    Die Collection fruit in der Datenbank enthält jetzt ein Dokument für jede Zeile in der Datei myCollection.json.