

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Conceitos básicos das unidades de compartilhamento de dados gerenciadas pelo AWS Lake Formation
<a name="lf-getting-started"></a>

Com o Amazon Redshift, é possível acessar e compartilhar dados em tempo real entre contas da AWS e clusters do Amazon Redshift por meio de unidades de compartilhamento de dados gerenciadas pelo AWS Lake Formation. As unidades de compartilhamento de dados do AWS Lake Formation permitem que os provedores de dados compartilhem dados em tempo real com segurança entre seu data lake do Amazon S3 e qualquer consumidor, inclusive com outras contas da AWS e clusters do Amazon Redshift.

# Trabalhar com unidades de compartilhamento de dados gerenciadas pelo Lake Formation como produtor
<a name="lake-formation-getting-started-producer"></a>

Com o Amazon Redshift, você pode acessar e analisar dados compartilhados por meio de unidades de compartilhamento de dados do AWS Lake Formation. As unidades de compartilhamento de dados do AWS Lake Formation permitem o compartilhamento seguro de dados entre contas da AWS e clusters do Amazon Redshift sem a necessidade de copiar ou mover os dados subjacentes.

O compartilhamento de dados com o AWS Lake Formation permite que você defina centralmente as permissões do AWS Lake Formation para unidades de compartilhamento de dados do Amazon Redshift e restrinja o acesso dos usuários aos objetos em uma unidade de compartilhamento de dados.

Com o Amazon Redshift, é possível compartilhar dados em tempo real com segurança entre contas da AWS e clusters do Amazon Redshift usando unidades de compartilhamento de dados gerenciadas pelo AWS Lake Formation como produtor. Uma unidade de compartilhamento de dados gerenciada pelo Lake Formation é um objeto que permite que você compartilhe dados em tempo real do seu cluster do Amazon Redshift com outras contas e serviços da AWS.

Como administrador do cluster produtor ou do grupo de trabalho, siga estas etapas para compartilhar unidades de compartilhamento de dados com o Lake Formation:

1. Crie unidades de compartilhamento de dados em seu cluster e autorize o AWS Lake Formation a acessá-las.

   Somente o superusuário do cluster e proprietários de bancos de dados podem criar unidades de compartilhamento 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.

   ```
   CREATE DATASHARE salesshare;
   ```

1. Adicione objetos à unidade de compartilhamento de dados. O administrador do cluster produtor ou do grupo de trabalho continua gerenciando objetos da unidade de compartilhamento de dados disponíveis. 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](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_DATASHARE.html). 

   ```
   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. As visualizações compatíveis são as visualizações padrão, as visualizações de vinculação tardia e as visões materializadas.

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

   Use ALTER DATASHARE para compartilhar esquemas, tabelas e visualizações em 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 de bancos de dados 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 e visualizações criadas em um esquema especificado à unidade de compartilhamento de dados. 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;
   ```

1. Conceda acesso à unidade de compartilhamento de dados para uma conta de administrador do Lake Formation.

   ```
   GRANT USAGE ON DATASHARE salesshare TO ACCOUNT '012345678910' VIA DATA CATALOG;
   ```

   Para revogar o uso, use o comando a seguir.

   ```
   REVOKE USAGE ON DATASHARE salesshare FROM ACCOUNT '012345678910' VIA DATA CATALOG;
   ```

1. Autorize o acesso à unidade de compartilhamento de dados para o Lake Formation usando a operação de API `aws redshift authorize-data-share`. Isso permite que o Lake Formation 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 {"DataCatalog/<consumer-account-id>"}
   ```

    Para remover a autorização das unidades de compartilhamento de dados gerenciadas pelo Lake Formation, use a operação de API `aws redshift deauthorize-data-share`. Com isso, você permite que o AWS Lake Formation reconheça a unidade de compartilhamento de dados na conta de serviço e remova a autorização. 

   ```
   aws redshift deauthorize-data-share 
   --data-share-arn arn:aws:redshift:us-east-1:{PRODUCER_ACCOUNT}:datashare:{PRODUCER_CLUSTER_NAMESPACE}/salesshare 
   --consumer-identifier {"DataCatalog/<consumer-account-id>"}
   ```

    A qualquer momento, se o administrador do cluster produtor ou do grupo de trabalho decidir que não há mais necessidade de compartilhar dados com o cluster consumidor ou o grupo de trabalho, ele poderá usar DROP DATASHARE para excluir a unidade de compartilhamento de dados, desautorizar a unidade de compartilhamento de dados ou revogar permissões da unidade de compartilhamento de dados. As permissões e os objetos associados no Lake Formation não são excluídos automaticamente. 

   ```
   DROP DATASHARE salesshare;
   ```

    Depois de autorizar a conta do Lake Formation a gerenciar a unidade de compartilhamento de dados, o administrador do Lake Formation poderá descobrir a unidade de compartilhamento de dados compartilhada, associar a unidade de compartilhamento de dados com um ARN do Catálogo de Dados e criar um banco de dados no AWS Glue Data Catalog vinculado à unidade de compartilhamento de dados. Para associar unidades de compartilhamento de dados utilizando a AWS CLI, use o comando [associate-data-share-consumer](https://docs.aws.amazon.com/cli/latest/reference/redshift/associate-data-share-consumer.html). Para compartilhar uma unidade de compartilhamento de dados entre Regiões da AWS, especifique o parâmetro `--region` no comando `associate-data-share-consumer` ou use o Console da AWS para escolher os consumidores de dados. O exemplo a seguir demonstra como compartilhar uma unidade de compartilhamento de dados gerenciada pelo Lake Formation entre regiões. 

   ```
   aws redshift associate-data-share-consumer --region <region-1>
   --data-share-arn 'arn:aws:redshift:us-east-1:12345678912:datashare:035c45ea-61ce-86f0-8b75-19ac6102c3b7/sample_share' 
   --consumer-arn 'arn:aws:glue:<region-1>:111912345678:catalog'
   ```

   O administrador do Lake Formation também deve criar recursos locais que definam como os objetos na unidade de compartilhamento de dados devem ser mapeados para objetos do Lake Formation. Para obter mais informações sobre como descobrir unidades de compartilhamento de dados e criar recursos locais, consulte [Gerenciar permissões para dados em uma unidade de compartilhamento de dados do Amazon Redshift](https://docs.aws.amazon.com/lake-formation/latest/dg/data-sharing-redshift.html). 

# Trabalhar com unidades de compartilhamento de dados gerenciadas pelo Lake Formation como consumidor
<a name="lake-formation-getting-started-consumer"></a>

Com o Amazon Redshift, é possível acessar e analisar dados compartilhados com você por meio de unidades de compartilhamento de dados do AWS Lake Formation. Uma unidade de compartilhamento de dados é um produto de dados que contém uma coleção de objetos de dados, como tabelas ou bancos de dados, de diferentes fontes de dados. 

 Depois que o administrador do AWS Lake Formation descobre o convite para a unidade de compartilhamento de dados e cria um banco de dados no AWS Glue Data Catalog vinculado à unidade de compartilhamento de dados, o administrador do cluster consumidor ou do grupo de trabalho pode associar o cluster à unidade de compartilhamento de dados e ao banco de dados no AWS Glue Data Catalog, criar um banco de dados local para o cluster consumidor ou o grupo de trabalho e conceder acesso a usuários e funções no cluster consumidor do Amazon Redshift para começar a realizar consultas. Siga estas etapas para configurar as permissões de consulta. 

1. No console do Amazon Redshift, crie um cluster do Amazon Redshift para funcionar como o cluster consumidor ou o grupo de trabalho, se necessário. Para obter informações sobre como criar um cluster, consulte [Criar um cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html#create-cluster).

1. Para listar a quais bancos de dados no cluster consumidor ou grupo de trabalho do AWS Glue Data Catalog os usuários têm acesso, execute o comando [SHOW DATABASES](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW_DATABASES.html).

   ```
   SHOW DATABASES FROM DATA CATALOG [ACCOUNT <account-id>,<account-id2>] [LIKE <expression>]
   ```

   Isso lista os recursos que estão disponíveis no Catálogo de Dados, como o ARN do banco de dados do AWS Glue, o nome do banco de dados e as informações sobre a unidade de compartilhamento de dados.

1. Usando o ARN do banco de dados do AWS Glue de SHOW DATABASES, crie um banco de dados local no cluster consumidor ou no grupo de trabalho. Para obter mais informações, consulte [CREATE DATABASE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_DATABASE.html).

   ```
   CREATE DATABASE lf_db FROM ARN <lake-formation-database-ARN> WITH [NO] DATA CATALOG SCHEMA [<schema>];
   ```

1. Conceda acesso em bancos de dados e referências de esquema criadas a partir das unidades de compartilhamento de dados para usuários e funções no cluster consumidor ou no grupo de trabalho conforme necessário. Para obter mais informações, consulte [GRANT](https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html) ou [REVOKE](https://docs.aws.amazon.com//redshift/latest/dg/r_REVOKE.html). Observe que os usuários criados pelo comando [CREATE USER](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_USER.html) não podem acessar objetos em unidades de compartilhamento de dados que foram compartilhadas com o Lake Formation. Somente usuários com acesso ao Redshift e ao Lake Formation podem acessar unidades de compartilhamento de dados que foram compartilhadas com o Lake Formation. 

   ```
   GRANT USAGE ON DATABASE sales_db TO IAM:Bob;
   ```

    Como administrador do cluster consumidor ou do grupo de trabalho, você só pode atribuir permissões em todo o banco de dados criado a partir da unidade de compartilhamento de dados para os usuários e funções. Em alguns casos, você precisa de controles refinados em um subconjunto de objetos de banco de dados criados a partir do datashare. 

    Você também pode criar exibições de vinculação tardia sobre objetos compartilhados e usá-las para atribuir permissões detalhadas. Você também pode considerar que os clusters produtores ou os grupos de trabalho criem unidades de compartilhamento de dados adicionais para você com a granularidade necessária. Você pode criar quantas referências de esquema quiser para o banco de dados criado a partir do datashare. 

1. Os usuários do banco de dados podem usar as visualizações SVV\$1EXTERNAL\$1TABLES e SVV\$1EXTERNAL\$1COLUMNS para encontrar todas as tabelas ou colunas compartilhadas no banco de dados do AWS Glue.

   ```
   SELECT * from svv_external_tables WHERE redshift_database_name = 'lf_db';
                           
   SELECT * from svv_external_columns WHERE redshift_database_name = 'lf_db';
   ```

1. Consultar dados nos objetos compartilhados nos datashares.

   Usuários e funções com permissões em bancos de dados consumidores e esquemas em clusters consumidores ou grupos de trabalho podem explorar e navegar nos metadados de quaisquer objetos compartilhados. Eles também podem explorar e navegar em objetos locais em um cluster consumidor. Para fazer isso, eles podem usar drivers JDBC ou ODBC, ou as visualizações SVV\$1ALL e SVV\$1EXTERNAL.

   ```
   SELECT * FROM lf_db.schema.table;
   ```

   Você só pode usar instruções SELECT em objetos compartilhados. No entanto, você pode criar tabelas no cluster de consumidores consultando os dados dos objetos compartilhados em um banco de dados local diferente.

   ```
   // Connect to a local cluster database
               
   // Create a view on shared objects and access it.
   
   CREATE VIEW sales_data 
   AS SELECT * 
   FROM sales_db.public.tickit_sales_redshift 
   WITH NO SCHEMA BINDING;
   
   SELECT * FROM sales_data;
   ```