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 que você sincronize com os metadados do Catálogo de Dados 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, uma vez que mantém automaticamente centenas ou 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) Glue.

Catálogo de Dados do AWS Glue: Banco de Dados

Um banco de dados AWS Glue representa uma coleção 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.

Catálogo de Dados do AWS Glue: Tabela

Uma tabela AWS Glue representa uma tabela relacional sobre os dados armazenados na nuvem AWS. Uma tabela 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 crawler do AWS Glue.

Catálogo de Dados da Cola: Crawler

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

As tabelas do AWS Glue podem ser criadas manualmente pelo usuário ou automaticamente usando um crawler predefinido ou personalizado. Os rastreadores 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 arquivo comuns, como CSV, JSON, Parquet e AVRO.

Mapeamento entre o Autonomous Database e o AWS Glue

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

O AWS Glue organiza metadados coletados em bancos de dados e tabelas. Um banco de dados do AWS Glue é um conjunto de definições de tabelas relacionais. Tabelas do AWS Glue que descrevem o esquema e as propriedades comuns 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 nivelia 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
Data Asset 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 de usuário básico para consultar dados do AWS S3 com o AWS Glue Data Catalog envolve a conexão com o AWS Glue Data Catalog, a sincronização com o Autonomous Database para criar tabelas externas automaticamente e, em seguida, consultar os dados do S3.

O Administrador do 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 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 em S3.

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 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 Database Data Catalog Usuário do banco de dados com a atribuição DCAT_SYNC.
Administrador de Consultas do Database Data Catalog O usuário do banco de dados pode conceder acesso a outros usuários em tabelas externas criadas automaticamente.
Analista de Dados Usuário do banco de dados no Autonomous Database que consulta dados no AWS S3 consultando tabelas externas criadas automaticamente ou interagindo diretamente com o AWS Glue Data Catalog.

Usuário do AWS Glue Data Catalog

Usuário da AWS com acesso a um AWS Glue Data Catalog.

Usuário do AWS S3 Object Storage

Usuário da AWS com acesso a 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 DBMS_DCAT Package.
Ação Quem é o usuário Descrição
Criar políticas Administrador do Database Data Catalog

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

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 AWS Glue Data Catalog e consultar o armazenamento de objetos S3. O usuário chama DBMS_CLOUD.CREATE_CREDENTIAL para criar as credenciais do usuário.
Observação

Somente as credenciais do Amazon Web Services (AWS) são suportadas. Não há suporte para as credenciais do AWS ARN (Amazon Resource Names).

Mais informações: DBMS_CLOUD CREATE_CREDENTIAL Procedimento

Conexão

Administrador do Database Data Catalog

Estabeleça 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 DBMS_DCAT.SET_DATA_CATALOG_CREDENTIAL usando uma credencial da AWS (Procedimento CREATE_CREDENTIAL) para especificar a instância do AWS Glue Data Catalog de destino.
  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 DBMS_DCAT.SET_DATA_CATALOG_CONN usando um ponto final do serviço AWS Glue

Depois que a conexão tiver sido feita, 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 Procedure, UNSET_DATA_CATALOG_CONN Procedure, SET_DATA_CATALOG_CREDENTIAL Procedure, SET_OBJECT_STORE_CREDENTIAL Procedure.

Sincronizar

Administrador do Database Data Catalog

O usuário pode iniciar manualmente uma sincronização com o AWS Glue Data Catalogs conectado 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 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 tabelas externas sincronizadas existentes se os metadados do AWS Glue tiverem sido alterados.
Mais informações: Consulte RUN_SYNC Procedimento, CREATE_SYNC_JOB Procedimento, DROP_SYNC_JOB Procedimento, Mapeamento de Sincronização

Monitorar Sincronização

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 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 Serviço Data Catalog do banco de dados ou o Administrador do Banco de Dados deve conceder privilégios READ em tabelas externas geradas para usuários analistas de dados. Isso permite que os analistas de dados consultem as tabelas externas geradas.

Consulta

Analista de Dados

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

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

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

Encerrar conexões

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 AWS Glue Data Catalog conectado e as tabelas externas derivadas do catálogo. Essa 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: Consultar com o Catálogo de Dados do AWS Glue

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 AWS Glue Data Catalog.

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 é associado ao AWS Glue Data Catalog e ao Amazon S3. O catálogo de dados é sincronizado com o Autonomous Database para criar tabelas externas nos 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 rastreou 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. Associe 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 em que 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 feita, use a view all_glue_databases para localizar quais bancos de dados estão dentro de um AWS Glue Data Catalog.
      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 na parte superior 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 sobre armazenamentos de conjuntos de dados no Amazon S3.
      SELECT * FROM glue$parq_tpcds_oracle_parq.store;