Consulta de datos particionados híbridos

Si desea consultar datos internos y varios archivos de datos en el almacén de objetos como tabla lógica única, puede utilizar una tabla particionada híbrida para representar los datos como objeto único. Utilice el procedimiento DBMS_CLOUD.CREATE_HYBRID_PART_TABLE para crear una tabla particionada híbrida.

Si los datos, internos o externos, se pueden representar con mayor granularidad como varias particiones lógicas, se recomienda crear una tabla particionada híbrida con varias particiones internas y externas, lo que conserva la partición lógica de los datos para el acceso a las consultas.

Cuando crea una tabla particionada híbrida, incluye una cláusula de partición en la sentencia DBMS_CLOUD.CREATE_HYBRID_PART_TABLE. La cláusula de partición que incluya depende de los archivos de datos y del tipo de partición que utilice. Consulte Creación de Tablas Particionadas Híbridas para obtener más información.

  1. Almacene las credenciales del almacén de objetos mediante el procedimiento DBMS_CLOUD.CREATE_CREDENTIAL.

    Por ejemplo:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL (
        credential_name => 'DEF_CRED_NAME',
        username => 'adb_user@example.com',
        password => 'password' );
    END;
    /
    

    No es necesario crear una credencial para acceder al almacén de objetos de Oracle Cloud Infrastructure si activa las credenciales de entidad de recurso. Consulte Uso de la entidad de recurso para acceder a los Recursos de Oracle Cloud Infrastructure para obtener más información.

    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 crear tablas particionadas híbridas.

    Consulte Procedimiento CREATE_CREDENTIAL para obtener información sobre los parámetros username y password para diferentes servicios de almacenamiento de objetos.

  2. Cree una tabla particionada híbrida encima de los archivos de origen mediante el procedimiento DBMS_CLOUD.CREATE_HYBRID_PART_TABLE.

    El procedimiento DBMS_CLOUD.CREATE_HYBRID_PART_TABLE admite archivos particionados externos en los servicios de almacenamiento de objetos en la nube soportados. La credencial es una propiedad de nivel de tabla; los archivos externos deben estar en el mismo almacén de objetos.

    Por ejemplo:

    BEGIN
      DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
          table_name =>'HPT1',  
          credential_name =>'DEF_CRED_NAME',  
          format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),  
          column_list => 'col1 number, col2 number, col3 number',
          partitioning_clause => 'partition by range (col1)
               (partition p1 values less than (1000) external location
                  ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_11.txt'') ,
                partition p2 values less than (2000) external location
                  ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file_21.txt'') ,
                partition p3 values less than (3000) )'
         );
    END;
    /
    

    Los parámetros son:

    • table_name: es el nombre de tabla particionada híbrida.

    • credential_name: es el nombre de la credencial creada en el paso anterior.

    • partitioning_clause: es la cláusula de partición completa, incluida la información de ubicación de las particiones individuales.

    • format: define las opciones que puede especificar para describir el formato del archivo de origen.

      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 Descifrar datos al importar desde Object Storage para obtener más información sobre el descifrado de datos.

    • column_list: es una lista delimitada por comas de las definiciones de columna en los archivos de origen.

    En este ejemplo, namespace-string es el espacio Oracle Cloud Infrastructure Object Storage Namepace, y bucketname es el nombre del cubo. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.

    Ahora puede ejecutar consultas en la tabla particionada híbrida que ha creado en el paso anterior. Su instancia de Autonomous Database aprovecha la información de partición de la tabla particionada híbrida, lo que garantiza que la consulta solo acceda a los archivos de datos relevantes del almacén de objetos. Por ejemplo, la siguiente consulta solo lee archivos de datos de la partición P1:

    SELECT * FROM hpt1 WHERE col1 < 750;

    Las tablas particionadas híbridas que cree con DBMS_CLOUD.CREATE_HYBRID_PART_TABLE incluyen dos columnas invisibles file$path y file$name. Estas columnas ayudan a identificar de qué archivo procede un registro. Consulte Columnas de Metadatos de Tabla Externa para obtener más información.

    Si hay filas en los archivos de origen que no coincidan con las opciones de formato que ha especificado, la consulta informa de un error. Puede utilizar parámetros DBMS_CLOUD, como rejectlimit, para suprimir estos errores. Como alternativa, también puede validar la tabla particionada híbrida que ha creado para ver los mensajes de error y las filas rechazadas de modo que pueda cambiar la opción de formato según corresponda. Consulte Validación de datos externos y Validación de datos particionados híbridos para más información.

    Consulte la información detallada sobre los parámetros en el procedimiento CREATE_HYBRID_PART_TABLE.

    Consulte DBMS_CLOUD URI Formats para obtener más información sobre los servicios de almacenamiento de objetos en la nube soportados.