Trabalhar com unidades de compartilhamento de dados do AWS Data Exchange como produtor - Amazon Redshift

Trabalhar com unidades de compartilhamento de dados do AWS Data Exchange como produtor

Se você for um administrador de cluster de produtor, siga estas etapas para gerenciar unidades de compartilhamento de dados do AWS Data Exchange no console do Amazon Redshift:

  1. Crie unidades de compartilhamento de dados em seu cluster para compartilhar dados no AWS Data Exchange e conceder acesso ao AWS Data Exchange para as unidades de compartilhamento de dados.

    Superusuário de cluster e proprietários de banco de dados podem criar conjuntos de dados. Cada datashare é associado a um banco de dados durante a criação. Somente objetos desse banco de dados podem ser compartilhados nesse datashare. Vários datashares podem ser criados no mesmo banco de dados com a mesma granularidade ou diferente de objetos. Não há limite para o número de unidades de compartilhamento de dados que você pode criar em um cluster.

    Também é possível usar o console do Amazon Redshift para criar datashares. Para obter mais informações, consulte Criar datashares.

    Use a opção MANAGEDBY ADX para conceder implicitamente acesso à unidade de compartilhamento de dados para o AWS Data Exchange ao executar a instrução CREATE DATASHARE. Isso indica que o AWS Data Exchange gerencia essa unidade de compartilhamento de dados. Você só pode usar a opção MANAGEDBY ADX ao criar uma nova unidade de compartilhamento de dados. Não é possível usar a instrução ALTER DATASHARE para modificar uma unidade de compartilhamento de dados existente para adicionar a opção MANAGEDBY ADX. Depois que a unidade de compartilhamento de dados é criada com a opção MANAGEDBY ADX, somente o AWS Data Exchange pode acessar e gerenciar a unidade de compartilhamento de dados.

    CREATE DATASHARE salesshare [[SET] MANAGEDBY [=] {ADX} ];
  2. Adicione objetos às unidades de compartilhamento de dados. O administrador do produtor continua gerenciando objetos de unidades de compartilhamento de dados que estão disponíveis em uma unidade de compartilhamento de dados do AWS Data Exchange.

    Para adicionar objetos a um datashare, adicione o esquema antes de adicionar objetos. Quando você adiciona um esquema, o Amazon Redshift não adiciona todos os objetos abaixo dele. Você deve adicioná-las explicitamente. Para obter mais informações, consulte ALTER DATASHARE.

    ALTER DATASHARE salesshare ADD SCHEMA PUBLIC; ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift; ALTER DATASHARE salesshare ADD ALL TABLES IN SCHEMA PUBLIC;

    Você também pode adicionar visualizações a um datashare.

    CREATE VIEW public.sales_data_summary_view AS SELECT * FROM public.tickit_sales_redshift; ALTER DATASHARE salesshare ADD TABLE public.sales_data_summary_view;

    Use ALTER DATASHARE para compartilhar esquemas, tabelas, visualizações e funções em um determinado esquema. Os superusuários, os proprietários da unidade de compartilhamento de dados ou os usuários que têm a permissão ALTER ou ALL na unidade podem alterar a unidade de compartilhamento de dados para adicionar ou remover objetos. Os usuários devem ter permissões para adicionar ou remover objetos da unidade de compartilhamento de dados. Os usuários também devem ser os proprietários dos objetos ou ter permissões SELECT, USAGE ou ALL nos objetos.

    Use a cláusula INCLUDENEW para adicionar novas tabelas, visualizações ou funções definidas pelo usuário (UDFs) do SQL criadas em um esquema especificado ao datashare. Somente superusuários podem alterar essa propriedade para cada par datashare-esquema.

    ALTER DATASHARE salesshare ADD SCHEMA PUBLIC; ALTER DATASHARE salesshare SET INCLUDENEW = TRUE FOR SCHEMA PUBLIC;

    Também é possível usar o console do Amazon Redshift para adicionar ou remover objetos de datashare. Para mais informações, consulte Adicionando objetos do datashare a datashares, Remover objetos do datashare de datashares e Editar unidades de compartilhamento de dados AWS Data Exchange.

  3. Para autorizar o acesso às unidades de compartilhamento de dados para o AWS Data Exchange, siga um destes procedimentos:

    • Autorize explicitamente o acesso à unidade de compartilhamento de dados para o AWS Data Exchange usando a palavra-chave ADX na API aws redshift authorize-data-share. Isso permite que o AWS Data Exchange reconheça a unidade de compartilhamento de dados na conta de serviço e gerencie a associação de consumidores à unidade de compartilhamento de dados.

      aws redshift authorize-data-share --data-share-arn arn:aws:redshift:us-east-1:{PRODUCER_ACCOUNT}:datashare:{PRODUCER_CLUSTER_NAMESPACE}/salesshare --consumer-identifier ADX

      Use uma chave condicional ConsumerIdentifier para que as APIs AuthorizeDataShare e DeauthorizeDataShare permitam ou neguem explicitamente que o AWS Data Exchange faça chamadas às duas APIs na política do IAM.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Deny", "Action": [ "redshift:AuthorizeDataShare", "redshift:DeauthorizeDataShare" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "redshift:ConsumerIdentifier": "ADX" } } } ] }
    • Use o console do Amazon Redshift para autorizar ou remover a autorização das unidades de compartilhamento de dados do AWS Data Exchange. Para obter mais informações, consulte Autorizar ou remover autorização de unidades de compartilhamento de dados (pré-visualização).

    • Opcionalmente, você pode autorizar implicitamente o acesso à unidade de compartilhamento de dados AWS Data Exchange importando a unidade de compartilhamento de dados para um conjunto de dados do AWS Data Exchange.

    Para remover a autorização para acesso à unidade de compartilhamento de dados do AWS Data Exchange, use a palavra-chave ADX na operação de API aws redshift deauthorize-data-share. Com isso, você permite que o AWS Data Exchange reconheça a unidade de compartilhamento de dados na conta de serviço e gerencie a remoção da associação da unidade de compartilhamento de dados.

    aws redshift deauthorize-data-share --data-share-arn arn:aws:redshift:us-east-1:{PRODUCER_ACCOUNT}:datashare:{PRODUCER_CLUSTER_NAMESPACE}/salesshare --consumer-identifier ADX
  4. Liste os datashares criados no cluster e examine o conteúdo do datashare.

    O exemplo a seguir exibe as informações de uma unidade de compartilhamento de dados chamada salesshare. Para ter mais informações, consulte DESC DATASHARE e SHOW DATASHARES.

    DESC DATASHARE salesshare; producer_account | producer_namespace | share_type | share_name | object_type | object_name | include_new -------------------+--------------------------------------+------------+------------+-------------+--------------------------------+------------------- 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_users_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_venue_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_category_redshift| 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_date_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_event_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_listing_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_sales_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | schema | public | t 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | view | public.sales_data_summary_view |

    O exemplo a seguir exibe os datashares de saída em um cluster de produtores.

    SHOW DATASHARES LIKE 'sales%';

    A saída será semelhante à seguinte.

    share_name | share_owner | source_database | consumer_database | share_type | createdate | is_publicaccessible | share_acl | producer_account | producer_namespace -----------+--------------+-----------------+-------------------+------------+---------------------+----------------------+-----------+------------------+--------------------------------------- salesshare | 100 | dev | | OUTBOUND | 2020-12-09 02:27:08 | True | | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d

    Para ter mais informações, consulte DESC DATASHARE e SHOW DATASHARES.

    Você também pode usar SVV_DATASHARES, SVV_DATASHARE_CONSUMERS e SVV_DATASHARE_OBJECTS para exibir os datashares, os objetos dentro do datashare e os consumidores de datashare.

  5. Descarte datashares. Recomendamos não excluir uma unidade de compartilhamento de dados do AWS Data Exchange compartilhada com outras Contas da AWS usando a instrução DROP DATASHARE. Essas contas perderão acesso à unidade de compartilhamento de dados. Essa ação é irreversível. Isso pode violar os termos da oferta de produtos de dados no AWS Data Exchange. Para excluir uma unidade de compartilhamento de dados do AWS Data Exchange, consulte Observações sobre o uso de DROP DATASHARE.

    O exemplo a seguir descarta uma unidade de compartilhamento de dados chamado salesshare.

    DROP DATASHARE salesshare; ERROR: Drop of ADX-managed datashare salesshare requires session variable datashare_break_glass_session_var to be set to value '620c871f890c49'

    Para permitir o descarte de uma unidade de compartilhamento de dados do AWS Data Exchange, defina a variável datashare_break_glass_session_var e execute a instrução DROP DATASHARE novamente. Para excluir uma unidade de compartilhamento de dados do AWS Data Exchange, consulte Observações sobre o uso de DROP DATASHARE.

    Também é possível usar o console do Amazon Redshift para excluir datashares. Para obter mais informações, consulte Excluir unidades de compartilhamento de dados AWS Data Exchange criadas em sua conta.

  6. Use ALTER DATASHARE para remover objetos de datashares em qualquer ponto do datashare. Use REVOKE USAGE ON para revogar permissões no datashare para determinados consumidores. Ele revoga as permissões USAGE em objetos dentro de uma unidade de compartilhamento de dados e interrompe instantaneamente o acesso a todos os clusters de consumidores. Listar conjuntos de dados e as consultas de metadados, como listar bancos de dados e tabelas, não retorna os objetos compartilhados depois que o acesso é revogado.

    ALTER DATASHARE salesshare REMOVE TABLE public.tickit_sales_redshift;

    Também é possível usar o console do Amazon Redshift para editar datashares. Para obter mais informações, consulte Editar unidades de compartilhamento de dados AWS Data Exchange.

  7. Conceder ou revogar GRANT USAGE de unidades de compartilhamento de dados do AWS Data Exchange. Não é possível conceder nem revogar GRANT USAGE na unidade de compartilhamento de dados do AWS Data Exchange. O exemplo a seguir mostra um erro quando a permissão GRANT USAGE é concedida a uma Conta da AWS para uma unidade de compartilhamento de dados que o AWS Data Exchange gerencia.

    CREATE DATASHARE salesshare MANAGEDBY ADX;
    GRANT USAGE ON DATASHARE salesshare TO ACCOUNT '012345678910'; ERROR: Permission denied to add/remove consumer to/from datashare salesshare. Datashare consumers are managed by ADX.

    Para obter mais informações, consulte GRANT ou REVOKE.

Se você for um administrador de cluster de produtor, siga estas etapas para criar e publicar um produto de unidade de compartilhamento de dados do AWS Data Exchange no console: