JSON-Datei mit zeilengetrennten Dokumenten in eine Collection laden

Um Daten aus Collections in der Cloud zu laden, müssen Sie zuerst Ihre Objektspeicherzugangsdaten in Autonomous Database speichern und dann die Prozedur DBMS_CLOUD.COPY_COLLECTION verwenden, um Dokumente in eine Collection zu 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 Sammlung in Ihrer Datenbank geladen.

Hier sehen 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>
  • JSON-Datei in den Objektspeicher-Bucket kopieren 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"

Laden Sie die JSON-Datei wie folgt aus dem Objektspeicher in eine Collection namens fruit in der Datenbank:

  1. Speichern Sie die Zugangsdaten für den Objektspeicher 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 zum Laden aller Dokumente verwenden.

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

    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 ordnungsgemäß 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;
    /
    

    Die Parameter sind:

    • collection_name: ist der Name der Zielerfassung.

    • credential_name: Der Name der Zugangsdaten, die im vorherigen Schritt erstellt wurden. Der Parameter credential_name muss den Benennungskonventionen von Oracle-Objekten 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 zur Beschreibung des Formats der Quelldatei angegeben werden können. 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 Object Storage-Namespaces und Überblick über Object Storage.

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

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