Consultar Tabelas de Iceberg do Apache
O Autonomous AI Database suporta a consulta de tabelas do Apache Iceberg.
- Sobre a Consulta de Tabelas de Iceberg do Apache
O Autonomous AI Database suporta a consulta de tabelas do Apache Iceberg. - Conceitos Relacionados à Consulta de Tabelas de Iceberg do Apache
Uma compreensão dos conceitos a seguir é útil para consultar tabelas do Apache Iceberg. - Credenciais para Iceberg: Catálogo REST x Armazenamento de Objetos
Este tópico explica como o Apache Iceberg gerencia e acessa dados por meio das duas credenciais: Catálogo REST e Armazenamento de Objetos. Você também pode consultar duas maneiras diferentes de gerenciar informações de tabelas em formatos de tabela de data lake, como o Apache Iceberg. - Workflow Típico de Consultar Tabelas de Iceberg do Apache
Antes de começar a consultar Tabelas de Iceberg do Apache, você deve estar familiarizado com seu workflow. Esta seção explica como definir tabelas externas para acessar dados apresentados como um workflow de configuração de ponta a ponta com cinco etapas principais. - Inícios Rápidos do Provedor
Este capítulo descreve o processo de configuração do acesso a dados externos com diferentes provedores de dados na nuvem. - Referências
Esta seção fornece uma lista de referências para links citados neste capítulo:
Tópico principal: Consultar Dados Externos com o Autonomous AI Database
Sobre a Consulta de Tabelas de Iceberg do Apache
O Autonomous AI Database suporta a consulta de tabelas do Apache Iceberg.
Configurações Suportadas
Veja a seguir a matriz de compatibilidade da configuração suportada:
Catálogo | Armazenamento(s) de objetos | Autorização de Catálogo (REST) | Autenticação de armazenamento | Observações |
---|---|---|---|---|
Unidade (Databricks) | Amazon S3, Azure ADLS Gen2 | OAuth2 service principal (/oidc/v1/token) - recomendado; PAT - testes rápidos | Chave de acesso/segredo S3; chave SAS Gen2 do ADLS |
|
Polaris (floco de neve) | Amazon S3, Azure ADLS Gen2 | Token OAuth2 (credenciais do cliente) ou suportado pelo Polaris | Chave de acesso/segredo S3; chave SAS Gen2 do ADLS | O envio de credenciais do armazenamento de objetos não é suportado. |
AWS Glue | Amazon S3 | N/A (usa autorização de conta da AWS) | S3 chave de acesso/segredo; | O envio de credenciais do armazenamento de objetos não é suportado. As mesmas credenciais devem ser usadas para S3 e Colar. S3 e a cola devem estar na mesma região da AWS. |
Metadados JSON (opção não catalogada) | Amazon S3, Azure ADLS Gen2, OCI Object Store | Não Aplicável (sem REST) | Chave de acesso/segredo S3; Chave SAS Gen2 do ADLS, Credenciais Nativas do OCI | Aponte o ADB para o metadata.json da tabela (manifesto raiz). Snapshot pontual; recrie a tabela externa após alteração de esquema ou novo snapshot.
|
Hadoop (não catálogo) | Armazenamento de Objetos do OCI | Não Aplicável (sem REST) | Credenciais nativas do OCI | Aponta para uma pasta do lakehouse que contém arquivos de dados e metadados. |
- Restrições de Consulta de Tabelas de Iceberg do Apache
Este capítulo lista as restrições de consulta de tabelas do Apache Iceberg.
Tópico principal: Consultar Tabelas de Iceberg do Apache
Restrições da Consulta de Tabelas de Iceberg do Apache
Este capítulo lista as restrições de consulta de tabelas do Apache Iceberg.
-
Iceberg nativo da Unity (REST): Não suportado.
Solução alternativa: Use Delta + UniForm para publicar uma view legível por Iceberg por meio do ponto final REST do Iceberg do Unity Catalog.
- Catálogos REST certificados: O ADB é certificado com Snowflake Polaris e Databricks Unity Catalog (somente UniForm) para acesso de leitura ao Iceberg.
-
Vending de credencial do catálogo: Não suportado.
Não há suporte para venda automática baseada em função nativa da nuvem, como suposição automática de função ou credenciais temporárias emitidas pelo STS. Use chaves de acesso/segredo explícitas ou tokens estáticos.)
- Credenciais do AWS ARN: não suportadas. Os ARNs da função do IAM e AssumeRole via ARN não são aceitos.
- Tabelas de Iceberg particionadas não são suportadas; apenas tabelas não particionadas são permitidas.
- Atualizações no nível da linha (intercalação na leitura): Não suportado. Se os metadados do Iceberg referenciarem arquivos de exclusão, as consultas falharão.
- O esquema de uma tabela externa fixa é determinado na criação e deve se alinhar à versão do esquema Iceberg nos metadados. Se o esquema do Iceberg for atualizado, a tabela externa deverá ser recriada.
- Nenhum deslocamento de tempo de consulta: Não há suporte para a consulta por snapshot, versão ou timestamp.
- Non_catalog somente: Novos instantâneos não são selecionados automaticamente. Para ler um instantâneo específico, direcione o instantâneo metadata.json e recrie a tabela externa.
- Alinhamento da credencial: As mesmas credenciais devem ser usadas para o AWS S3 e o AWS Glue.
- Colocalização da região: Os buckets do S3 e o catálogo do AWS Glue devem estar na mesma região da AWS.
Tópico principal: Sobre a Consulta de Tabelas de Iceberg do Apache
Conceitos Relacionados à Consulta de Tabelas de Iceberg do Apache
Uma compreensão dos conceitos a seguir é útil para consultar tabelas do Apache Iceberg.
Catálogo do Iceberg
O catálogo Iceberg é um serviço que gerencia metadados de tabela, como snapshots de tabela, o esquema de tabela e as informações de particionamento. Para consultar o snapshot mais recente de uma tabela Iceberg, os mecanismos de consulta devem primeiro acessar o catálogo e obter a localização do arquivo de metadados mais recente. Já existem várias implementações de catálogo disponíveis, incluindo AWS Glue, Hive, Nessie e Hadoop. O Autonomous AI Database suporta o catálogo do AWS Glue e a implementação do HadoopCatalog usada pelo Spark.
Para obter mais informações, consulte Simultaneidade de Otimização.
Arquivos de Metadados
O arquivo de metadados é um documento JSON que acompanha os snapshots da tabela, o esquema de particionamento e as informações do esquema. O arquivo de metadados é o ponto de entrada para uma hierarquia de listas de manifestos e arquivos de manifesto. Os manifestos rastreiam os arquivos de dados da tabela juntamente com informações, incluindo particionamento e estatísticas de coluna. Consulte a Especificação da Tabela Iceberg para obter mais informações.
Transações
O Iceberg suporta atualizações em nível de linha para tabelas usando cópia na gravação ou mesclagem na leitura. Copy-on-write gera novos arquivos de dados que refletem as linhas atualizadas, enquanto merge-on-read gera novos "delete files" que devem ser mesclados com os arquivos de dados durante a leitura. O sistema Oracle suporta cópia na gravação. As consultas em tabelas iceberg falharão se encontrarem um arquivo de exclusão. Para mais informações, consulte RowLevelOperationMode.
Evolução do Esquema
Iceberg suporta a evolução do esquema. As alterações de esquema são refletidas nos metadados do Iceberg usando um ID de esquema. Observe que as tabelas externas da Oracle têm um esquema fixo, determinado pela versão de esquema mais atual no momento da criação da tabela. As consultas Iceberg falham quando os metadados consultados apontam para uma versão de esquema diferente da usada no momento da criação da tabela. Para obter mais informações, consulte Evolução do Esquema.
Particionamento
O Iceberg suporta opções avançadas de particionamento, como particionamento oculto e evolução de partição, que dependem do processamento/alteração dos metadados da tabela sem alterações de layout de dados dispendiosas.
Tópico principal: Consultar Tabelas de Iceberg do Apache
Credenciais do Iceberg: Catálogo REST versus Armazenamento de Objetos
Este tópico explica como o Apache Iceberg gerencia e acessa dados por meio das duas credenciais: Catálogo REST e Armazenamento de Objetos. Você também pode consultar duas maneiras diferentes de gerenciar informações de tabelas em formatos de tabela de data lake, como o Apache Iceberg.
Tabelas Externas Gerenciadas por Catálogo versus Metadados Diretos
A seção a seguir compara tabelas externas gerenciadas por catálogo com tabelas externas de metadados diretos destacando suas principais diferenças.
-
Gerenciado por catálogo (Unidade / Polaris / AWS Glue)
O que é: Metadados, esquema e snapshot "atual" resolvidos por meio de um catálogo REST.
Comportamento: reflete automaticamente o instantâneo mais recente do catálogo; permissões, tags e linhagem centralizadas.
O melhor para: Produtos de dados empresariais, compartilhamento entre motores, governança consistente e capacidade de descoberta (o catálogo é o único ponto de verdade).
-
-
Metadados Diretos (Filesystem via
metadata.json
)O que é: A tabela externa aponta diretamente para um
metadata.json
específico.Comportamento: um snapshot fixo e reproduzível; sem avanços automáticos; governança limitada a ACLs de armazenamento de objetos.
Melhor para: Experimentos, testes, auditorias.
-
Credenciais do REST versus Armazenamento de Objetos
Credenciais do Catálogo REST
As credenciais REST são obrigatórias ao estabelecer conexão com um catálogo REST do Apache Iceberg. O catálogo REST gerencia metadados para tabelas Iceberg expondo pontos finais RESTful. Para autenticação, as credenciais REST geralmente são baseadas no OAuth, exigindo que você obtenha um token ao portador de um ponto final de token usando um client ID
e um secret
.
-
rest_auth_cred
: autentica com o serviço de catálogo (por exemplo, Unity ou Polaris). credential_name
: autentica-se no armazenamento de objetos no qual residem os dados e metadados do Iceberg.
Credenciais de venda não são suportadas no momento. As credenciais de venda referem-se ao processo controlado de distribuição ou extração de credenciais de acesso (como nomes de usuário e senhas, chaves de API ou tokens) quando são necessárias, geralmente automaticamente ou sob demanda, em vez de armazená-las estaticamente em arquivos de configuração ou scripts.
Credenciais do Serviço Object Store
As credenciais do armazenamento de objetos são usadas quando as tabelas do Apache Iceberg são armazenadas diretamente no armazenamento de objetos na nuvem, como o Oracle Cloud Infrastructure (OCI) Object Storage ou o Amazon S3.
As Credenciais permitem que o Autonomous AI Database acesse e leia arquivos (como dados Parquet e manifestos de metadados) diretamente do armazenamento de objetos na nuvem.
Use credenciais de armazenamento de objetos ao definir tabelas externas que apontam diretamente para arquivos Parquet/metadados nos buckets do OCI/S3.
Tópico principal: Consultar Tabelas de Iceberg do Apache
Workflow Típico da Consulta de Tabelas de Iceberg do Apache
Antes de começar a consultar Tabelas do Apache Iceberg, você deve estar familiarizado com seu fluxo de trabalho. Esta seção explica como definir tabelas externas para acessar dados apresentados como um workflow de configuração de ponta a ponta com cinco etapas principais.
- Decidir Seu Modelo de Acesso:
- Gerenciado por Catálogo: Use esse modelo quando quiser que um catálogo controlado e atualizado continuamente sirva como a única origem da verdade para metadados de dados. Esse catálogo central ajuda a manter a consistência e a governança sobre seus dados.
- Metadados Diretos: Use esse modelo quando trabalhar com um snapshot fixo de metadados (por meio de metadata.json). Este modelo é mais simples, mas estático, não é recomendado para produção, pois não possui atualizações automáticas e governança.
- Reunir o Que Você Precisa:
- Gerenciado por Catálogo: Você deve ter acesso ao ponto final do catálogo (se aplicável), ao caminho exato da tabela e ao local do armazenamento de objetos onde residem os arquivos de dados reais.
- Metadados Diretos: Você só precisa do URI que aponte para o arquivo
metadata.json
raiz mais a localização do armazenamento de objetos desses arquivos de dados.
- Preparar Credenciais:
- Para configurações de Catalog-Managed, adquira credenciais para acessar o catálogo.
- As credenciais do armazenamento de objetos são sempre necessárias, independentemente do modelo para ler arquivos de dados e metadados.
Observação
Não há suporte para venda automática de credenciais e para o AWS AssumeRole para acesso ao catálogo.
- Criar a Tabela Externa:
- Em Gerenciado por Catálogo, a tabela consulta dados por meio do catálogo e acessa arquivos no armazenamento de objetos.
- Em Metadados Diretos, a tabela aponta diretamente para o arquivo
metadata.json
específico sem envolvimento do catálogo.
-
Verificação Rápida e Expectativas:
Execute uma consulta simples, como
COUNT(*)
, para verificar a configuração da tabela e garantir que ela possa acessar os dados corretamente.
Tópico principal: Consultar Tabelas de Iceberg do Apache
Inícios rápidos do profissional de saúde
Este capítulo descreve o processo para configurar o acesso a dados externos com diferentes provedores de dados na nuvem.
Tópicos:
- Catálogo do Databricks Unity
Esta seção explica o workflow que vincula o Databricks a formatos de tabela abertos por meio do UniForm, facilitando o acesso aos dados do Delta Lake em ambientes que suportam Iceberg. - Snowflake Polaris
Este tópico descreve o Snowflake Polaris (catálogo REST) que permite acesso seguro às tabelas Iceberg do Apache Polaris por meio de uma API REST usando a autenticação OAuth2. - Catálogo de Colas AWS
Este tópico descreve como acessar dados do Amazon S3 por meio do Catálogo de Dados de Cola com tabelas de Iceberg registradas usando credenciais AWS. - Hadoop/Filesystem (arquivo de metadados direto)
Este tópico explica como criar uma credencial de armazenamento para acessar o arquivo de metadados de uma tabela Iceberg diretamente de armazenamentos de objetos como ADLS, S3 ou OCI. Ele explica a categorização dos tipos de gerenciamento direto de metadados para tabelas Iceberg armazenadas diretamente no sistema de arquivos (geralmente sistemas de arquivos compatíveis com Hadoop) sem usar um serviço de catálogo.
Tópico principal: Consultar Tabelas de Iceberg do Apache
Catálogo Unity do Databricks
Esta seção explica o workflow que vincula o Databricks a formatos de tabela abertos por meio do UniForm, facilitando o acesso aos dados do Delta Lake em ambientes que suportam Iceberg.
Catálogo Unity do Databricks (caminho UniForm)
- Uma tabela Delta criada com o UniForm para que os clientes Iceberg possam lê-la.
- Arquivos de tabela no Azure ADLS Gen2 ou AWS S3.
- Privilégios do Unity Catalog para acesso externo (por exemplo, acesso a dados externos ativado); conceda
EXTERNAL USE SCHEMA
ao seu principal). - Auth: OAuth2 (recomendado) ou Token de Acesso Pessoal (para testes rápidos).
O Native Iceberg via Iceberg REST ainda não é compatível com nossa integração. Use Delta com UniForm (legível para Iceberg) e exponha-o via Unity Iceberg REST: https://<workspace-host>/api/2.1/unity-catalog/iceberg.
Crie uma tabela UniForm (legível para Iceberg) em Databricks:
customers_iceberg
no Databricks dentro do catálogo e esquema do Unity Catalog especificados: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 do armazenamento de objetos (ADLS Gen2)
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;
/
Criar Credenciais do Catálogo REST com OAuth2
-- 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;
Criar Credenciais do Catálogo REST com PAT (Personal Access Token)
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;
Tópico principal: Inícios Rápidos do Provedor
Snowflake Polaris
Este tópico descreve o Snowflake Polaris (catálogo REST) que permite acesso seguro às tabelas do Apache Polaris Iceberg por meio de uma API REST usando a autenticação OAuth2.
Snowflake Polaris (catálogo REST)
- Catálogo e endpoint da Polaris Iceberg disponíveis para a sua conta.
- Arquivos de tabela acessíveis em seu armazenamento de objetos (S3/ADLS, conforme aplicável).
- Auth: OAuth2 recomendado (credenciais do cliente) ou outro mecanismo de token suportado pelo Polaris.
Criar uma Credencial OAuth2:
O procedimento a seguir cria uma credencial OAuth2 com o nome POLARIS_OAUTH
para autenticar o acesso a um catálogo do 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;
/
Criar Credencial de Armazenamento
O procedimento a seguir cria uma credencial de armazenamento chamada S3_CRED
para acessar o armazenamento de objetos (por exemplo, Amazon S3) com um ID de chave de acesso da AWS e uma chave de acesso 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;
/
Criar Tabela Externa
SALES_POLARIS
no Databricks que acessa dados armazenados usando o formato Iceberg gerenciado pelo 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;
/
Verificação Rápida da Funcionalidade
SELECT COUNT(*) FROM SALES_POLARIS;
Mantenha os placeholders do URL do ponto final e do token, pois eles variam de acordo com a configuração da Polaris.
Tópico principal: Inícios Rápidos do Provedor
Catálogo do AWS Glue
Este tópico descreve como acessar dados do Amazon S3 por meio do Catálogo de Dados de Cola com tabelas de Iceberg registradas usando credenciais da AWS.
-
Catálogo de Dados de Colagem com a tabela Iceberg registrada (objetos S3 acessíveis).
Nome da região para Cola (por exemplo,
us-east-1
). -
Autenticação: Chave/segredo de acesso para S3; Acesso de cola por meio da configuração do catálogo.
- A venda de credenciais por meio do AWS ARN não é suportada. As credenciais explícitas devem ser fornecidas.
Criar uma credencial de armazenamento
O procedimento a seguir cria uma credencial de armazenamento chamada S3_CRED
no Databricks para permitir o acesso aos dados armazenados em um bucket do 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;
/
Criar uma tabela Iceberg externa
ORDERS_GLUE
no 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;
/
Verificação Rápida da Funcionalidade
ORDERS_GLUE
, verificando a conexão e a acessibilidade dos dados.SELECT COUNT(*) FROM ORDERS_GLUE;
Tópico principal: Inícios Rápidos do Provedor
Hadoop/Filesystem (arquivo de metadados direto)
Este tópico explica como criar uma credencial de armazenamento para acessar o arquivo de metadados de uma tabela Iceberg diretamente de armazenamentos de objetos como ADLS, S3 ou OCI. Ele explica a categorização dos tipos de gerenciamento direto de metadados para tabelas Iceberg armazenadas diretamente no sistema de arquivos (geralmente sistemas de arquivos compatíveis com Hadoop) sem usar um serviço de catálogo.
Exemplo: Consultar uma tabela Iceberg usando Metadados JSON
- Você pode acessar o manifesto raiz do Iceberg da tabela (
metadata.json
) no seu armazenamento de objetos (ADLS/S3/OCI). - Esse caminho é point-in-time. Para seguir novos snapshots, recrie a tabela externa.
Criar uma Credencial de Armazenamento
Este procedimento primeiro tenta eliminar uma credencial existente chamada STORE_CRED
se ela existir (ignorando erros). Em seguida, ele cria uma nova credencial chamada 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;
/
Criar uma Tabela Externa
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;
/
Verificação Rápida da Funcionalidade
O procedimento a seguir executa uma consulta para contar todas as linhas na tabela externa.
SELECT COUNT(*) FROM CUSTOMERS_META;
Exemplo: Consultar uma tabela Iceberg usando o Catálogo do Hadoop no OCI
Neste exemplo, consultamos a tabela Iceberg db.icebergTablePy
, criada usando o OCI Data Flow, em que o Spark usa a implementação HadoopCatalog para o catálogo Iceberg. O HadoopCatalog usa uma pasta do lakehouse iceberg
no bucket my-iceberg-bucket
e coloca os metadados do Iceberg em uma subpasta $database_name/$table_name
nesse diretório. Ele também usa um arquivo version-hint.text
que contém o número da versão da versão mais recente do arquivo de metadados.
db.icebergTablePy
da seguinte forma: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;
/
Tópico principal: Inícios Rápidos do Provedor
Referências
Esta seção fornece uma lista de referências para os links citados neste capítulo:
Tópico principal: Consultar Tabelas de Iceberg do Apache