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 der autonomen KI-Datenbank 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.
Nachfolgend ein Beispiel einer solchen 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_bucketin 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:
-
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
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 BefehlSET DEFINE OFFin diesen Tools, wie im Beispiel gezeigt, um das Sonderzeichen zu deaktivieren und die Zugangsdaten ordnungsgemäß zu erstellen. -
Laden Sie die Daten mit der Prozedur
DBMS_CLOUD.COPY_COLLECTIONin 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 Zielsammlung. -
credential_name: Der Name der Zugangsdaten, die im vorherigen Schritt erstellt wurden. Der Parametercredential_namemuss 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 Formatoptionencharacterset, compression, encryption, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, type, unpackarrayswerden 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
formatmit der Optionencryptionangeben. Weitere Informationen zum Entschlüsseln von Daten finden Sie unter Daten beim Importieren aus Object Storage entschlüsseln.Weitere Informationen finden Sie unter Optionen für DBMS_CLOUD-Packageformat.
Dabei ist
namespace-stringder Oracle Cloud Infrastructure-Objektspeicher-Namespace undfruit_bucketder Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces und Überblick über Object Storage.Ausführliche Informationen über die Parameter finden Sie unter Prozedur COPY_COLLECTION.
Die Collection
fruitin Ihrer Datenbank enthält jetzt ein Dokument für jede Zeile in der DateimyCollection.json. -