Consultar tablas de Apache Iceberg

Autonomous AI Database admite la consulta de tablas de Apache Iceberg.

Acerca de la Consulta de Tablas Apache Iceberg

Autonomous AI Database admite la consulta de tablas de Apache Iceberg.

Configuraciones Soportadas

A continuación, se muestra la matriz de compatibilidad de la configuración soportada:

Catálogo Almacenes de objetos Autenticación de catálogo (REST) Autenticación de almacenamiento Notas
Unity (Databricks) Amazon S3, Azure ADLS Gen2 Principal de servicio OAuth2 (/oidc/v1/token) - recomendado; PAT - pruebas rápidas clave de acceso/secreto S3; clave SAS de ADLS Gen2
  • Se requiere UniForm (Delta a Iceberg legible). Iceberg nativo a través de Iceberg REST aún no respaldado por nuestra integración; utilice Delta+UniForm a través de …/api/2.1/unity-catalog/iceberg;

  • La venta de credenciales del almacén de objetos no está soportada.
Polaris (copo de nieve) Amazon S3, Azure ADLS Gen2 OAuth2 (credenciales de cliente) o token admitido por Polaris clave de acceso/secreto S3; clave SAS de ADLS Gen2 La venta de credenciales del almacén de objetos no está soportada.
AWS Glue Amazon S3 N/A (utiliza la autenticación de la cuenta de AWS) S3 clave de acceso/secreto; La venta de credenciales del almacén de objetos no está soportada. Se deben utilizar las mismas credenciales para S3 y Glue. S3 y Glue deben estar en la misma región de AWS.
Metadatos JSON (opción no incluida en el catálogo) Amazon S3, Azure ADLS Gen2, OCI Object Store N/A (sin REST) clave de acceso/secreto S3; clave SAS Gen2 de ADLS, credenciales nativas de OCI Apunte ADB al archivo metadata.json de la tabla (manifiesto raíz). Instantánea puntual; vuelva a crear la tabla externa después del cambio de esquema o la nueva instantánea.
Hadoop (no catálogo) OCI Object Storage N/A (sin REST) Credenciales nativas en OCI Apunta a una carpeta de lakehouse que contiene archivos de datos y metadatos.

Restricciones de Consulta de Tablas Apache Iceberg

En este capítulo se enumeran las restricciones de consulta de tablas de Apache Iceberg.

Catálogos e interoperabilidad
  • Iceberg nativo de Unity (REST): no soportado.

    Solución alternativa: utilice Delta + UniForm para publicar una vista legible para Iceberg mediante el punto final REST de Iceberg de Unity Catalog.

  • Catálogos de REST certificados: ADB está certificado con Snowflake Polaris y Databricks Unity Catalog (solo UniForm) para acceso de lectura a Iceberg.
Autenticación y credenciales:
  • vending de credenciales de catálogo: no soportado.

    La venta basada en roles nativa de la nube, como la suposición automática de roles o las credenciales temporales emitidas por STS, no se admite. Utilice claves de acceso/secreto explícitas o tokens estáticos.)

  • Credenciales de AWS ARN: no admitidas. No se aceptan ARN de rol de IAM y AssumeRole mediante ARN.
Semántica de tabla y DML
  • Las tablas de iceberg particionadas no se admiten; solo se permiten tablas no particionadas.
  • Actualizaciones de nivel de fila (fusión en lectura): no admitidas. Si los metadatos de Iceberg hacen referencia a archivos de supresión, las consultas fallarán.
Evolución del esquema y los metadatos
  • El esquema de una tabla externa fija se determina en la creación y debe alinearse con la versión del esquema Iceberg en los metadatos. Si se actualiza el esquema Iceberg, se debe volver a crear la tabla externa.
Instantáneas y viaje en el tiempo
  • Sin viaje en tiempo de consulta: la consulta por instantánea, versión o registro de hora no está soportada.
  • Solo Non_catalog: las nuevas instantáneas no se seleccionan automáticamente. Para leer una instantánea específica, el destino de esa instantánea es metadata.json y volver a crear la tabla externa.
AWS Glue
  • Alineación de credenciales: se deben utilizar las mismas credenciales para AWS S3 y AWS Glue.
  • Coubicación de región: los cubos S3 y el catálogo de AWS Glue deben estar en la misma región de AWS.

Conceptos relacionados con la consulta de tablas Iceberg de Apache

Es útil comprender los siguientes conceptos para consultar tablas de Apache Iceberg.

Catálogo de Iceberg

El catálogo Iceberg es un servicio que gestiona los metadatos de la tabla, como las instantáneas de la tabla, el esquema de la tabla y la información de partición. Para consultar la última instantánea de una tabla Iceberg, los motores de consulta primero deben acceder al catálogo y obtener la ubicación del archivo de metadatos más reciente. Ya hay una serie de implementaciones de catálogos disponibles, incluidas AWS Glue, Hive, Nessie y Hadoop. Autonomous AI Database admite el catálogo de AWS Glue y la implementación HadoopCatalog que utiliza Spark.

Para obtener más información, consulte Concurrencia optimista.

Archivos de metadatos

El archivo de metadatos es un documento JSON que realiza un seguimiento de las instantáneas de la tabla, el esquema de partición y la información del esquema. El archivo de metadatos es el punto de entrada a una jerarquía de listas de manifiestos y archivos de manifiesto. Los manifiestos realizan un seguimiento de los archivos de datos de la tabla junto con información que incluye estadísticas de particiones y columnas. Consulte la Especificación de tabla de Iceberg para obtener más información.

Transacciones

Iceberg admite actualizaciones a nivel de fila en las tablas mediante la función de copia en escritura o fusión en lectura. La función de copia en escritura genera nuevos archivos de datos que reflejan las filas actualizadas, mientras que la función de fusión en lectura genera nuevos "archivos de supresión" que se deben fusionar con los archivos de datos durante la lectura. Oracle soporta la copia en escritura. Las consultas sobre tablas de iceberg fallan si encuentran un archivo de eliminación. Para obtener más información, consulte RowLevelOperationMode.

Evolución del Esquema

Iceberg apoya la evolución del esquema. Los cambios de esquema se reflejan en los metadatos de Iceberg mediante un ID de esquema. Tenga en cuenta que las tablas externas de Oracle tienen un esquema fijo, determinado por la versión de esquema más actual en el momento de la creación de la tabla. Las consultas de Iceberg fallan cuando los metadatos consultados apuntan a una versión de esquema diferente a la utilizada en el momento de la creación de la tabla. Para obtener más información, consulte Evolución del esquema.

Partición

Iceberg admite opciones avanzadas de partición, como la partición oculta y la evolución de la partición, que se basan en el procesamiento/modificación de los metadatos de la tabla sin costosos cambios en el diseño de los datos.

Credenciales para Iceberg: catálogo REST frente a almacén de objetos

En este tema se explica cómo Apache Iceberg gestiona y accede a los datos a través de las dos credenciales: Catálogo REST y Object Store. También puede consultar dos formas diferentes de gestionar la información de la tabla en formatos de tabla de lago de datos como Apache Iceberg.

Tablas externas gestionadas por catálogo frente a tablas externas de metadatos directos

En la siguiente sección se comparan las tablas externas gestionadas por catálogos con las tablas externas de metadatos directos que resaltan sus diferencias clave.

  • Gestionado por catálogo (Unity / Polaris / AWS Glue)

    Qué es: los metadatos, el esquema y la instantánea "actual" se resuelven mediante un catálogo REST.

    Comportamiento: refleja automáticamente la última instantánea del catálogo, los permisos, las etiquetas y el linaje centralizados.

    Mejor opción para: productos de datos empresariales, uso compartido entre motores, gobernanza coherente y capacidad de detección (el catálogo es el único punto de verdad).

    • Direct-Metadata (sistema de archivos mediante metadata.json)

      Qué es: la tabla externa apunta directamente a un metadata.json específico.

      Comportamiento: instantánea fija y reproducible; sin avances automáticos; gobernanza limitada a las ACL del almacén de objetos.

      Mejor para: experimentos, pruebas y auditorías.

Credenciales de REST frente a Almacén de Objetos

Credenciales de catálogo de REST

Se necesitan credenciales REST al conectarse a un catálogo REST de Apache Iceberg. El catálogo REST gestiona los metadatos de las tablas Iceberg exponiendo los puntos finales RESTful. Para autenticarse, las credenciales REST suelen estar basadas en OAuth, lo que requiere obtener un token de portador de un punto final de token mediante client ID y secret.

Al utilizar un catálogo REST Iceberg, se necesitan dos credenciales:
  • rest_auth_cred: se autentica con el servicio de catálogo (por ejemplo, Unity o Polaris).

  • credential_name: se autentica en el almacén de objetos donde residen los datos y metadatos de Iceberg.
Nota

Las credenciales de venta no están soportadas en este momento. Las credenciales de venta se refieren al proceso controlado de distribución o recuperación de credenciales de acceso (como nombres de usuario y contraseñas, claves de API o tokens) cuando son necesarias, a menudo de forma automática o bajo demanda, en lugar de almacenarlas estáticamente en archivos de configuración o scripts.

Credenciales de Almacén de Objetos

Las credenciales del almacén de objetos se utilizan cuando las tablas de Apache Iceberg se almacenan directamente en el almacenamiento de objetos en la nube, como Oracle Cloud Infrastructure (OCI) Object Storage o Amazon S3.

Las credenciales permiten a la base de datos de IA autónoma acceder y leer archivos (como manifiestos de metadatos y datos de Parquet) directamente desde el almacén de objetos en la nube.

Nota

Utilice las credenciales del almacén de objetos al definir tablas externas que apuntan directamente a los archivos de Parquet/metadatos en cubos OCI/S3.

Flujo de trabajo típico de consulta de tablas Iceberg de Apache

Antes de comenzar a consultar tablas Apache Iceberg, debe estar familiarizado con su flujo de trabajo. En este apartado se explica cómo definir tablas externas para acceder a los datos presentados como un flujo de trabajo de configuración integral con cinco pasos principales.

  1. Decida el modelo de acceso:
    • Gestionado por catálogo: utilice este modelo cuando desee que un catálogo controlado y actualizado continuamente sirva como única fuente de datos para los metadatos de datos. Este catálogo central ayuda a mantener la consistencia y la gobernanza de los datos.
    • Direct-Metadata: utilice este modelo cuando trabaje con una instantánea fija de metadatos (mediante metadata.json). Este modelo es más sencillo pero estático, no se recomienda para la producción, ya que carece de actualizaciones automáticas y gobernanza.
  2. Recopilación de lo que necesita:
    • Gestionado por catálogo: debe tener acceso al punto final del catálogo (si corresponde), a la ruta de la tabla exacta y a la ubicación del almacén de objetos en la que residen los archivos de datos reales.
    • Direct-Metadata: solo necesita el URI que apunta al archivo raíz metadata.json más la ubicación del almacén de objetos de estos archivos de datos.
  3. Preparar credenciales:
    • Para las configuraciones gestionadas por catálogo, adquiera credenciales para acceder al catálogo.
    • Las credenciales del almacén de objetos siempre son necesarias independientemente del modelo para leer tanto los archivos de datos como los de metadatos.
      Nota

      La venta automatizada de credenciales y AWS AssumeRole para el acceso al catálogo no están soportadas.
  4. Creación de la tabla externa:
    • En Gestionada por catálogo, la tabla consulta los datos a través del catálogo y accede a los archivos del almacén de objetos.
    • En Direct-Metadata, la tabla apunta directamente al archivo metadata.json específico sin la participación del catálogo.
  5. Comprobación y expectativas rápidas:

    Ejecute una consulta simple, como COUNT(*), para verificar la configuración de la tabla y asegurarse de que puede acceder a los datos correctamente.

Inicios rápidos de proveedor

En este capítulo, se describe el proceso para configurar el acceso a datos externos con diferentes proveedores de datos en la nube.

Temas:

Catálogo de Databricks Unity

En esta sección se explica el flujo de trabajo que vincula Databricks con formatos de tabla abierta a través de UniForm, lo que facilita el acceso a los datos de Delta Lake en entornos que admiten Iceberg.

Catálogo de Databricks Unity (ruta UniForm)

Requisitos:
  • Una tabla Delta creada con UniForm para que los clientes de Iceberg puedan leerla.
  • Archivos de tabla en Azure ADLS Gen2 o AWS S3.
  • Privilegios de Unity Catalog para acceso externo (por ejemplo, acceso a datos externos activado); otorgue EXTERNAL USE SCHEMA a su principal.
  • Autenticación: OAuth2 (recomendado) o token de acceso personal (para pruebas rápidas).
Nota

Iceberg nativo a través de Iceberg REST no es compatible con nuestra integración todavía. Utilice Delta con UniForm (lectura de Iceberg) y extráigalo mediante Unity Iceberg REST: https://<workspace-host>/api/2.1/unity-catalog/iceberg.

Cree una tabla UniForm (lectura de Iceberg) en Databricks:

El siguiente procedimiento crea una tabla UniForm (lectura de Iceberg) denominada customers_iceberg en Databricks dentro del catálogo y el esquema especificados de Unity Catalog:
USE CATALOG <your_catalog>;
USE SCHEMA  <your_schema>;

CREATE TABLE customers_iceberg (
  id   INT,
  name STRING
)
TBLPROPERTIES(
  'delta.columnMapping.mode'='name',
  'delta.enableIcebergCompatV2'='true',
  'delta.universalFormat.enabledFormats'='iceberg'
);

INSERT INTO customers_iceberg (id, name) VALUES
  (1,'Alice'), (2,'Bob'), (3,'Carol');

Credencial de almacén de objetos (ADLS Gen2)

En el siguiente procedimiento, se configuran las credenciales para el acceso al almacén de objetos (Azure Data Lake Storage Gen2) mediante claves de cuenta de almacenamiento o tokens SAS para un acceso seguro al almacenamiento en la nube externo.
BEGIN
  BEGIN DBMS_CLOUD.DROP_CREDENTIAL('AZURE_BLOB_CRED'); EXCEPTION WHEN OTHERS THEN NULL; END;
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'AZURE_BLOB_CRED',
    username        => '<storage-account-or-sas-username>',
    password        => '<storage-key-or-sas-token>'
  );
END;
/

Crear credenciales de catálogo de REST con OAuth2

El siguiente procedimiento configura las credenciales OAuth2 para la autenticación segura mediante un principal de servicio de Databricks (ID de cliente y secreto):
-- Databricks service principal (client_id / client_secret)
BEGIN
  BEGIN DBMS_CLOUD.DROP_CREDENTIAL('UNITY_OAUTH'); EXCEPTION WHEN OTHERS THEN NULL; END;
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'UNITY_OAUTH',
    username        => '<client_id>',
    password        => '<client_secret>'
  );
END;
/

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
    table_name      => 'CUSTOMERS_ICEBERG',
    credential_name => 'AZURE_BLOB_CRED',
    format          => '{
      "access_protocol": {
        "protocol_type": "iceberg-rest",
        "protocol_config": {
          "iceberg_catalog_type": "unity",
          "rest_catalog_endpoint": "https://<workspace-host>/api/2.1/unity-catalog/iceberg",
          "rest_authentication": {
            "rest_auth_cred": "UNITY_OAUTH",
            "rest_auth_endpoint": "https://<workspace-host>/oidc/v1/token"
          },
          "table_path": ["<your_catalog>","<your_schema>","customers_iceberg"]
        }
      }
    }'
  );
END;
/
SELECT COUNT(*) FROM CUSTOMERS_ICEBERG;

Crear credenciales de catálogo de REST con token de acceso personal (PAT)

Este procedimiento muestra cómo utilizar un PAT para pruebas rápidas mediante la creación de una credencial PAT y la creación de la tabla externa mediante ella.
BEGIN
  BEGIN DBMS_CLOUD.DROP_CREDENTIAL('UNITY_PAT'); EXCEPTION WHEN OTHERS THEN NULL; END;
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'UNITY_PAT',
    username        => 'token',
    password        => '<dapiXXXXXXXXXXXXXXXXXXXXXXXX>'
  );
END;
/

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
    table_name      => 'CUSTOMERS_ICEBERG',
    credential_name => 'AZURE_BLOB_CRED',
    format          => '{
      "access_protocol": {
        "protocol_type": "iceberg-rest",
        "protocol_config": {
          "iceberg_catalog_type": "unity",
          "rest_catalog_endpoint": "https://<workspace-host>/api/2.1/unity-catalog/iceberg",
          "rest_authentication": { "rest_auth_cred": "UNITY_PAT" },
          "table_path": ["<your_catalog>","<your_schema>","customers_iceberg"]
        }
      }
    }'
  );
END;
/
SELECT COUNT(*) FROM CUSTOMERS_ICEBERG;

Snowflake Polaris

En este tema se describe Snowflake Polaris (catálogo REST) que permite el acceso seguro a las tablas de Apache Polaris Iceberg a través de una API REST mediante la autenticación OAuth2.

Snowflake Polaris (catálogo REST)

Requisitos:
  • El catálogo y el punto final de Polaris Iceberg están disponibles para su cuenta.
  • Archivos de tabla accesibles en el almacén de objetos (S3/ADLS, según corresponda).
  • Auth: se recomienda OAuth2 (credenciales de cliente) u otro mecanismo de token admitido por Polaris.

Cree una credencial OAuth2:

El siguiente procedimiento crea una credencial OAuth2 con el nombre POLARIS_OAUTH para autenticar el acceso a un catálogo de Apache Polaris Iceberg.

BEGIN
  BEGIN DBMS_CLOUD.DROP_CREDENTIAL('POLARIS_OAUTH'); EXCEPTION WHEN OTHERS THEN NULL; END;
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'POLARIS_OAUTH',
    username        => '<client_id>',
    password        => '<client_secret>'
  );
END;
/

Crear Credencial de Almacenamiento

El siguiente procedimiento crea una credencial de almacenamiento denominada S3_CRED para acceder al almacenamiento de objetos (por ejemplo, Amazon S3) con un ID de clave de acceso de AWS y una clave de acceso secreta.

-- Storage credential for your object store (example: S3)
BEGIN
  BEGIN DBMS_CLOUD.DROP_CREDENTIAL('S3_CRED'); EXCEPTION WHEN OTHERS THEN NULL; END;
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'S3_CRED',
    username        => '<aws_access_key_id>',
    password        => '<aws_secret_access_key>'
  );
END;
/

Crear tabla externa

El siguiente procedimiento define una tabla externa denominada SALES_POLARIS en Databricks que accede a los datos almacenados mediante el formato Iceberg gestionado por el catálogo Polaris.
BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
    table_name      => 'SALES_POLARIS',
    credential_name => 'S3_CRED',
    format          => '{
      "access_protocol": {
        "protocol_type": "iceberg-rest",
        "protocol_config": {
          "iceberg_catalog_type": "polaris",
          "rest_catalog_endpoint": "<https://<your-polaris-endpoint>/...>",
          "rest_authentication": {
            "rest_auth_cred": "POLARIS_OAUTH",
            "rest_auth_endpoint": "<https://<your-oauth-token-endpoint>>"
          },
          "table_path": ["<db>","<schema>","<table>"]
        }
      }
    }'
  );
END;
/

Comprobación rápida de funcionalidad

El siguiente procedimiento ejecuta una consulta para verificar que la tabla externa esté correctamente configurada y accesible.
SELECT COUNT(*) FROM SALES_POLARIS;
Nota

Mantenga los marcadores de posición de punto final y URL de token, ya que varían según la configuración de Polaris.

Catálogo de AWS Glue

En este tema se describe cómo acceder a los datos de Amazon S3 a través del catálogo de datos de pegamento con tablas Iceberg registradas mediante credenciales de AWS.

Requisitos:
  • Catálogo de datos de pegamento con la tabla Iceberg registrada (se puede acceder a objetos S3).

    Nombre de la región de Glue (por ejemplo, us-east-1).

  • Autenticación: acceda a clave/secreto para S3; pegue el acceso mediante la configuración del catálogo.

  • La venta de credenciales a través de AWS ARN no está soportada. Se deben proporcionar credenciales explícitas.

Crear una credencial de almacenamiento

El siguiente procedimiento crea una credencial de almacenamiento denominada S3_CRED en Databricks para permitir el acceso a los datos almacenados en un cubo de Amazon S3.

-- S3 credential
BEGIN
  BEGIN DBMS_CLOUD.DROP_CREDENTIAL('S3_CRED'); EXCEPTION WHEN OTHERS THEN NULL; END;
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'S3_CRED',
    username        => '<aws_access_key_id>',
    password        => '<aws_secret_access_key>'
  );
END;
/

Crear una mesa de iceberg externa

Crea una tabla Iceberg externa denominada ORDERS_GLUE en Databricks.
BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
    table_name      => 'ORDERS_GLUE',
    credential_name => 'S3_CRED',
    format          => '{
      "access_protocol": {
        "protocol_type": "iceberg",
        "protocol_config": {
          "iceberg_catalog_type": "aws_glue",
          "iceberg_glue_region": "us-east-1",
          "table_path": ["<database>","<table>"]
        }
      }
    }'
  );
END;
/

Comprobación rápida de funcionalidad

El siguiente procedimiento ejecuta una consulta para contar todas las filas de la tabla externa ORDERS_GLUE, verificando la conexión y la accesibilidad de los datos.
SELECT COUNT(*) FROM ORDERS_GLUE;

Hadoop/Filesystem (archivo de metadatos directos)

En este tema se explica cómo crear una credencial de almacenamiento para acceder al archivo de metadatos de una tabla Iceberg directamente desde almacenes de objetos como ADLS, S3 u OCI. En él se explica la categorización de los tipos de gestión directa de metadatos para tablas Iceberg almacenadas directamente en el sistema de archivos (normalmente sistemas de archivos compatibles con Hadoop) sin utilizar un servicio de catálogo.

Ejemplo: consulta de una tabla Iceberg mediante metadatos JSON

Requisitos:
  • Puede acceder al manifiesto raíz de Iceberg de la tabla (metadata.json) en el almacén de objetos (ADLS/S3/OCI).
  • Esta ruta es punto en el tiempo. Para seguir las nuevas instantáneas, vuelva a crear la tabla externa.

Creación de una credencial de almacenamiento

Este procedimiento primero intenta borrar una credencial existente denominada STORE_CRED si existe (ignorando cualquier error). A continuación, crea una nueva credencial denominada STORE_CRED.

-- Storage credential for wherever the metadata.json lives
BEGIN
  BEGIN DBMS_CLOUD.DROP_CREDENTIAL('STORE_CRED'); EXCEPTION WHEN OTHERS THEN NULL; END;
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'STORE_CRED',
    username        => '<user-or-key>',
    password        => '<secret-or-token>'
  );
END;
/

Crear una tabla externa

Crea una tabla externa denominada CUSTOMERS_META.
BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
    table_name      => 'CUSTOMERS_META',
    credential_name => 'STORE_CRED',
    file_uri_list   => 'https://<bucket-or-container>/<path>/metadata.json',
    format          => '{"access_protocol":{"protocol_type":"iceberg"}}'
  );
END;
/

Comprobación rápida de funcionalidad

El siguiente procedimiento ejecuta una consulta para contar todas las filas de la tabla externa.


SELECT COUNT(*) FROM CUSTOMERS_META;

Ejemplo: consulta de una tabla Iceberg mediante el catálogo de Hadoop en OCI

En este ejemplo, consultamos la tabla Iceberg db.icebergTablePy, creada mediante OCI Data Flow, donde Spark utiliza la implantación HadoopCatalog para el catálogo Iceberg. HadoopCatalog utiliza una carpeta de lakehouse iceberg en el cubo my-iceberg-bucket y coloca los metadatos de Iceberg en una subcarpeta $database_name/$table_name en este directorio. También utiliza un archivo version-hint.text que contiene el número de versión de la versión más reciente del archivo de metadatos.

Cree una tabla externa para la tabla db.icebergTablePy de la siguiente manera:
BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
    table_name       => 'iceberg_parquet_time_dim3',
    credential_name  => 'OCI_CRED',
    format           => '{
      "access_protocol": {
        "protocol_type": "iceberg",
        "protocol_config": {
          "iceberg_catalog_type": "hadoop",
          "iceberg_lakehouse": "https://objectstorage.uk-cardiff-1.oraclecloud.com/n/my-tenancy/b/my-iceberg-bucket/o/iceberg",
          "iceberg_table_path": "db.icebergTablePy"
        }
      }
    }'
  );
END;
/

Referencias