

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criação de links de recursos
<a name="creating-resource-links"></a>

Links de recursos são objetos do Catálogo de Dados que são links para bancos de dados e tabelas de metadados — normalmente para bancos de dados e tabelas compartilhados de outras contas. AWS Eles ajudam a permitir o acesso entre contas aos dados no data lake em todas as AWS regiões.

**nota**  
O Lake Formation suporta a consulta de tabelas do Catálogo de Dados em todas as AWS regiões. Você pode acessar os bancos de dados e tabelas do Catálogo de Dados de qualquer AWS região criando links de recursos nessas regiões que apontam para bancos de dados e tabelas compartilhados em diferentes regiões.

**Topics**
+ [Como os links de recursos funcionam no Lake Formation](resource-links-about.md)
+ [Como criar um link de recurso para uma tabela compartilhada do catálogo de dados](create-resource-link-table.md)
+ [Como criar um link de recurso para um banco de dados compartilhado do catálogo de dados](create-resource-link-database.md)
+ [Manipulação de links de recursos em AWS Glue APIs](resource-links-glue-apis.md)

# Como os links de recursos funcionam no Lake Formation
<a name="resource-links-about"></a>

Um *link de recurso* é um objeto do catálogo de dados que é um link para um banco de dados, ou uma tabela local, ou compartilhada. Depois de criar um link de recurso para um banco de dados ou tabela, você pode usar o nome do link de recurso onde quer que use o nome do banco de dados ou da tabela. Juntamente com as tabelas que você possui ou que são compartilhadas com você, os links de recursos de tabela são retornados pelo `glue:GetTables()` e aparecem como entradas na página **Tabelas** do console do Lake Formation. Os links de recursos para bancos de dados agem de maneira semelhante.

A criação de um link de recurso para um banco de dados ou tabela permite que você:
+ Atribua um nome diferente a um banco de dados ou tabela em seu catálogo de dados. Isso é especialmente útil se AWS contas diferentes compartilharem bancos de dados ou tabelas com o mesmo nome, ou se vários bancos de dados em sua conta tiverem tabelas com o mesmo nome.
+ Acesse os bancos de dados e tabelas do Catálogo de Dados de qualquer AWS região criando links de recursos nessas regiões apontando para o banco de dados e tabelas em outra região. Você pode executar consultas em qualquer região com esses links de recursos usando o Athena, o Amazon EMR e executar trabalhos do AWS Glue no ETL Spark, sem copiar os dados de origem nem os metadados no catálogo de dados do Glue. 
+ Use AWS serviços integrados, como Amazon Athena o Amazon Redshift Spectrum, para executar consultas que acessam bancos de dados ou tabelas compartilhados. Alguns serviços integrados não podem acessar diretamente bancos de dados ou tabelas entre contas. No entanto, eles podem acessar links de recursos em sua conta para bancos de dados e tabelas em outras contas.

**nota**  
Você não precisa criar um link de recurso para referenciar um banco de dados ou tabela compartilhados em scripts de extração, transformação e carregamento (ETL) do AWS Glue. No entanto, para evitar ambiguidades quando várias contas da AWS compartilham um banco de dados ou tabela com o mesmo nome, você pode criar e usar um link de recurso ou especificar a ID do catálogo ao invocar operações de ETL.

O exemplo a seguir mostra a página **Tabelas** do console Lake Formation, que lista dois links de recursos. Os nomes dos links de recursos são sempre exibidos em itálico. Cada link de recurso é exibido junto com o nome e o proprietário do recurso compartilhado vinculado. Neste exemplo, um administrador de data lake na AWS conta 1111-2222-3333 compartilhou as tabelas `inventory` e `incidents` com a conta 1234-5678-9012. Em seguida, um usuário dessa conta criou links de recursos para essas tabelas compartilhadas.

![\[A página Tabelas mostra dois links de recursos. O nome do link do recurso é mostrado na coluna Nome, o nome da tabela compartilhada é mostrado na coluna Recurso compartilhado e a conta que compartilhou a tabela é mostrada na coluna Proprietário do recurso compartilhado.\]](http://docs.aws.amazon.com/pt_br/lake-formation/latest/dg/images/tables-with-links.png)


A seguir estão notas e restrições sobre links de recursos:
+ Os links de recursos são necessários para permitir que serviços integrados, como Athena e Redshift Spectrum, consultem os dados subjacentes das tabelas compartilhadas. As consultas nesses serviços integrados são construídas com base nos nomes dos links de recursos.
+ Supondo que a configuração **Usar somente o controle de acesso do IAM para novas tabelas nesse banco de dados** esteja desativada para o banco de dados que o contém, somente a entidade principal que criou um link de recurso pode visualizá-lo e acessá-lo. Para permitir que outras entidades principais da sua conta acessem um link de recurso, conceda a permissão `DESCRIBE` nela. Para permitir que outras pessoas descartem um link de recurso, conceda a permissão `DROP` para ele. Os administradores do data lake podem acessar todos os links de recursos na conta. Para descartar um link de recurso criado por outra entidade principal, o administrador do data lake deve primeiro conceder a si a permissão `DROP` no link do recurso. Para obter mais informações, consulte [Referência de permissões do Lake Formation](lf-permissions-reference.md).
**Importante**  
Conceder permissões em um link de recurso não concede permissões no banco de dados ou tabela de destino (vinculado). Você deve conceder permissões no destino separadamente.
+ Para criar um link de recurso, você precisa da `CREATE_DATABASE` permissão `CREATE_TABLE` ou do Lake Formation, bem como da permissão `glue:CreateTable` or `glue:CreateDatabase` AWS Identity and Access Management (IAM).
+ Você pode criar links de recursos para recursos locais (próprios) do Catálogo de Dados, bem como para recursos compartilhados com sua AWS conta.
+ Quando você cria um link de recurso, nenhuma verificação é executada para ver se o recurso compartilhado de destino existe ou se você tem permissões entre contas no recurso. Isso permite que você crie o link do recurso e o recurso compartilhado em qualquer ordem.
+ Se você excluir um link de recurso, o recurso compartilhado vinculado não será descartado. Se você descartar um recurso compartilhado, os links de recursos para esse recurso não serão excluídos.
+ É possível criar cadeias de links de recursos. No entanto, não há valor em fazer isso, pois APIs segue apenas o primeiro link do recurso.

**Consulte também:**  
[Conceder permissões nos recursos do Catálogo de Dados](granting-catalog-permissions.md)

# Como criar um link de recurso para uma tabela compartilhada do catálogo de dados
<a name="create-resource-link-table"></a>

Você pode criar um link de recurso para uma tabela compartilhada em qualquer AWS região usando o AWS Lake Formation console, a API ou AWS Command Line Interface (AWS CLI).

**Como criar um link de recurso para a tabela compartilhada (console)**

1. Abra o AWS Lake Formation console em [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/). Faça login como entidade principal que tem a permissão `CREATE_TABLE` do Lake Formation no banco de dados para conter o link do recurso.

1. No painel de navegação, selecione **Tabelas** em Data Catalog e escolha **Criar**, **Link de recurso**.

1. Na página **Criar link de recurso**, forneça as seguintes informações:  
**Nome do link de recurso**  
Digite um nome que siga as mesmas regras de um nome de tabela. O nome pode ser o mesmo da tabela compartilhada de destino.  
**Banco de dados**  
O banco de dados no catálogo de dados local para conter o link do recurso.  
**Região do proprietário de tabela compartilhada**  
Se você estiver criando o link do recurso em uma região diferente, selecione a região da tabela compartilhada de destino.  
**Tabela compartilhada**  
Selecione uma tabela compartilhada na lista ou digite um nome de tabela local (de propriedade) ou compartilhada.  
A lista contém todas as tabelas compartilhadas com sua conta. Anote o banco de dados e o ID da conta do proprietário listado em cada tabela. Caso você não veja uma tabela que saiba que foi compartilhada com sua conta, verifique o seguinte:  
   + Se você não for administrador do data lake, verifique se o administrador do data lake concedeu a você as permissões do Lake Formation na tabela.
   + Se você for administrador de um data lake e sua conta não estiver na mesma organização da AWS da conta concedente, certifique-se de ter aceitado o convite de compartilhamento de recursos AWS Resource Access Manager (AWS RAM) para o banco de dados. Para obter mais informações, consulte [Aceitando um convite de compartilhamento de recursos do AWS RAM](accepting-ram-invite.md).  
**Banco de dados da tabela compartilhada**  
Se você selecionou uma tabela compartilhada na lista, esse campo será preenchido com o banco de dados da tabela compartilhada na conta externa. Caso contrário, digite um banco de dados local (para um link de recurso para uma tabela local) ou o banco de dados da tabela compartilhada na conta externa.  
**Proprietário de tabela compartilhada**  
Se você selecionou uma tabela compartilhada na lista, esse campo será preenchido com o ID da conta do proprietário da tabela compartilhada. Caso contrário, insira o ID da sua AWS conta (para um link de recurso para uma tabela local) ou o ID da AWS conta que compartilhou a tabela.

1. Selecione **Criar** para criar o link do recurso.

   Em seguida, você pode exibir o nome do link do recurso na coluna **Nome** na página **Tabelas**.

1. (Opcional) Conceda a permissão `DESCRIBE` do Lake Formation no link do recurso às entidades principais que devem ser capazes de exibir o link e acessar a tabela de destino.

   No entanto, conceder permissões em um link de recurso não implica que as permissões serão concedidas no banco de dados ou tabela de destino (vinculado). Você deve conceder permissões no banco de dados de destino separadamente para que o table/resource link fique visível no Athena.

**Como criar um link de recurso para uma tabela compartilhada na mesma região (AWS CLI)**

1. Digite um comando semelhante ao seguinte:

   ```
   aws glue create-table --database-name myissues --table-input '{"Name":"my_customers","TargetTable":{"CatalogId":"111122223333","DatabaseName":"issues","Name":"customers"}}'
   ```

   Esse comando cria um link de recurso chamado `my_customers` para a tabela compartilhada `customers`, que está no banco de dados `issues` na conta AWS 1111-2222-3333. O link do recurso é armazenado no banco de dados local `myissues`.

1. (Opcional) Conceda a permissão `DESCRIBE` do Lake Formation no link do recurso às entidades principais que devem ser capazes de exibir o link e acessar a tabela de destino.

   No entanto, conceder permissões em um link de recurso não implica que as permissões serão concedidas na tabela de destino (vinculada). Você deve conceder permissões no banco de dados de destino separadamente para que o table/resource link fique visível no Athena.

**Como criar um link de recurso para uma tabela compartilhada em uma região diferente (AWS CLI)**

1. Digite um comando semelhante ao seguinte:

   ```
   aws glue create-table --region eu-west-1 --cli-input-json '{
       "CatalogId": "111122223333",
       "DatabaseName": "ireland_db",
       "TableInput": {
           "Name": "rl_useast1salestb_ireland",
           "TargetTable": {
               "CatalogId": "444455556666",
               "DatabaseName": "useast1_salesdb",
               "Region": "us-east-1",
               "Name":"useast1_salestb"
           }
       }
   }‘
   ```

   Esse comando cria um link de recurso nomeado `rl_useast1salestb_ireland` na região Europa (Irlanda) para a `useast1_salestb` tabela compartilhada, que está no `useast1_salesdb` banco de dados na conta 444455556666 AWS na região Leste dos EUA (Norte da Virgínia). O link do recurso é armazenado no banco de dados local `ireland_db`.

1. Conceda permissão `DESCRIBE` ao Lake Formation às entidades principais que devem ser capazes de exibir o link e acessar o destino do link por meio do link.

   No entanto, conceder permissões em um link de recurso não implica que as permissões serão concedidas na tabela de destino (vinculada). Você deve conceder permissões na tabela de destino separadamente para que o table/resource link fique visível no Athena.

**Consulte também:**  
[Como os links de recursos funcionam no Lake Formation](resource-links-about.md)
[`DESCRIBE`](lf-permissions-reference.md#perm-describe)

# Como criar um link de recurso para um banco de dados compartilhado do catálogo de dados
<a name="create-resource-link-database"></a>

Você pode criar um link de recurso para um banco de dados compartilhado usando o AWS Lake Formation console, a API ou AWS Command Line Interface (AWS CLI).

**Como criar um link de recurso para um banco de dados compartilhado (console)**

1. Abra o AWS Lake Formation console em [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/). Faça login como administrador de data lake ou como criador de banco de dados.

   Um criador de banco de dados é uma entidade principal que recebeu a permissão `CREATE_DATABASE` do Lake Formation.

1. No painel de navegação, selecione **Bancos de dados** e escolha **Criar**, **Link de recurso**.

1. Na página **Criar link de recurso**, forneça as seguintes informações:  
**Nome do link de recurso**  
Digite um nome que siga as mesmas regras de um nome de banco de dados. O nome pode ser o mesmo do banco de dados compartilhado de destino.  
**Catálogo de destinos**  
Selecione o catálogo de destino para o link do recurso do banco de dados.  
**Região do proprietário do banco de dados compartilhado**  
Se você estiver criando o link do recurso em uma região diferente, selecione a região do banco de dados compartilhado de destino.  
**Banco de dados compartilhado**  
Selecione um banco de dados na lista ou digite um nome de banco de dados local (de propriedade) ou compartilhado.  
A lista contém todos os bancos de dados compartilhados com sua conta. Anote o ID da conta do proprietário que está listado em cada banco de dados. Caso você não veja um banco de dados que você sabe que foi compartilhado com sua conta, verifique o seguinte:  
   + Se você não for administrador do data lake, verifique se o administrador do data lake concedeu a você as permissões do Lake Formation no banco de dados.
   + Se você for administrador de um data lake e sua conta não estiver na mesma organização da AWS da conta concedente, certifique-se de ter aceitado o convite de compartilhamento de recursos AWS Resource Access Manager (AWS RAM) para o banco de dados. Para obter mais informações, consulte [Aceitando um convite de compartilhamento de recursos do AWS RAM](accepting-ram-invite.md).  
**Proprietário do banco de dados compartilhado**  
Se você selecionou um banco de dados compartilhado na lista, esse campo será preenchido com o ID da conta do proprietário do banco de dados compartilhado. Caso contrário, insira o ID AWS da sua conta (para um link de recurso para um banco de dados local) ou o ID da AWS conta que compartilhou o banco de dados.  
**ID do catálogo do banco de dados compartilhado**  
Insira o ID do catálogo para o banco de dados compartilhado. Ao criar um link de recurso para um banco de dados compartilhado de outra conta da AWS , você precisa especificar esse ID de catálogo para identificar o Data Catalog da conta que contém o banco de dados de origem.  
Quando você seleciona um banco de dados compartilhado no menu suspenso, o sistema preenche automaticamente o ID do catálogo da conta que possui e compartilhou esse banco de dados com você.  
![\[A caixa de diálogo Detalhes do banco de dados tem o botão do Link de recurso selecionado, com os seguintes campos preenchidos: Nome do link de recurso, Banco de dados compartilhado, ID do proprietário do banco de dados compartilhado. O ID do proprietário do banco de dados compartilhado está desativado (somente leitura).\]](http://docs.aws.amazon.com/pt_br/lake-formation/latest/dg/images/create-resource-link-db.png)

1. Selecione **Criar** para criar o link do recurso.

   Em seguida, você pode exibir o nome do link do recurso na coluna **Nome** na página **Bancos de dados**.

1. (Opcional) Conceda a permissão `DESCRIBE` do Lake Formation no link do recurso às entidades principais da região da Europa (Irlanda), que devem ser capazes de exibir o link e acessar o banco de dados de destino.

   No entanto, conceder permissões em um link de recurso não implica que as permissões serão concedidas no banco de dados ou tabela de destino (vinculado). Você deve conceder permissões no banco de dados de destino separadamente para que o table/resource link fique visível no Athena.

**Como criar um link de recurso para um banco de dados compartilhado na mesma região (AWS CLI)**

1. Digite um comando semelhante ao seguinte:

   ```
   aws glue create-database --database-input '{"Name":"myissues","TargetDatabase":{"CatalogId":"111122223333","DatabaseName":"issues"}}'
   ```

   Esse comando cria um link de recurso chamado `myissues` para o banco de dados compartilhado`issues`, que está na AWS conta 1111-2222-3333. 

1. (Opcional) Conceda a permissão `DESCRIBE` do Lake Formation às entidades principais no link de recurso autorizadas a visualizar o link e acessar o banco de dados ou tabela de destino. 

   No entanto, conceder permissões em um link de recurso não implica que as permissões serão concedidas no banco de dados ou tabela de destino (vinculado). Você deve conceder permissões no banco de dados de destino separadamente para que o table/resource link fique visível no Athena.

**Como criar um link de recurso para um banco de dados compartilhado em uma região diferente (AWS CLI)**

1. Digite um comando semelhante ao seguinte:

   ```
   aws glue create-database --region eu-west-1 --cli-input-json '{
       "CatalogId": "111122223333",
       "DatabaseInput": {
         "Name": "rl_useast1shared_irelanddb",
         "TargetDatabase": {
             "CatalogId": "444455556666",
             "DatabaseName": "useast1shared_db",
             "Region": "us-east-1"
          }
       }
   }'
   ```

   Esse comando cria um link de recurso chamado `rl_useast1shared_irelanddb` na AWS conta 111122223333 na região Europa (Irlanda) para o banco de dados compartilhado`useast1shared_db`, que está na AWS conta 444455556666 na região Leste dos EUA (Norte da Virgínia). 

1. Conceda a permissão `DESCRIBE` do Lake Formation às entidades principais da região da Europa (Irlanda), que devem ser capazes de exibir o link e acessar o destino do link por meio do link.

**Consulte também:**  
[Como os links de recursos funcionam no Lake Formation](resource-links-about.md)
[`DESCRIBE`](lf-permissions-reference.md#perm-describe)

# Manipulação de links de recursos em AWS Glue APIs
<a name="resource-links-glue-apis"></a>

As tabelas a seguir explicam como o Catálogo de AWS Glue Dados APIs lida com links de recursos de banco de dados e tabelas. Para todas as operações de API do `Get*`, somente bancos de dados e tabelas nos quais o chamador tem permissões são retornados. Além disso, ao acessar um banco de dados ou tabela de destino por meio de um link de recurso, você deve ter as permissões AWS Identity and Access Management (IAM) e Lake Formation no link de destino e no link do recurso. A permissão do Lake Formation exigida nos links de recursos é `DESCRIBE`. Para obter mais informações, consulte [`DESCRIBE`](lf-permissions-reference.md#perm-describe).


**Operações de API de banco de dados**  

| Operação de API | Gestão de links de recursos | 
| --- | --- | 
| CreateDatabase | Se o banco de dados for um link de recurso, ele cria o link de recurso para o banco de dados de destino designado. | 
| UpdateDatabase | Se o banco de dados designado for um link de recurso, ele segue o link e atualiza o banco de dados de destino. Se o link de recurso precisar ser modificado para vincular a um banco de dados diferente, você deverá excluí-lo e criar um novo. | 
| DeleteDatabase | Exclua o link do recurso. Isto não exclui o banco de dados vinculado (de destino). | 
| GetDatabase | Se o chamador tiver permissões no alvo, ele segue o link para retornar as propriedades do alvo. Caso contrário, ele retornará as propriedades do link. | 
| GetDatabases | Retorna uma lista de bancos de dados, incluindo links de recursos. Para cada link de recurso no conjunto de resultados, a operação segue o link para obter as propriedades do link de destino. Você deve especificar ResourceShareType = ALL para ver os bancos de dados compartilhados com sua conta.  | 


**Operações de API de tabela**  

| Operação de API | Gestão de links de recursos | 
| --- | --- | 
| CreateTable | Se o banco de dados for um link de recurso, ele segue o link do banco de dados e cria uma tabela no banco de dados de destino. Se a tabela for um link de recurso, a operação criará o link de recurso no banco de dados designado. Não há suporte para criar um link de recurso de tabela por meio de um link de recurso de banco de dados.  | 
| UpdateTable | Se a tabela ou o banco de dados designado for um link de recurso, isso atualiza a tabela de destino. Se a tabela e o banco de dados forem links de recursos, a operação falhará. | 
| DeleteTable | Se o banco de dados designado for um link de recurso, ele segue o link e exclui a tabela ou o link do recurso da tabela no banco de dados de destino. Se a tabela for um link de recurso, a operação excluirá o link de recurso da tabela no banco de dados designado. A exclusão de um link de recurso de tabela não exclui a tabela de destino. | 
| BatchDeleteTable | Igual a DeleteTable. | 
| GetTable | Se o banco de dados designado for um link de recurso, ele segue o link do banco de dados e retorna a tabela ou o link do recurso da tabela do banco de dados de destino. Caso contrário, se a tabela for um link de recurso, a operação seguirá o link e retornará as propriedades da tabela de destino.  | 
| GetTables | Se o banco de dados designado for um link de recurso, ele segue o link do banco de dados e retorna as tabelas e os links de recursos da tabela do banco de dados de destino. Se o banco de dados de destino for um banco de dados compartilhado de outra AWS conta, a operação retornará somente as tabelas compartilhadas nesse banco de dados. Ele não segue os links de recursos da tabela no banco de dados de destino. Caso contrário, se o banco de dados designado for um banco de dados local (de propriedade), a operação retornará todas as tabelas no banco de dados local e seguirá cada link de recurso da tabela para retornar as propriedades da tabela de destino. | 
| SearchTables | Retorna tabelas e links de recursos de tabelas. Ele não segue links para retornar as propriedades da tabela de destino. Você deve especificar ResourceShareType = ALL para ver as tabelas compartilhadas com sua conta. | 
| GetTableVersion | Igual a GetTable. | 
| GetTableVersions | Igual a GetTable. | 
| DeleteTableVersion | Igual a DeleteTable. | 
| BatchDeleteTableVersion | Igual a DeleteTable. | 


**Operações de API de partição**  

| Operação de API | Gestão de links de recursos | 
| --- | --- | 
| CreatePartition | Se o banco de dados designado for um link de recurso, ele segue o link do banco de dados e cria uma partição na tabela designada no banco de dados de destino. Se a tabela for um link de recurso, a operação segue o link do recurso e cria a partição na tabela de destino. A criação de uma partição por meio de um link de recurso de tabela e de um link de recurso de banco de dados não é suportada. | 
| BatchCreatePartition | Igual a CreatePartition. | 
| UpdatePartition | Se o banco de dados designado for um link de recurso, ele segue o link do banco de dados e atualiza a partição na tabela designada no banco de dados de destino. Se a tabela for um link de recurso, a operação segue o link do recurso e atualiza a partição na tabela de destino. A atualização de uma partição por meio de um link de recurso de tabela e de um link de recurso de banco de dados não é suportada. | 
| DeletePartition | Se o banco de dados designado for um link de recurso, ele segue o link do banco de dados e exclui a partição na tabela designada no banco de dados de destino. Se a tabela for um link de recurso, a operação segue o link do recurso e exclui a partição na tabela de destino. A exclusão de uma partição por meio de um link de recurso de tabela e de um link de recurso de banco de dados não é suportada. | 
| BatchDeletePartition | Igual a DeletePartition. | 
| GetPartition | Se o banco de dados designado for um link de recurso, ele segue o link do banco de dados e retorna as informações da partição da tabela designada. Caso contrário, se a tabela for um link de recurso, a operação seguirá o link e retornará as informações da partição. Se a tabela e o banco de dados forem links de recursos, ele retornará um conjunto de resultados vazio. | 
| GetPartitions | Se o banco de dados designado for um link de recurso, ele segue o link do banco de dados e retorna as informações de partição de todas as partições na tabela designada. Caso contrário, se a tabela for um link de recurso, a operação seguirá o link e retornará as informações da partição. Se a tabela e o banco de dados forem links de recursos, ele retornará um conjunto de resultados vazio. | 
| BatchGetPartition | Igual a GetPartition. | 


**Operações de API de perfis definidas pelo usuário**  

| Operação de API | Gestão de links de recursos | 
| --- | --- | 
| (Todas as operações de API) | Se o banco de dados for um link de recurso, ele segue o link do recurso e executa a operação no banco de dados de destino. | 

**Consulte também:**  
[Como os links de recursos funcionam no Lake Formation](resource-links-about.md)