Consultar Dados Externos com o Catálogo de Dados do AWS Glue

O Autonomous Database suporta um sistema para sincronização com uma instância do Amazon AWS Glue Data Catalog.

Sobre a consulta com o AWS Glue Data Catalog

O Autonomous Database permite sincronizar com os metadados do Catálogo de Dados de Colagem do Amazon Web Service (AWS). Uma tabela externa de banco de dados é criada automaticamente pelo Autonomous Database para cada tabela coletada pelo AWS Glue sobre dados armazenados no Amazon Simple Storage Service (S3). Os usuários podem consultar dados armazenados em S3 do Autonomous Database sem precisar derivar manualmente o esquema para as origens de dados externas e criar tabelas externas.

O Amazon AWS Glue Data Catalog é um serviço de gerenciamento de metadados centralizado que ajuda os profissionais de dados a descobrir dados e oferece suporte à governança de dados na nuvem da AWS. Uma instância do Autonomous Database tem a capacidade de sincronizar automaticamente metadados do catálogo de dados com o AWS Glue Data Catalog, permitindo que os usuários do banco de dados usem imediatamente o Autonomous Database para consultar dados armazenados na nuvem da AWS.

A sincronização com o AWS Glue Data Catalog tem as mesmas propriedades que a sincronização com o OCI Data Catalog. A sincronização é dinâmica, mantendo o banco de dados atualizado em relação às alterações nos dados subjacentes, reduzindo o custo de administração, pois mantém automaticamente centenas a milhares de tabelas.

Conceitos relacionados à consulta com o AWS Glue Data Catalog

Uma compreensão dos conceitos a seguir é necessária para consultar catálogos de dados do Amazon Web Service (AWS).

AWS Glue Data Catalog: Banco de Dados

Um banco de dados do AWS Glue representa um conjunto de definições de tabelas relacionais, organizadas em um grupo lógico. Cada instância do catálogo de dados do AWS Glue gerencia vários bancos de dados.

AWS Glue Data Catalog: Tabela

Uma tabela do AWS Glue representa uma tabela relacional sobre os dados armazenados na nuvem da AWS. Uma tabela do AWS Glue define o esquema dos dados subjacentes e consiste em informações de coluna, informações de partição, informações de serialização, informações de armazenamento, estatísticas, metadados definidos pelo usuário e outros metadados. As tabelas no catálogo de dados do AWS Glue podem ser criadas manualmente ou automaticamente usando um rastreador do AWS Glue.

Catálogo de Dados da Coluna: Crawler

Você pode usar um crawler para preencher o catálogo de dados do AWS Glue com tabelas. Este é o principal método usado pela maioria dos usuários do AWS Glue. Um crawler pode fazer crawling de vários armazenamentos de dados em uma única execução. Após a conclusão, o crawler cria ou atualiza uma ou mais tabelas em seu catálogo de dados. Os jobs de extração, transformação e carregamento (ETL) que você define no AWS Glue usam essas tabelas do catálogo de dados como origens e destinos. O job de ETL lê e grava nos armazenamentos de dados especificados nas tabelas do catálogo de dados de origem e de destino.

As tabelas do AWS Glue podem ser criadas manualmente pelo usuário ou automaticamente usando um crawler predefinido ou personalizado. Os crawlers se conectam aos armazenamentos de dados subjacentes (por exemplo, Amazon S3), chamam classificadores para derivar o esquema dos dados e criam tabelas do AWS Glue para armazenar os metadados inferidos. O AWS Glue fornece classificadores para tipos de arquivos comuns, como CSV, JSON, Parquet e AVRO.

Mapeamento entre o Autonomous Database e o AWS Glue

Durante o processo de sincronização, são criadas tabelas externas no Autonomous Database derivadas dos bancos de dados e tabelas do AWS Glue Data Catalog no Amazon S3.

O AWS Glue organiza os metadados coletados em bancos de dados e tabelas. Um banco de dados do AWS Glue é um conjunto de definições de tabela relacional. Tabelas do AWS Glue que descrevem o esquema comum e as propriedades dos arquivos associados à tabela.

O AWS Glue segue o modelo relacional para representar atributos. Para mapeamento de esquemas hierárquicos para esquemas relacionais, o AWS Glue infere o esquema dos dados semiestruturados e simplifica os dados para um esquema relacional usando um processo ETL.

A tabela a seguir representa o mapeamento entre os conceitos do OCI Data Catalog e os Conceitos do AWS Glue Data Catalog.

Tabela 3-5 Mapeamento do OCI Data Catalog para o AWS Glue Data Catalog

OCI Data Catalog Catálogo de Dados do AWS Glue Oracle Database
Ativo de Dados Banco de Dados Esquema
Pasta (Bucket) Esquema
Entidade Lógica Tabela Tabela

Workflow do Usuário para Consultar com o AWS Glue Data Catalog

O workflow básico do usuário para consultar dados do AWS S3 com o AWS Glue Data Catalog envolve estabelecer conexão com o AWS Glue Data Catalog, sincronizar com o Autonomous Database para criar automaticamente tabelas externas e, em seguida, consultar os dados do S3.

O Administrador do serviço Database Data Catalog cria uma conexão entre a instância do Autonomous Database e uma instância do AWS Glue Data Catalog e, em seguida, configura e executa uma sincronização (sincronização) entre o AWS Glue Data Catalog e o Autonomous Database. O Autonomous Database cria automaticamente uma tabela externa para tabelas coletadas pelo AWS Glue sobre dados armazenados no S3.

O Administrador de Consulta do Catálogo de Dados do Banco de Dados ou o Administrador do Banco de Dados concede acesso READ às tabelas externas geradas para que os Analistas de Dados e outros usuários do banco de dados possam procurar e consultar o Autonomous Database sem precisar derivar manualmente o esquema para as origens de dados externas e criar tabelas externas.

Usuários

A tabela abaixo descreve os diferentes tipos de usuários que executam as ações de workflow do usuário.

Usuário Descrição
Administrador do Data Catalog do Banco de Dados Usuário do banco de dados com a atribuição DCAT_SYNC.
Administrador de Consulta do Catálogo de Dados do Banco de Dados Usuário do banco de dados capaz de conceder acesso em tabelas externas criadas automaticamente para outros usuários.
Analista de Dados Usuário do banco de dados no Autonomous Database consultando dados no AWS S3 consultando tabelas externas criadas automaticamente ou interagindo diretamente com o AWS Glue Data Catalog.

Usuário do Catálogo de Dados do AWS Glue

Usuário da AWS com acesso a um catálogo de dados do AWS Glue.

Usuário do AWS S3 Object Storage

Usuário da AWS com acesso aos dados armazenados na AWS S3

Workflow do Usuário

A tabela abaixo descreve cada ação incluída no workflow e que tipo de usuário pode executar a ação.

Observação

O pacote DBMS_DCAT está disponível para executar as tarefas necessárias para consultar o armazenamento de objetos do AWS S3 usando o AWS Glue Data Catalog. Consulte Pacote DBMS_DCAT.
Ação Quem é o usuário Descrição
Criar políticas Administrador do Data Catalog do Banco de Dados

A credencial de usuário do Autonomous Database deve ter as permissões apropriadas para acessar o AWS Glue Data Catalog e ler no armazenamento de objetos S3.

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

Criar credenciais Administrador do Data Catalog do Banco de Dados
Certifique-se de que as credenciais do banco de dados estejam em vigor para acessar o AWS Glue Data Catalog e consultar o armazenamento de objetos S3. O usuário chama DBMS_CLOUD.CREATE_CREDENTIAL para criar credenciais do usuário.
Observação

Somente as credenciais AWS (Amazon Web Services) são suportadas. As credenciais do AWS Amazon Resource Names (ARN) não são suportadas.

Mais informações: DBMS_CLOUD Procedimento CREATE_CREDENTIAL

Conectar

Administrador do Data Catalog do Banco de Dados

Estabelecer uma conexão entre uma instância do Autonomous Database e uma instância do AWS Glue Data Catalog. A conexão usa os privilégios do Usuário do Catálogo de Dados do AWS Glue. Há suporte para conexões de uma instância do Autonomous Database com várias instâncias do AWS Glue Data Catalog.

Para iniciar uma conexão entre uma instância do Autonomous Database e uma instância do AWS Glue Data Catalog, o usuário:
  1. Chama o DBMS_DCAT.SET_DATA_CATALOG_CREDENTIAL usando uma credencial da AWS ( Procedimento CREATE_CREDENTIAL) para especificar a instância de destino do AWS Glue Data Catalog.
  2. Chama o DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL usando uma credencial da AWS (Procedimento CREATE_CREDENTIAL) para acessar o armazenamento de objetos do AWS S3.
  3. Chama o DBMS_DCAT.SET_DATA_CATALOG_CONN usando um ponto final do serviço AWS Glue

Depois que a conexão for estabelecida, o Autonomous Database armazenará os metadados associados, como o id do catálogo do AWS Glue, a região, o ponto final e os objetos de credencial.

Mais informações: SET_DATA_CATALOG_CONN Procedures, UNSET_DATA_CATALOG_CONN Procedure, SET_DATA_CATALOG_CREDENTIAL Procedure, SET_OBJECT_STORE_CREDENTIAL Procedure.

Sincronizar

Administrador do Data Catalog do Banco de Dados

O usuário pode iniciar manualmente uma sincronização com os Catálogos de Dados do AWS Glue conectados usando DBMS_DCAT.RUN_SYNC ou criar sincronizações automáticas usando DBMS_DCAT.CREATE_SYNC_JOB.

A sincronização faz o seguinte:
  • Cria tabelas externas no Autonomous Database que são derivadas do AWS Glue Data Catalog conectado.
  • Permite que os usuários visualizem metadados para bancos de dados e tabelas do AWS Glue.
  • Modifica ou elimina as tabelas externas sincronizadas existentes se os metadados do AWS Glue tiverem sido alterados.
Mais informações: Consulte Procedimento RUN_SYNC, Procedimento CREATE_SYNC_JOB, Procedimento DROP_SYNC_JOB, Mapeamento de Sincronização

Sincronização do Monitor

Administrador do Data Catalog do Banco de Dados

O usuário pode exibir o status de sincronização consultando a view USER_LOAD_OPERATIONS. Após a conclusão do processo de sincronização, o usuário poderá exibir um log dos resultados da sincronização, incluindo detalhes sobre os mapeamentos para tabelas externas.

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

Conceder privilégios

Administrador de Consulta do Catálogo de Dados do Banco de Dados, Administrador do Banco de Dados

O Administrador de Consulta do Catálogo de Dados ou o Administrador do Banco de Dados deve conceder privilégios READ em tabelas externas geradas aos usuários do analista de dados. Isso permite que os analistas de dados consultem as tabelas externas geradas.

Consultar

Analista de Dados

Os analistas de dados podem revisar os esquemas e tabelas sincronizados nos esquemas GLUE$* e consultar as tabelas externas por meio de qualquer ferramenta ou aplicativo que suporte o Oracle SQL.

Os dados no S3 são acessados usando os privilégios do usuário de armazenamento de objetos do AWS S3.

Mais informações: Exemplo: Consulta com o AWS Glue Data Catalog

Encerrar conexões

Administrador do Data Catalog do Banco de Dados

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ó é feita quando você não planeja mais usar o AWS Glue Data Catalog conectado e as tabelas externas derivadas do catálogo. Esta ação exclui metadados do AWS Glue Data Catalog e elimina tabelas externas sincronizadas da instância do Autonomous Database.

Mais informações: UNSET_DATA_CATALOG_CONN Procedimento

Exemplo: Consulta com o AWS Glue Data Catalog

Este exemplo orienta você no processo de execução de consultas em conjuntos de dados armazenados no Amazon Simple Storage Service (Amazon S3) usando um Catálogo de Dados do AWS Glue.

Neste exemplo, os metadados em um Catálogo de Dados do AWS Glue são inspecionados para ver quais objetos do Amazon S3 foram submetidos a crawling anteriormente e existem no catálogo de dados. O Autonomous Database é então associado ao AWS Glue Data Catalog e ao Amazon S3. O catálogo de dados é sincronizado com o Autonomous Database para criar tabelas externas sobre os conjuntos de dados armazenados no Amazon S3. As tabelas externas são usadas para consultar os conjuntos de dados no Amazon S3.

  1. Inspecione metadados no AWS Glue Data Catalog.
    1. Inicie o console do AWS Glue.Veja a seguir a descrição da ilustração glue_console.png
      Descrição da ilustração glue_console.png
    2. Navegue até o catálogo de dados, bancos de dados e tabelas para localizar objetos existentes.

      Neste exemplo, existem alguns objetos no Amazon S3 para os quais o AWS Glue fez crawling e criou tabelas anteriormente, conforme mostrado abaixo:

      Veja a seguir a descrição da ilustração glue_tables.png
      Descrição da ilustração glue_tables.png
  2. Associar o AWS Glue ao Autonomous Database.
    1. Crie credenciais no Autonomous Database.

      A chamada de procedimento a seguir inclui o ID de acesso e a chave secreta para fornecer ao Autonomous Database acesso aos dados subjacentes no Amazon S3.

      exec dbms_cloud.create_credential('CRED_AWS','<access id>', '<access key>');

    2. Associe as credenciais ao AWS Glue Data Catalog e ao armazenamento de objetos do Amazon S3.
      Essas chamadas de procedimento associam o catálogo de dados e o armazenamento de objetos, respectivamente, às credenciais.
      exec dbms_dcat.set_data_catalog_credential('CRED_AWS');
      exec dbms_dcat.set_object_store_credential('CRED_AWS');

    3. Configure uma região da AWS na qual o Glue esteja em execução.
      exec dbms_dcat.set_data_catalog_conn(region => 'us-west-2', catalog_type=>'AWS_GLUE');
  3. Sincronize metadados para criar tabelas externas no Autonomous Database derivadas de bancos de dados e tabelas do AWS Glue.
    1. Agora que a associação foi concluída, use a exibição all_glue_databases para encontrar quais bancos de dados estão dentro de um Catálogo de Dados do AWS Glue.
      select * from all_glue_databases order by name;

    2. Use a view all_glue_tables para obter uma lista de tabelas disponíveis para sincronização.
      select * from all_glue_tables order by database_name, name;

      Veja a seguir a descrição da ilustração glue_table_list.png
      Descrição da ilustração glue_table_list.png

    3. Sincronize o Autonomous Database com duas tabelas, store e item, encontradas no banco de dados parq.
          begin
          dbms_dcat.run_sync(
              synced_objects => '
                  {
                      "database_list": [
                          {
                          "database": "parq",
                          "table_list": ["store","item"]
                          }
                       ]
                   }',
          error_semantics => 'STOP_ON_ERROR');
          end;
          /

  4. Inspecione novos objetos no Autonomous Database e execute uma consulta no topo de S3.
    1. Use o SQL Developer para exibir novos objetos criados pela operação de sincronização anterior.

      O esquema GLUE$PARQ_TPCDS_ORACLE_PARQ foi gerado e nomeado automaticamente pela chamada de procedimento dbms_dcat.run_sync.

      Veja a seguir a descrição da ilustração glue_sql_dev.png
      Descrição da ilustração glue_sql_dev.png

    2. Execute uma consulta SQL em armazenamentos de conjuntos de dados no Amazon S3.
      SELECT * FROM glue$parq_tpcds_oracle_parq.store;