Consultar Dados Externos com o Serviço Data Catalog

O Oracle Cloud Infrastructure Data Catalog é o serviço de gerenciamento de metadados do Oracle Cloud que ajuda você a descobrir dados e oferecer suporte à governança de dados. Ele fornece um inventário de ativos, um glossário de negócios e um metastore comum para data lakes.

O Autonomous Database pode aproveitar esses metadados para simplificar consideravelmente o gerenciamento do acesso ao armazenamento de objetos do seu data lake. Em vez de definir manualmente tabelas externas para acessar seu data lake, use as tabelas externas que são definidas e gerenciadas automaticamente. Essas tabelas serão encontradas em esquemas protegidos pelo Autonomous Database que são mantidos atualizados com as alterações no serviço Data Catalog.

Para obter mais informações sobre o serviço Data Catalog, consulte a documentação do serviço Data Catalog.

Sobre a Consulta com o Serviço Data Catalog

Sincronizando com metadados do serviço Data Catalog, o Autonomous Database cria automaticamente tabelas externas para cada entidade lógica coletada pelo serviço Data Catalog. Essas tabelas externas são definidas em esquemas de banco de dados totalmente gerenciados pelo processo de sincronização de metadados. Os usuários podem consultar dados imediatamente sem precisar derivar manualmente o esquema (colunas e tipos de dados) para origens de dados externas e criar tabelas manualmente.

A sincronização é dinâmica, mantendo o Autonomous Database atualizado em relação às alterações nos dados subjacentes, reduzindo o custo de administração, uma vez que mantém automaticamente centenas ou milhares de tabelas. Também permite que várias instâncias do Autonomous Database compartilhem o mesmo serviço Data Catalog, reduzindo ainda mais os custos de gerenciamento e fornecendo um conjunto comum de definições de negócios.

As pastas/buckets do serviço Data Catalog são contêineres que são sincronizados com esquemas do Autonomous Database. As entidades lógicas nessas pastas/buckets são mapeadas para tabelas externas do Autonomous Database. Esses esquemas e tabelas externas são gerados e mantidos automaticamente por meio do processo de sincronização:

  • Pastas/Buckets são mapeados para esquemas de banco de dados que se destinam apenas a fins organizacionais.
  • A organização deve ser consistente com o data lake e minimizar a confusão ao acessar dados por diferentes caminhos.
  • O serviço Data Catalog é a origem da verdade para as tabelas contidas nos esquemas. As alterações feitas no serviço Data Catalog atualizam as tabelas do esquema durante uma sincronização subsequente.

Para usar esse recurso, um Administrador do Database Data Catalog inicia uma conexão com uma instância do serviço Data Catalog, seleciona quais ativos de dados e entidades lógicas sincronizar e executa a sincronização. O processo de sincronização cria esquemas e tabelas externas com base nos ativos de dados coletados e nas entidades lógicas do serviço Data Catalog selecionados. Assim que as tabelas externas forem criadas, os Analistas de Dados podem começar a consultar seus dados sem precisar derivar manualmente o esquema para origens de dados externas e criar tabelas externas.

Observação

O Pacote DBMS_DCAT está disponível para executar as tarefas necessárias para consultar ativos de dados do armazenamento de objetos do serviço Data Catalog. Consulte DBMS_DCAT Package.

Conceitos Relacionados à Consulta com o Serviço Data Catalog

A compreensão dos conceitos a seguir é necessária para consultas com o serviço Data Catalog.

Data Catalog

O serviço Data Catalog coleta ativos de dados que apontam para as origens de dados do armazenamento de objetos que você deseja consultar com o Autonomous Database. No Data Catalog, você pode especificar como os dados são organizados durante a coleta, suportando diferentes padrões de organização de arquivos. Como parte do processo de coleta do serviço Data Catalog, você pode selecionar os buckets e os arquivos que deseja gerenciar no ativo. Para obter mais informações, consulte Visão Geral do Serviço Data Catalog.

Armazenamentos de Objetos

Os Armazenamentos de Objetos têm buckets que contêm uma variedade de objetos. Alguns tipos comuns de objetos encontrados nesses buckets incluem: arquivos CSV, parquet, avro, json e ORC. Em geral, os buckets têm uma estrutura ou um padrão de design para os objetos que eles contêm. Existem diversas maneiras de estruturar dados e muitas maneiras diferentes de interpretar esses padrões.

Por exemplo, um padrão de design típico usa pastas de nível superior que representam tabelas. Os arquivos de uma determinada pasta compartilham o mesmo esquema e contêm dados para essa tabela. As subpastas geralmente são usadas para representar partições de tabelas (por exemplo, uma subpasta para cada dia). O serviço Data Catalog se refere a cada pasta de nível superior como entidade lógica, e essa entidade lógica é mapeada para uma tabela externa do Autonomous Database.

Conexão

Uma conexão do Autonomous Database com uma instância do serviço Data Catalog. Para cada instância do Autonomous Database, pode haver conexões com várias instâncias do serviço Data Catalog. A credencial do Autonomous Database deve ter direitos para acessar os ativos do serviço Data Catalog que foram coletados do armazenamento de objetos.

Harvest

Um processo do serviço Data Catalog que verifica o armazenamento de objetos e gera as entidades lógicas de seus conjuntos de dados.

Ativo de Dados

Um ativo de dados no serviço Data Catalog representa uma origem de dados, que inclui bancos de dados, Oracle Object Storage, Kafka e muito mais. O Autonomous Database aproveita os ativos do Oracle Object Storage para sincronização de metadados.

Entidade de Dados

Entidade de dados no Catálogo de Dados é uma coleção de dados como uma tabela ou view de banco de dados, ou um único arquivo e que normalmente tem muitos atributos dela.

Entidade Lógica

Em Data Lakes, vários arquivos normalmente formam uma única entidade lógica. Por exemplo, você pode ter arquivos de sequência de cliques diários, e esses arquivos compartilham o mesmo esquema e tipo de arquivo.

Entidade lógica do serviço Data Catalog é um grupo de arquivos de Armazenamento de Objetos que são derivados durante a coleta, aplicando padrões de nome de arquivo que foram criados e designados a um ativo de dados.

Objeto de Dados

Um objeto de dados no serviço Data Catalog refere-se a ativos de dados e entidades de dados.

Padrão de Nome de Arquivo

Em um data lake, os dados podem ser organizados de diferentes maneiras. Normalmente, as pastas captam arquivos do mesmo esquema e tipo. Registre no serviço Data Catalog como seus dados são organizados. Os padrões de nome de arquivo são usados para identificar o modo de organização dos seus dados. No serviço Data Catalog, você pode definir padrões de nome de arquivo usando expressões regulares. Quando o serviço Data Catalog coleta um ativo de dados com um padrão de nome de arquivo designado, as entidades lógicas são criadas com base no padrão de nome de arquivo. Definindo e designando esses padrões a ativos de dados, vários arquivos podem ser agrupados como entidades lógicas com base no padrão de nome de arquivo.

Sincronizar (Sincronizar)

O Autonomous Database executa sincronizações com o serviço Data Catalog para manter automaticamente seu banco de dados atualizado em relação a alterações nos dados subjacentes. A sincronização pode ser executada manualmente ou programada.

O processo de sincronização cria esquemas e tabelas externas com base nos ativos de dados e nas entidades lógicas do serviço Data Catalog. Esses esquemas são protegidos, o que significa que seus metadados são gerenciados pelo serviço Data Catalog. Se quiser alterar os metadados, faça as alterações no serviço Data Catalog. Os esquemas do Autonomous Database refletirão as alterações depois que a próxima sincronização for executada. Para obter mais detalhes, consulte Mapeamento de Sincronização.

Mapeamento de Sincronização

O processo de sincronização cria e atualiza esquemas e tabelas externas do Autonomous Database com base em ativos de dados, pastas, entidades lógicas, atributos e substituições personalizadas relevantes do serviço Data Catalog.

Serviço Data Catalog do Autonomous Database Descrição do Mapeamento

Ativo de dados e pasta (bucket de armazenamento de objetos)

Nome do Esquema

Valores default:

Por padrão, o nome de esquema gerado no Autonomous Database tem o seguinte formato:

DCAT$<dcat-con-id>_<data-asset-name>_<folder-name>

  • dcat-con-id é o identificador de conexão exclusivo do serviço Data Catalog. Para obter detalhes sobre como especificar esse identificador, consulte o parâmetro dcat_con_id no Procedimento DBMS_DCAT RUN_SYNC.
  • data-asset-name é o nome do ativo de dados do serviço Data Catalog.
  • folder-name é o nome da pasta do serviço Data Catalog. Essa pasta é mapeada para um bucket de armazenamento de objetos.

Personalizações:

Os padrões data-asset-name e folder-name podem ser personalizados definindo propriedades personalizadas, nomes de negócios e nomes de exibição para substituir esses nomes padrão.
  • data-asset-name pode ser substituído definindo a propriedade personalizada oracle-db-schema-prefix para o ativo de dados no serviço Data Catalog.
  • folder-name pode ser substituído definindo a propriedade personalizada oracle-db-schema para a pasta no serviço Data Catalog, um nome comercial ou um nome para exibição. Os seguintes atributos são usados em ordem de precedência para gerar os folder-name:
    1. Propriedade personalizada oracle-db-schema
    2. Nome para Negócios
    3. Nome para Exibição

Exemplos:

  • Se o id da conexão for DataModels, o nome do ativo for ObjectStorage, o nome da pasta for HR e não houver substituições de propriedade personalizada, o nome do esquema derivado será: DCAT$DATAMODELS_OBJECTSTORAGE_HR
  • Se o nome do ativo de dados for MYASSET, o nome da pasta for MYFOLDER e não houver substituições de propriedade personalizada, o nome do esquema será: DCAT$MYASSET_MYFOLDER
  • Se o ativo de dados tiver oracle-db-prefix = FIRSTASSET e a pasta tiver oracle-db-schema = FIRSTFOLDER, o nome do esquema será: DCAT$FIRSTASSET_FIRSTFOLDER
Entidade lógica Tabela externa

As entidades lógicas são mapeadas para tabelas externas. Se a entidade lógica tiver um atributo particionado, ela será mapeada para uma tabela externa particionada.

O nome da tabela externa é derivado do Nome para Exibição ou do Nome Comercial da entidade lógica correspondente.

Se oracle-db-schema estiver definido, seu valor substituirá todos os nomes e propriedades personalizadas das pastas e dos ativos de dados correspondentes.

Por exemplo, se oracle-db-schema para uma entidade for definido como EntitySchema, a tabela será criada no esquema DCAT$ENTITYSCHEMA.

Atributos da entidade lógica Colunas da tabela externa

Nomes de coluna Os nomes de coluna da tabela externa são derivados dos nomes para exibição do atributo ou dos nomes comerciais da entidade lógica correspondente.

Para entidades lógicas derivadas de arquivos Parquet, Avro e ORC, o nome da coluna é sempre o nome para exibição do atributo, já que representa o nome do campo derivado dos arquivos de origem.

Para atributos correspondentes a uma entidade lógica derivada de arquivos CSV, os seguintes campos de atributo são usados em ordem de precedência para gerar o nome da coluna:

  1. oracle-db-column-name
  2. Nome para Negócios
  3. Nome para Exibição

Tipo de coluna: A propriedade personalizada oracle-db-column-type substitui o tipo de coluna padrão derivado pelo serviço Data Catalog.

Para atributos correspondentes a uma entidade lógica derivada de arquivos Avro com os tipos de dados TIME_MICROS, TIME_MILLIS, TIMESTAMP_MICROS ou TIMESTAMP_MILLIS, defina o oracle-db-column-type do atributo correspondente no serviço Data Catalog.

Comprimento da coluna: A propriedade personalizada oracle-db-column-length substitui o tamanho padrão da coluna de um campo de string derivado pelo serviço Data Catalog.

Precisão da coluna: A propriedade personalizada oracle-db-column-precision substitui a precisão padrão de um número derivado pelo serviço Data Catalog.

Para atributos correspondentes a uma entidade lógica derivada de arquivos Avro com os tipos de dados TIME_MICROS, TIME_MILLIS, TIMESTAMP_MICROS ou TIMESTAMP_MILLIS, defina o oracle-db-column-precision do atributo correspondente no serviço Data Catalog.

Escala de coluna: A propriedade personalizada oracle-db-column-scale substitui a escala padrão de um número que foi derivado pelo serviço Data Catalog.

Workflow Típico com o Serviço Data Catalog

Há um workflow típico de ações executadas pelos usuários que desejam fazer consultas com o serviço Data Catalog.

O Database Data Catalog Admin cria uma conexão entre a instância do Autonomous Database e uma instância do serviço Data Catalog e, em seguida, configura e executa uma sincronização entre o Data Catalog e o Autonomous Database. A sincronização cria tabelas externas e esquemas na instância do Autonomous Database com base no conteúdo sincronizado do serviço Data Catalog.

O Administrador de Consultas do Database Data Catalog ou o Administrador do Database concede acesso READ às tabelas externas geradas para que os Analistas de Dados e outros usuários de banco de dados possam procurar e consultar as tabelas externas.

A tabela a seguir descreve com detalhes cada ação. Para obter uma descrição dos diferentes tipos de usuário incluídos nessa tabela, consulte Usuários e Atribuições do Serviço Data Catalog.

Observação

O Pacote DBMS_DCAT está disponível para executar as tarefas necessárias para consultar ativos de dados do armazenamento de objetos do serviço Data Catalog. Consulte DBMS_DCAT Package.
Ação Quem é o usuário Descrição

Criar políticas

Administrador do Database Data Catalog

O controlador de recursos do Autonomous Database ou a credencial de usuário do Autonomous Database deve ter as permissões adequadas para gerenciar o serviço Data Catalog e ler o armazenamento de objetos.

Mais informações: Credenciais Obrigatórias e Políticas do Serviço IAM.

Criar credenciais

Administrador do Database Data Catalog

Certifique-se de que as credenciais do banco de dados estejam em vigor para acessar o serviço Data Catalog e consultar o armazenamento de objetos. O usuário chama DBMS_CLOUD.CREATE_CREDENTIAL para criar as credenciais do usuário e/ou DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL para ativar os controladores de recursos.

Mais informações: Procedimento DBMS_CLOUD CREATE_CREDENTIAL, Usar o Controlador de Recursos com DBMS_CLOUD.

Criar conexões com o serviço Data Catalog

Administrador do Database Data Catalog

Para iniciar uma conexão entre uma instância do Autonomous Database e uma instância do serviço Data Catalog, o usuário chama DBMS_DCAT.SET_DATA_CATALOG_CONN para especificar a instância do serviço Data Catalog de destino. Há suporte para conexões de uma instância do Autonomous Database com várias instâncias do serviço Data Catalog.

A conexão com a instância do serviço Data Catalog deve usar um objeto de credencial de banco de dados com privilégios suficientes do Oracle Cloud Infrastructure (OCI). Por exemplo, é possível usar o Token de Serviço do Principal de Recursos para a instância do Autonomous Database ou um usuário do OCI com privilégios suficientes.

Depois que a conexão tiver sido estabelecida, a instância do serviço Data Catalog será atualizada com o namespace DBMS_DCAT e as propriedades personalizadas (se ainda não existirem). O usuário pode executar uma consulta para ver a nova conexão, incluindo todas as conexões atuais:
select * from all_dcat_connections;

Mais informações: SET_DATA_CATALOG_CONN Procedimento, UNSET_DATA_CATALOG_CONN Procedimento.

Criar uma sincronização seletiva

Administrador do Database Data Catalog

Crie um job de sincronização selecionando os objetos do serviço Data Catalog a serem sincronizados. O usuário pode:
  • Selecione os ativos de dados a serem sincronizados.
  • Selecione as entidades lógicas individuais a serem sincronizadas.
  • Visualize as tabelas externas resultantes antes da sincronização.
  • Altere as tabelas externas (por exemplo, o nome) modificando propriedades personalizadas no serviço Data Catalog.

Mais informações: Consulte CREATE_SYNC_JOB Procedimento, DROP_SYNC_JOB Procedimento, Mapeamento de Sincronização

Sincronizar com o serviço Data Catalog

Administrador do Database Data Catalog

O usuário inicia uma operação de sincronização. A sincronização é iniciada manualmente por meio da chamada do procedimento DBMS_DCAT.RUN_SYNC ou automaticamente como parte de um job de sincronização programado.

A operação de sincronização cria, modifica e elimina tabelas externas e esquemas de acordo com o conteúdo do serviço Data Catalog e as seleções de sincronização. A configuração manual é aplicada usando as Propriedades Personalizadas do serviço Data Catalog.

Mais informações: Consulte RUN_SYNC Procedure, CREATE_SYNC_JOB Procedure, Synchronization Mapping

Monitorar sincronização e exibir registros

Administrador do Database Data Catalog

O usuário pode exibir o status de sincronização consultando a view USER_LOAD_OPERATIONS. Depois que o processo de sincronização for concluído, o usuário poderá exibir um log dos resultados da sincronização, incluindo detalhes sobre os mapeamentos de entidades lógicas para tabelas externas.

Mais informações: Monitorando e Solucionando Problemas de Cargas

conceder privilégios

Administrador de Consultas do Database Data Catalog, Administrador de Banco de Dados

O Administrador de Consultas do Catálogo de Dados do banco de dados ou o Administrador do banco de dados deve conceder o privilégio READ nas tabelas externas geradas aos usuários analistas de dados. Isso permite que os analistas de dados consultem as tabelas externas geradas.

Procurar e consultar tabelas externas

Analista de Dados

Os analistas de dados podem consultar as tabelas externas por meio de qualquer ferramenta ou aplicativo que tenha suporte para o Oracle SQL.

Os Analistas de Dados podem revisar esquemas e tabelas sincronizados, nos esquemas DCAT$*, e consultar as tabelas usando o Oracle SQL.

Mais informações: Mapeamento de Sincronização

Encerrar conexões com o serviço Data Catalog

Administrador do Database Data Catalog

Para remover uma associação existente do serviço Data Catalog, o usuário chama o procedimento UNSET_DATA_CATALOG_CONN.

Essa ação só é executada quando você não planeja mais usar o serviço Data Catalog e as tabelas externas derivadas do catálogo. Essa ação exclui metadados do serviço Data Catalog e elimina tabelas externas sincronizadas da instância do Autonomous Database. As propriedades personalizadas no Data Catalog e nas políticas do OCI não são afetadas.

Mais informações: UNSET_DATA_CATALOG_CONN Procedimento

Exemplo: Cenário MovieStream

Nesse cenário, o Moviestream está capturando dados em uma zona de destino no armazenamento de objetos. Muitos desses dados, mas não necessariamente todos, são usados para alimentar um Autonomous Database. Antes de alimentar o Autonomous Database, os dados são transformados, limpos e subsequentemente armazenados na área "gold".

O serviço Data Catalog é usado para coletar essas origens e, em seguida, fornecer um contexto de negócios aos dados. Os metadados do serviço Data Catalog são compartilhados com o Autonomous Database, permitindo que os usuários do Autonomous Database consultem essas origens de dados usando o Oracle SQL. Esses dados podem ser carregados no Autonomous Database ou consultados dinamicamente usando tabelas externas.

Para obter mais informações sobre como usar o serviço Data Catalog, consulte a Documentação do Serviço Data Catalog.

  1. Armazenamento de Objetos - Revisar buckets, pastas e arquivos
    1. Revise os buckets do armazenamento de objetos.
      Por exemplo, abaixo estão os buckets de destino (moviestream_landing) e de zona dourada (moviestream_gold) no armazenamento de objetos:
    2. Verifique as pastas e os arquivos nos buckets de armazenamento de objetos.
      Por exemplo, abaixo estão as pastas no bucket de destino (moviestream_landing) no armazenamento de objetos:
  2. Catálogo de Dados - Criar padrões de nome de arquivo
    1. Informe ao serviço Data Catalog como seus dados são organizados usando padrões de nome de arquivo. Essas são expressões regulares usadas para categorizar arquivos. Os padrões de nome de arquivo são usados pelo coletor do serviço Data Catalog para derivar entidades lógicas. Os dois padrões de nome de arquivo a seguir são usados para coletar os buckets no exemplo MovieStream. Consulte Coletando Arquivos do Armazenamento de Objetos como Entidades Lógicas de Dados para obter mais detalhes sobre a criação de padrões de nome de arquivo.
      Estilo Hive Estilo Pasta
      {bucketName:.*}/{logicalEntity:[^/]+}.db/{logicalEntity:[^/]+}/.* {bucketName:[\w]+}/{logicalEntity:[^/]+}(?<!.db)/.*$
      • Cria entidades lógicas para origens que contêm ".db" como primeira parte do nome do objeto.
      • Para garantir a exclusividade dentro do bucket, o nome resultante é (db-name).(folder name)
      • Cria uma entidade lógica com base no nome da pasta da raiz
      • Para evitar duplicação com o Hive, os nomes de objetos que têm ".db" são ignorados.
    2. Para criar padrões de nome de arquivo, vá para a guia Padrões de Nome de Arquivo do serviço Data Catalog e clique em Criar Padrão de Nome de Arquivo. Por exemplo, esta é a guia Criar Padrão de Nome de Arquivo para o moviestream Data Catalog:
  3. Data Catalog - Criação de Ativo de Dados
    1. Crie um ativo de dados que seja usado para coletar dados do seu armazenamento de dados.
      Por exemplo, um ativo de dados chamado phoenixObjStore é criado no serviço Data Catalog moviestream:
    2. Adicionar uma conexão ao seu ativo de dados.
      Neste exemplo, o ativo de dados estabelece conexão com o compartimento do recurso de armazenamento de objetos moviestream.
    3. Agora, associe seus padrões de nome de arquivo ao seu ativo de dados. Selecione Designar Padrões de Nome de Arquivo, verifique os padrões desejados e clique em Designar.
      Por exemplo, aqui estão os padrões designados ao ativo de dados phoenixObjStore:Veja a seguir a descrição da ilustração assign_filename_patterns_v1.png
      Descrição da ilustração assign_filename_patterns_v1.png
  4. Data Catalog - Coletar dados do armazenamento de objetos
    1. Coletar o ativo de dados do Data Catalog. Selecione os buckets de armazenamento de objetos que contêm os dados de origem.
      Neste exemplo, os buckets moviestream_gold e moviestream_landing do armazenamento de objetos estão selecionados para coleta.
    2. Depois de executar o job, você vê as entidades lógicas. Use Procurar Ativos de Dados para revisá-los.
      Neste exemplo, você está examinando a entidade lógica customer-extension e seus atributos.

      Se você tiver um glossário, o serviço Data Catalog recomendará as categorias e os termos a serem associados à entidade e seus atributos. Isso fornece um contexto de negócios para os itens. Esquemas, tabelas e colunas muitas vezes não são autoexplicativos.

      Em nosso exemplo, queremos diferenciar entre os diferentes tipos de buckets e o significado de seu conteúdo:
      • o que é uma zona de destino?
      • quão precisos são os dados?
      • quando foi a última atualização?
      • qual é a definição de uma entidade lógica ou de seu atributo?
  5. Autonomous Database - Conexão com o Serviço Data Catalog

    Conecte o Autonomous Database ao serviço Data Catalog. Certifique-se de que a credencial usada para fazer essa conexão esteja usando um controlador do OCI autorizado a acessar o ativo do serviço Data Catalog. Para obter mais informações, consulte Políticas do Serviço Data Catalog e Acessar Recursos da Nuvem Configurando Políticas e Atribuições.

    1. Estabelecer Conexão com o Serviço Data Catalog
      -- Variables are used to simplify usage later
      define oci_credential = 'OCI$RESOURCE_PRINCIPAL'
      define dcat_ocid = 'ocid1.datacatalog.oc1.iad.aaaaaaaardp66bg....twiq'
      define dcat_region='us-ashburn-1'
      define uri_root =    'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/landing/o'
      define uri_private = 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/private_data/o'
      
      -- Run as admin
      -------
      -- Enable resource principal support
      -------
      exec dbms_cloud_admin.enable_resource_principal();
      
      -- Test to make sure credential was created. Returns a row if it was successful
      select * 
      from dba_credentials 
      where credential_name = 'OCI$RESOURCE_PRINCIPAL' and owner = 'ADMIN'; 
      
      -- Query a private bucket to test the principal and privileges.
      select * 
      from dbms_cloud.list_objects('&oci_credential', '&uri_private/');
      
      --------
      -- Set the credentials to use for object store and data catalog
      -- Connect to Data Catalog
      -- Review connection
      ---------
      -- Set credentials
      exec dbms_dcat.set_data_catalog_credential(credential_name => '&oci_credential');
      exec dbms_dcat.set_object_store_credential(credential_name => '&oci_credential');
      
      -- Connect to Data Catalog
      begin
         dbms_dcat.set_data_catalog_conn (
           region => '&dcat_region',
           catalog_id => '&dcat_ocid');
      end;
      /
      -- Review the connection
      select * from all_dcat_connections;
      
    2. Sincronize o serviço Data Catalog com o Autonomous Database. Aqui, sincronizaremos todos os ativos de armazenamento de objetos:
      
      -- Sync Data Catalog with Autonomous Database
      ---- Let's sync all of the assets.
      begin
       dbms_dcat.run_sync('{"asset_list":["*"]}');
      end;
      /
      
      -- View log
      select type, start_time, status, logfile_table from user_load_operations;  -- Logfile_Table will have the name of the table containing the full log.
      select * from dbms_dcat$1_log;
      
      -- View the new external tables
      select * from dcat_entities;
      select * from dcat_attributes;
      
      
    3. Autonomous Database - Agora comece a executar consultas no armazenamento de objetos.
      -- Query the Data !
      select *from dcat$phoenixobjstore_moviestream_gold.genre
      ;
  6. Alterar esquemas de objetos

    Os nomes de esquema padrão são bastante complicados. Simplifique-os especificando o ativo e o atributo personalizado Oracle-Db-Schema da pasta no serviço Data Catalog. Altere o ativo de dados para PHX e as pastas para landing e gold respectivamente. O esquema é uma concatenação dos dois.

    1. No serviço Data Catalog, navegue até o bucket moviestream_landing e altere o ativo para landing e gold respectivamente.

      Antes da alteração:

      Após a alteração:

    2. Execute outra sincronização.

Exemplo: Cenário de Dados Particionados

Esse cenário ilustra como criar tabelas externas no Autonomous Database baseadas em entidades lógicas do serviço Data Catalog coletadas de dados particionados no Armazenamento de Objetos.

O exemplo a seguir é baseado no Exemplo: MovieStream Cenário e foi adaptado para demonstrar a integração com dados particionados. O serviço Data Catalog é usado para coletar essas origens e, em seguida, fornecer um contexto de negócios aos dados. Para obter mais detalhes sobre esse exemplo, consulte Exemplo: MovieStream Cenário.

Para obter mais informações sobre como usar o serviço Data Catalog, consulte a Documentação do Serviço Data Catalog.

  1. Armazenamento de Objetos - Revisar buckets, pastas e arquivos
    1. Revise os buckets do armazenamento de objetos.
      Por exemplo, abaixo estão os buckets de destino (moviestream_landing) e de zona dourada (moviestream_gold) no armazenamento de objetos:
    2. Verifique as pastas e os arquivos nos buckets de armazenamento de objetos.
      Por exemplo, abaixo estão as pastas no bucket de destino (moviestream_landing) no armazenamento de objetos:
  2. Catálogo de Dados - Criar padrões de nome de arquivo
    1. Informe ao serviço Data Catalog como seus dados são organizados usando padrões de nome de arquivo. Esses são prefixos de pasta ou expressões regulares usados para categorizar arquivos. Os padrões de nome de arquivo são usados pelo coletor do serviço Data Catalog para derivar entidades lógicas. Quando um prefixo de pasta é especificado, o serviço Data Catalog gera automaticamente entidades lógicas com base no prefixo de pasta especificado no armazenamento de objetos. O padrão de nome de arquivo a seguir é usado para coletar os buckets no exemplo MovieStream. Consulte Coletando Arquivos do Armazenamento de Objetos como Entidades Lógicas de Dados para obter mais detalhes sobre a criação de padrões de nome de arquivo.
      prefixo de pasta Descrição
      workshop.db/ Cria entidades lógicas para origens que contêm o caminho "workshop.db" no armazenamento de objetos.
    2. Para criar padrões de nome de arquivo, vá para a guia Padrões de Nome de Arquivo do serviço Data Catalog e clique em Criar Padrão de Nome de Arquivo. Por exemplo, esta é a guia Criar Padrão de Nome de Arquivo para o moviestream Data Catalog:
  3. Data Catalog - Criação de Ativo de Dados
    1. Crie um ativo de dados que seja usado para coletar dados do seu armazenamento de dados.
      Por exemplo, um ativo de dados chamado amsterdamObjStore é criado no serviço Data Catalog moviestream:
    2. Adicionar uma conexão ao seu ativo de dados.
      Neste exemplo, o ativo de dados estabelece conexão com o compartimento do recurso de armazenamento de objetos moviestream.
    3. Agora, associe seus padrões de nome de arquivo ao seu ativo de dados. Selecione Designar Padrões de Nome de Arquivo, verifique os padrões desejados e clique em Designar.
      Por exemplo, aqui estão os padrões designados ao ativo de dados amsterdamObjStore:
  4. Data Catalog - Coletar dados do armazenamento de objetos
    1. Coletar o ativo de dados do Data Catalog. Selecione os buckets de armazenamento de objetos que contêm os dados de origem.
      Neste exemplo, os buckets moviestream_gold e moviestream_landing do armazenamento de objetos estão selecionados para coleta.
    2. Depois de executar o job, você vê as entidades lógicas. Use Procurar Ativos de Dados para revisá-los.
      Neste exemplo, você está examinando a entidade lógica sales_sample_parquet e seus atributos. Observe que o serviço Data Catalog identificou o atributo month como particionado.
  5. Autonomous Database - Conexão com o Serviço Data Catalog

    Conecte o Autonomous Database ao serviço Data Catalog. Certifique-se de que a credencial usada para fazer essa conexão esteja usando um controlador do OCI autorizado a acessar o ativo do serviço Data Catalog. Para obter mais informações, consulte Políticas do Serviço Data Catalog e Acessar Recursos da Nuvem Configurando Políticas e Atribuições.

    1. Estabelecer Conexão com o Serviço Data Catalog
      -- Variables are used to simplify usage later
      define oci_credential = 'OCI$RESOURCE_PRINCIPAL'
      define dcat_ocid = 'ocid1.datacatalog.oc1.eu-amsterdam-1....leguurn3dmqa'
      define dcat_region='eu-amsterdam-1'
      define uri_root =    'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/landing/o'
      define uri_private = 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/private_data/o'
      
      -- Run as admin
      -------
      -- Enable resource principal support
      -------
      exec dbms_cloud_admin.enable_resource_principal();
      
      -- Test to make sure credential was created. Returns a row if it was successful
      select * 
      from dba_credentials 
      where credential_name = 'OCI$RESOURCE_PRINCIPAL' and owner = 'ADMIN'; 
      
      -- Query a private bucket to test the principal and privileges.
      select * 
      from dbms_cloud.list_objects('&oci_credential', '&uri_private/');
      
      --------
      -- Set the credentials to use for object store and data catalog
      -- Connect to Data Catalog
      -- Review connection
      ---------
      -- Set credentials
      exec dbms_dcat.set_data_catalog_credential(credential_name => '&oci_credential');
      exec dbms_dcat.set_object_store_credential(credential_name => '&oci_credential');
      
      -- Connect to Data Catalog
      begin
         dbms_dcat.set_data_catalog_conn (
           region => '&dcat_region',
           catalog_id => '&dcat_ocid');
      end;
      /
      -- Review the connection
      select * from all_dcat_connections;
      
    2. Sincronize o serviço Data Catalog com o Autonomous Database. Aqui, sincronizaremos todos os ativos de armazenamento de objetos:
      
      -- Sync Data Catalog with Autonomous Database
      ---- Let's sync all of the assets.
      begin
       dbms_dcat.run_sync('{"asset_list":["*"]}');
      end;
      /
      
      -- View log
      select type, start_time, status, logfile_table from user_load_operations;  -- Logfile_Table will have the name of the table containing the full log.
      select * from dbms_dcat$1_log;
      
      -- View the new external tables
      select * from dcat_entities;
      select * from dcat_attributes;
      
      
    3. Autonomous Database - Agora comece a executar consultas no armazenamento de objetos.
      -- Query the Data !
      select count(*) from DCAT$AMSTERDAMOBJSTORE_MOVIESTREAM_LANDING.SALES_SAMPLE_PARQUET;
      
      -- Examine the generated partitioned table
      select dbms_metadata.get_ddl('TABLE','SALES_SAMPLE_PARQUET','DCAT$AMSTERDAMOBJSTORE_MOVIESTREAM_LANDING') from dual;
      
      CREATE TABLE "DCAT$AMSTERDAMOBJSTORE_MOVIESTREAM_LANDING"."SALES_SAMPLE_PARQUET"
      (    "MONTH" VARCHAR2(4000) COLLATE "USING_NLS_COMP",
           "DAY_ID" TIMESTAMP (6),
           "GENRE_ID" NUMBER(20,0),
           "MOVIE_ID" NUMBER(20,0),
           "CUST_ID" NUMBER(20,0),
      ...
      )  DEFAULT COLLATION "USING_NLS_COMP"
      ORGANIZATION EXTERNAL
       ( TYPE ORACLE_BIGDATA
         ACCESS PARAMETERS
         ( com.oracle.bigdata.fileformat=parquet
           com.oracle.bigdata.filename.columns=["MONTH"]
           com.oracle.bigdata.file_uri_list="https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/*"
      ...
         )
       )
      REJECT LIMIT 0
      PARTITION BY LIST ("MONTH")
      (PARTITION "P1"  VALUES (('2019-01'))
         LOCATION ( 'https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/month=2019-01/*'),
      PARTITION "P2"  VALUES (('2019-02'))
         LOCATION ( 'https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/month=2019-02/*'),
      ...PARTITION "P24"  VALUES (('2020-12'))
         LOCATION ( 'https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/month=2020-12/*'))
      PARALLEL
  6. Alterar esquemas de objetos

    Os nomes de esquema padrão são bastante complicados. Simplifique-os especificando o ativo e o atributo personalizado Oracle-Db-Schema da pasta no serviço Data Catalog. Altere o ativo de dados para PHX e as pastas para landing e gold respectivamente. O esquema é uma concatenação dos dois.

    1. No serviço Data Catalog, navegue até o bucket moviestream_landing e altere o ativo para landing e gold respectivamente.

      Antes da alteração:

      Após a alteração:

    2. Execute outra sincronização.