Carga de un archivo JSON de documentos delimitados por líneas en una recopilación

Para cargar datos de recopilaciones en la nube, primero debe almacenar las credenciales de almacenamiento de objetos en Autonomous Database y, a continuación, utilizar el procedimiento DBMS_CLOUD.COPY_COLLECTION para cargar documentos en una recopilación.

En este ejemplo, se cargan los valores JSON de un archivo delimitado por líneas y se utiliza el archivo JSON myCollection.json. Cada valor, cada línea, se carga en una recopilación de la base de datos como un único documento.

Este es un ejemplo de dicho archivo. Tiene tres líneas, con un objeto por línea. Cada uno de esos objetos se carga como un documento JSON independiente.

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

Antes de cargar los datos de myCollection.json en la base de datos, copie el archivo en el almacenamiento de objetos:

  • Cree un cubo en el almacén de objetos. Por ejemplo, cree un cubo de Oracle Cloud Infrastructure Object Storage desde el enlace de Oracle Cloud Infrastructure Object Storage y, a continuación, en el compartimento seleccionado, haga clic en Crear cubo o utilice un comando como el siguiente comando de la CLI de OCI para crear un cubo:

    oci os bucket create --name fruit_bucket -c <compartment id>
  • Copie el archivo JSON en el cubo del almacén de objetos. Por ejemplo, utilice el siguiente comando de la CLI de OCI para copiar el archivo JSON en fruit_bucket de Oracle Cloud Infrastructure Object Storage:

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

Cargue el archivo JSON del almacén de objetos en una recopilación denominada fruit en la base de datos:

  1. Store las credenciales del almacén de objetos mediante el procedimiento DBMS_CLOUD.CREATE_CREDENTIAL, como se muestra en el siguiente ejemplo:
    SET DEFINE OFF
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
        username => 'adb_user@example.com',
        password => 'password'
      );
    END;
    /

    Esta operación almacena las credenciales en la base de datos en un formato cifrado. Puede utilizar cualquier nombre para el nombre de credencial. Tenga en cuenta que este paso solo es necesario una vez, a menos que cambien las credenciales del almacén de objetos. Una vez almacenadas las credenciales, puede utilizar el mismo nombre de credencial para cargar todos los documentos.

    La creación de una credencial para acceder al almacén de objetos de Oracle Cloud Infrastructure no es necesaria si activa las credenciales de la entidad de recurso. Consulte Uso de la principal de recurso para acceder a los recursos de Oracle Cloud Infrastructure para obtener más información.

    Consulte Procedimiento CREATE_CREDENTIAL para obtener información detallada sobre los parámetros.

    Nota

    Algunas herramientas como SQL*Plus y SQL Developer utilizan el carácter de ampersand (&) como carácter especial. Si tiene el carácter de ampersand en la contraseña, utilice el comando SET DEFINE OFF en esas herramientas como se muestra en el ejemplo para desactivar el carácter especial y obtener la credencial creada correctamente.
  2. Load the data into a collection using the procedure DBMS_CLOUD.COPY_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;
    /
    

    Los parámetros son:

    • collection_name: es el nombre de la recopilación de destino.

    • credential_name: es el nombre de la credencial creada en el paso anterior. El parámetro credential_name debe cumplir las convenciones de nomenclatura de objetos de Oracle, que no permiten espacios ni guiones.

    • file_uri_list: es una lista delimitada por comas de los archivos de origen que desea cargar.

    • format: define las opciones que puede especificar para describir el formato del archivo de origen. Están soportadas las opciones de formato characterset, compression, encryption, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, type, unpackarrays al cargar los datos de JSON. Cualquier otro formato especificado producirá un error.

      Si los datos de los archivos de origen están cifrados, descifre los datos especificando el parámetro format con la opción encryption. Consulte Descifrado de datos durante la importación desde Object Storage para obtener más información sobre el descifrado de datos.

      Para obtener más información, consulte DBMS_CLOUD Package Format Options.

    Donde namespace-string es el espacio de nombres de almacenamiento de objetos de Oracle Cloud Infrastructure, y fruit_bucket es el nombre del cubo. Consulte Descripción general de los espacios de nombre de Object Storage y Visión general de Object Storage para obtener más información.

    Para obtener información detallada sobre los parámetros, consulte COPY_COLLECTION Procedure.

    La recopilación de fruit en la base de datos ahora contiene un documento para cada línea del archivo myCollection.json.