

# Conectar ao Snowflake no AWS Glue Studio
<a name="connecting-to-data-snowflake"></a>

**nota**  
 É possível usar o AWS Glue para Spark para ler e gravar em tabelas no Snowflake no AWS Glue 4.0 e versões posteriores. Para configurar uma conexão Snowflake com trabalhos AWS Glue programaticamente, consulte [Conexões do Redshift](aws-glue-programming-etl-connect-redshift-home.md). 

 O AWS Glue fornece suporte integrado para o Snowflake. O AWS Glue Studio fornece uma interface visual para conectar ao Snowflake, criar trabalhos de integração de dados e executá-los no runtime do AWS Glue Studio Spark sem servidor. 

 O AWS Glue Studio cria uma conexão unificada para o Snowflake. Para obter mais informações, consulte [Considerações](using-connectors-unified-connections.md#using-connectors-unified-connections-considerations). 

**Topics**
+ [Criar uma conexão com o Snowflake](creating-snowflake-connection.md)
+ [Criar um nó de origem do Snowflake](creating-snowflake-source-node.md)
+ [Criar um nó de destino do Snowflake](creating-snowflake-target-node.md)
+ [Opções avançadas](#creating-snowflake-connection-advanced-options)

# Criar uma conexão com o Snowflake
<a name="creating-snowflake-connection"></a>

**nota**  
 As conexões unificadas (conexão v2) padronizam todas as conexões para usar chaves `USERNAME`, `PASSWORD` para credenciais de autenticação básica. Você ainda pode criar uma conexão v1 via API com segredos contendo `sfUser`, `sfPassword`. 

 Ao adicionar um nó **Fonte de dados – Snowflake**AWS Glue Studio, é possível escolher uma conexão existente do AWS Glue Snowflake ou criar uma nova conexão. Você deve escolher um tipo de conexão do `SNOWFLAKE` e não um tipo de conexão `JDBC` configurada para se conectar ao Snowflake. Faça o seguinte procedimento para criar uma conexão com o AWS Glue Snowflake:

**Criar uma conexão com o Snowflake**

1. No Snowflake, gere um usuário, *SnowflakeUser* e senha, *snowflakePassword*. 

1. *Determine com qual armazém do Snowflake esse usuário interagirá, SnowflakeWarehouse*. Defina-o como o `DEFAULT_WAREHOUSE` para *SnowFlakeUser* no Snowflake ou lembre-se dele para a próxima etapa.

1. No AWS Secrets Manager, crie um segredo usando suas credenciais do Snowflake. Para criar um segredo no Secrets Manager, siga o tutorial disponível em [Criação de um segredo do AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html#create_secret_cli) na documentação do AWS Secrets Manager. Depois de criar o segredo, guarde o nome secreto, *SecretName*, para a próxima etapa. 
   + Ao selecionar **pares de chave/valor**, crie um par para *snowflakeUser* com a chave `sfUser`.
   + Ao selecionar **pares de chave/valor**, crie um par para *snowflakePassword* com a chave `sfPassword`.
   + Ao selecionar **pares de chave/valor**, crie um par para *snowflakeWarehouse* com a chave `sfWarehouse`. Isso não é necessário se for definido um padrão no Snowflake. 

1. No catálogo de dados do AWS Glue, crie uma conexão seguindo as etapas em [Adicionar uma conexão do AWS Glue](https://docs.aws.amazon.com//glue/latest/dg/console-connections.html). Depois de criar a conexão, guarde o nome da conexão, *connectionName*, para a próxima etapa. 
   + Ao selecionar um **Tipo de conexão**, selecione Snowflake.
   + Ao selecionar o **URL do Snowflake**, forneça o URL da sua instância do Snowflake. O URL usará um nome de host no formulário `account_identifier.snowflakecomputing.com`.
   + Ao selecionar um **Segredo da AWS**, forneça o *secretName*.

# Criar um nó de origem do Snowflake
<a name="creating-snowflake-source-node"></a>

## Permissões necessárias
<a name="creating-snowflake-source-node-permissions"></a>

 Trabalhos do AWS Glue Studio usando fontes de dados do Snowflake exigem permissões adicionais. Para obter mais informações sobre como adicionar permissões a trabalhos de ETL, consulte [Review IAM permissions needed for ETL jobs](https://docs.aws.amazon.com/glue/latest/ug/setting-up.html#getting-started-min-privs-job). 

 As conexões AWS Glue do `SNOWFLAKE` usam um segredo do AWS Secrets Manager para fornecer informações de credenciais. Os perfis de pré-visualização de trabalhos e dados no AWS Glue Studio devem ter permissão para ler esse segredo.

## Adicionar uma fonte de dados do Snowflake
<a name="creating-snowflake-source-node-add"></a>

**Pré-requisitos:**
+ Um segredo do AWS Secrets Manager para suas credenciais do Snowflake
+ Uma conexão de catálogo de dados do AWS Glue do tipo Snowflake

**Para adicionar um nó **fonte de dados: Snowflake**:**

1.  Escolha a conexão para sua fonte de dados do Snowflake. Isso pressupõe que a conexão já exista e que você possa selecionar entre as conexões existentes. Se precisar criar uma conexão, escolha **Criar conexão com o Snowflake**. Para obter mais informações, consulte [Visão geral do uso de conectores e conexões](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#using-connectors-overview). 

    Depois de escolher uma conexão, você pode visualizar as propriedades da conexão clicando em **Exibir propriedades**. As informações sobre a conexão estão visíveis, incluindo URL, grupos de segurança, sub-rede, zona de disponibilidade, descrição e timestamps de criação (UTC) e última atualização (UTC). 

1.  Escolha uma opção de fonte do Snowflake: 
   +  **Escolher uma única tabela**: essa é a tabela que contém os dados que você deseja acessar de uma única tabela do Snowflake. 
   +  **Inserir consulta personalizada**: permite que você acesse um conjunto de dados de várias tabelas do Snowflake com base na sua consulta personalizada. 

1.  Se você escolheu uma única tabela, insira o nome de um esquema do Snowflake. 

    Ou escolha **Inserir consulta personalizada**. Escolha essa opção para acessar um conjunto de dados personalizado de várias tabelas do Snowflake. Ao escolher essa opção, insira a consulta do Snowflake. 

1.  Nas opções de **Desempenho e segurança** (opcional), 
   +  **Ative o envio de consultas**: escolha se você deseja transferir o trabalho para a instância do Snowflake. 

1.  Em **Propriedades personalizadas do Snowflake** (opcional), insira parâmetros e valores conforme necessário. 

# Criar um nó de destino do Snowflake
<a name="creating-snowflake-target-node"></a>

## Permissões necessárias
<a name="creating-snowflake-target-node-permissions"></a>

 Trabalhos do AWS Glue Studio usando fontes de dados do Snowflake exigem permissões adicionais. Para obter mais informações sobre como adicionar permissões a trabalhos de ETL, consulte [Review IAM permissions needed for ETL jobs](https://docs.aws.amazon.com/glue/latest/ug/setting-up.html#getting-started-min-privs-job). 

 As conexões AWS Glue do `SNOWFLAKE` usam um segredo do AWS Secrets Manager para fornecer informações de credenciais. Os perfis de pré-visualização de trabalhos e dados no AWS Glue Studio devem ter permissão para ler esse segredo.

## Adicionar um destino de dados do Snowflake
<a name="creating-snowflake-target-node-add"></a>

**Para criar um nó de destino do Snowflake:**

1.  Escolha uma tabela existente do Snowflake como destino ou insira um novo nome de tabela. 

1.  Ao usar o nó de destino **Nó de destino: Snowflake**, você pode escolher entre as seguintes opções: 
   +  **APPEND**: se uma tabela já existir, despejar todos os novos dados na tabela como uma inserção. Se a tabela não existir, criar e inserir todos os novos dados. 
   +  **MERGE**: o AWS Glue atualizará ou anexará dados à sua tabela de destino com base nas condições que você especificar. 

      Escolha as opções: 
     + **Escolher chaves e ações simples**: escolha as colunas a serem usadas como chaves de correspondência entre os dados de origem e seu conjunto de dados de destino. 

       Especifique as seguintes opções quando correspondidas:
       + Atualizar o registro em seu conjunto de dados de destino com os dados da fonte.
       + Excluir o registro em seu conjunto de dados de destino.

       Especifique as seguintes opções quando não correspondidas:
       + Inserir os dados de origem como uma nova linha em seu conjunto de dados de destino.
       + Não executar nenhuma ação.
     + **Inserir declaração MERGE personalizada**: você pode então escolher **Validar declaração de Merge** para verificar se a declaração é válida ou inválida.
   +  **TRUNCATE**: se uma tabela já existir, truncar os dados da tabela limpando primeiro o conteúdo da tabela de destino. Se o truncamento for bem-sucedido, inserir todos os dados. Se a tabela não existir, criar a tabela e inserir todos os novos dados. Se o truncamento não tiver sucesso, a operação falhará. 
   +  **DROP**: se uma tabela já existir, excluir os metadados e os dados da tabela. Se a exclusão for bem-sucedida, inserir todos os dados. Se a tabela não existir, criar a tabela e inserir todos os novos dados. Se o drop não tiver sucesso, a operação falhará. 

## Opções avançadas
<a name="creating-snowflake-connection-advanced-options"></a>

Consulte as [ Snowflake connections](https://docs.aws.amazon.com//glue/latest/dg/aws-glue-programming-etl-connect-snowflake-home.html) no guia do desenvolvedor do AWS Glue. 