Consulta ao AWS Glue Data Catalog - Amazon Redshift

Consulta ao AWS Glue Data Catalog

É possível usar o editor de consultas v2 para consultar dados catalogados no AWS Glue Data Catalog. Por padrão, o AWS Glue Data Catalog está listado como um banco de dados do editor de consultas v2 chamado awsdatacatalog. A consulta ao AWS Glue Data Catalog não está disponível em todas as Regiões da AWS do Amazon Redshift. Use o comando SHOW para determinar se esse recurso está disponível. Para obter mais informações sobre o AWS Glue, consulte O que é o AWS Glue? no Guia do desenvolvedor do AWS Glue.

nota

A consulta ao AWS Glue Data Catalog só é permitida nos clusters do tipo de nó RA3 do Amazon Redshift e no Amazon Redshift sem servidor.

É possível configurar o data warehouse e visualizar os objetos do banco de dados do AWS Glue catalogados usando os seguintes comandos SQL:

  • SHOW: para mostrar se awsdatacatalog está montado para o data warehouse conectado no momento. Por exemplo, para mostrar o valor do parâmetro data_catalog_auto_mount, execute:

    SHOW data_catalog_auto_mount;

    Para obter mais informações, consulte SHOW no Guia do desenvolvedor de banco de dados do Amazon Redshift.

  • ALTER SYSTEM: para alterar a configuração no nível de sistema de data_catalog_auto_mount. Por exemplo, para alterar o valor do parâmetro data_catalog_auto_mount para on, execute:

    ALTER SYSTEM SET data_catalog_auto_mount = on;

    A alteração entra em vigor quando um cluster provisionado é reinicializado ou um grupo de trabalho sem servidor é automaticamente pausado e retomado. Para obter mais informações, consulte ALTER SYSTEM no Guia do desenvolvedor de banco de dados do Amazon Redshift.

  • SHOW SCHEMAS: mostra uma lista de esquemas. Os esquemas no banco de dados chamado awsdatacatalog representam os bancos de dados do AWS Glue catalogados no AWS Glue Data Catalog. Por exemplo, para mostrar esses esquemas, execute:

    SHOW SCHEMAS FROM DATABASE awsdatacatalog;

    Para obter mais informações, consulte SHOW SCHEMAS no Guia do desenvolvedor de banco de dados do Amazon Redshift.

  • SHOW TABLES: mostra uma lista de tabelas em um esquema. Por exemplo, para mostrar as tabelas no banco de dados do AWS Glue Data Catalog chamado awsdatacatalog que estão no esquema myglue, execute:

    SHOW TABLES FROM SCHEMA awsdatacatalog.myschema;

    Para obter mais informações, consulte SHOW TABLES no Guia do desenvolvedor de banco de dados do Amazon Redshift.

  • SHOW COLUMNS: mostra uma lista de colunas em uma tabela. Por exemplo, para mostrar as colunas no banco de dados do AWS Glue Data Catalog chamado awsdatacatalog que estão no esquema myglue e na tabela mytable, execute:

    SHOW COLUMNS FROM TABLE awsdatacatalog.myglue.mytable;

    Para obter mais informações, consulte SHOW COLUMNS no Guia do desenvolvedor de banco de dados do Amazon Redshift.

Para conceder ao seu usuário ou perfil do IAM permissão para consultar o AWS Glue Data Catalog, siga estas etapas
  1. No painel de visualização em árvore, conecte-se ao banco de dados inicial no cluster provisionado ou grupo de trabalho sem servidor usando o método de autenticação Nome de usuário e senha do banco de dados. Por exemplo, conecte-se ao banco de dados dev usando o usuário administrador e a senha que você usou ao criar o cluster ou o grupo de trabalho.

  2. Em um guia do editor, execute a seguinte instrução de SQL para conceder ao usuário do IAM acesso ao AWS Glue Data Catalog.

    GRANT USAGE ON DATABASE awsdatacatalog to "IAM:myIAMUser"

    Em que IAM:myIAMUser é um usuário do IAM ao qual você deseja conceder privilégio de uso ao AWS Glue Data Catalog. Como alternativa, você pode conceder privilégio de uso a IAMR:myIAMRole para um perfil do IAM.

  3. No painel de exibição em árvore, edite ou exclua a conexão com o cluster ou o grupo de trabalho que você criou anteriormente. Conecte-se ao cluster ou ao grupo de trabalho de uma das seguintes maneiras:

    • Para acessar o banco de dados awsdatacatalog por meio de um cluster, você deve usar o método de autenticação Credenciais temporárias usando sua identidade do IAM. Para obter mais informações sobre esse método de autenticação, consulte Conectar-se a um banco de dados do Amazon Redshift. Talvez o administrador do editor de consultas v2 precise definir as Configurações de conta para que a conta exiba esse método de autenticação na janela de conexão.

    • Para acessar o banco de dados awsdatacatalog por meio de um grupo de trabalho, você deve usar o método de autenticação Usuário federado. Para obter mais informações sobre esse método de autenticação, consulte Conectar-se a um banco de dados do Amazon Redshift.

  4. Com o privilégio concedido, você pode usar sua identidade do IAM para executar o SQL em seu AWS Glue Data Catalog.

Depois de se conectar, você pode usar o editor de consultas v2 para consultar dados catalogados em AWS Glue Data Catalog. No painel de exibição em árvore do editor de consultas v2, selecione o cluster ou o grupo de trabalho e o banco de dados awsdatacatalog. No painel do editor ou do notebook, confirme se o cluster ou o grupo de trabalho correto foi escolhido. O banco de dados escolhido deve ser o banco de dados inicial do Amazon Redshift, como dev. Para obter informações sobre a criação de consultas, consulte Autorizar e executar consultas e Autorizar e executar blocos de anotações. O banco de dados denominado awsdatacatalog é reservado para fazer referência ao banco de dados externo do catálogo de dados em sua conta. As consultas no banco de dados awsdatacatalog só podem ser somente leitura. Use a notação de três partes para fazer referência à tabela em sua instrução SELECT. Em que a primeira parte é o nome do banco de dados, a segunda parte é o nome do banco de dados AWS Glue e a terceira parte é o nome da tabela AWS Glue.

SELECT * FROM awsdatacatalog.<aws-glue-db-name>.<aws-glue-table-name>;

Você pode realizar vários cenários que leem os dados de AWS Glue Data Catalog e preenchem as tabelas do Amazon Redshift.

O exemplo de SQL a seguir une duas tabelas definidas em AWS Glue.

SELECT pn.emp_id, alias, role, project_name FROM "awsdatacatalog"."empl_db"."project_name_table" pn, "awsdatacatalog"."empl_db"."project_alias_table" pa WHERE pn.emp_id = pa.emp_id;

O exemplo de SQL a seguir cria uma tabela do Amazon Redshift e a preenche com dados de uma união de duas tabelas AWS Glue.

CREATE TABLE dev.public.glue AS SELECT pn.emp_id, alias, role, project_name FROM "awsdatacatalog"."empl_db"."project_name_table" pn, "awsdatacatalog"."empl_db"."project_alias_table" pa WHERE pn.emp_id = pa.emp_id;