

# Conectar ao Google BigQuery em AWS Glue Studio
<a name="connecting-to-data-bigquery"></a>

**nota**  
  É possível usar o AWS Glue Spark para ler e gravar tabelas no Google BigQuery no AWS Glue 4.0 e versões posteriores. Para configurar o Google BigQuery com AWS Glue trabalhos de forma programática, consulte [Conexões BigQuery](aws-glue-programming-etl-connect-bigquery-home.md).  

 AWS Glue Studio fornece uma interface visual para conectar-se ao BigQuery, criar jobs de integração de dados e executá-los no runtime Spark sem servidor AWS Glue Studio. 

 Ao criar uma conexão com o Google BigQuery no AWS Glue Studio, uma conexão unificada é criada. Para obter mais informações, consulte [Considerações](using-connectors-unified-connections.md#using-connectors-unified-connections-considerations). 

 Em vez de criar um segredo com as credenciais em um formato específico, `{"credentials": "base64 encoded JSON"}`, agora, com a conexão unificada com o Google BigQuery, é possível criar um segredo que inclua diretamente o JSON do Google BigQuery: `{"type": "service-account", ...}`. 

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

# Criar uma conexão BigQuery
<a name="creating-bigquery-connection"></a>

Para se conectar ao Google BigQuery a partir do AWS Glue, você precisará criar e armazenar suas credenciais do Google Cloud Platform em um segredo e, em seguida, associar esse AWS Secrets Manager segredo a uma conexão do Google BigQuery AWS Glue.

**Para configurar uma conexão com o BigQuery:**

1. No Google Cloud Platform, crie e identifique recursos relevantes:
   + Crie ou identifique um projeto do GCP contendo tabelas do BigQuery às quais você gostaria de se conectar.
   + Ative a API BigQuery. Para obter mais informações, consulte [Use the BigQuery Storage Read API to read na tabela](https://cloud.google.com/bigquery/docs/reference/storage/#enabling_the_api).

1. No Google Cloud Platform, crie e exporte as credenciais da conta de serviço:

   [Você pode usar o assistente de credenciais do BigQuery para acelerar essa etapa: criar credenciais.](https://console.cloud.google.com/apis/credentials/wizard?api=bigquery.googleapis.com)

   Para criar uma conta de serviço no GCP, siga o tutorial disponível em [Criar contas de serviço](https://cloud.google.com/iam/docs/service-accounts-create).
   + Ao selecionar o **projeto**, selecione o projeto que contém sua tabela do BigQuery.
   + Ao selecionar perfis do IAM do GCP para sua conta de serviço, adicione ou crie um papel que conceda permissões apropriadas para executar jobs do BigQuery para ler, gravar ou criar tabelas do BigQuery.

   Para criar credenciais para a sua conta de serviço, siga o tutorial disponível em [Criar uma chave da conta de serviço](https://cloud.google.com/iam/docs/keys-create-delete#creating).
   + Ao selecionar o tipo de chave, selecione **JSON**.

   Agora você deve ter baixado um arquivo JSON com credenciais para sua conta de serviço. A aparência deve ser semelhante à seguinte:

   ```
   {
     "type": "service_account",
     "project_id": "*****",
     "private_key_id": "*****",
     "private_key": "*****",
     "client_email": "*****",
     "client_id": "*****",
     "auth_uri": "https://accounts.google.com/o/oauth2/auth",
     "token_uri": "https://oauth2.googleapis.com/token",
     "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
     "client_x509_cert_url": "*****",
     "universe_domain": "googleapis.com"
   }
   ```

1. No AWS Secrets Manager, crie um segredo usando seu arquivo de credenciais baixado. Você pode escolher a guia **Texto simples** e colar o conteúdo do arquivo formatado em JSON. Para criar um segredo no Secrets Manager, siga o tutorial disponível em [Criar uma AWS Secrets Manager segredo ](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html) na documentação do AWS Secrets Manager. Depois de criar o segredo, guarde o nome secreto, *SecretName*, para a próxima etapa. 

1. No catálogo de dados do AWS Glue, crie uma conexão seguindo as etapas em [https://docs.aws.amazon.com/glue/latest/dg/console-connections.html](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 Google BigQuery.
   + Ao selecionar um **Segredo da AWS**, forneça o *secretName*.

1. Conceda ao perfil do IAM associada ao seu trabalho do AWS Glue permissão para ler *secretName*.

1. Na configuração do trabalho do AWS Glue, forneça *connectionName* como uma **conexão de rede adicional**.

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

## Pré-requisitos necessários
<a name="creating-bigquery-source-node-prerequisites"></a>
+ Uma conexão de catálogo de dados do AWS Glue do tipo Snowflake
+ Um AWS Secrets Manager segredo para suas credenciais do Google BigQuery, usado pela conexão.
+ Permissões apropriadas em seu trabalho para ler o segredo usado pela conexão.
+ O nome e o conjunto de dados da tabela e do projeto do Google Cloud correspondente no qual você deseja gravar.

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

**Para adicionar um **destino de dados — nó do BigQuery**:**

1.  Escolha a conexão para seu destino de dados do BigQuery. Como você o criou, ele deve estar disponível no menu suspenso. Se precisar criar uma conexão, escolha **Criar conexão com o Redshift**. 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**. 

1. Identifique quais dados do BigQuery você gostaria de ler e escolha uma opção de origem do **BigQuery**
   + Escolha uma única tabela — permite extrair todos os dados de uma tabela.
   + Insira uma consulta personalizada — permite que você personalize quais dados são recuperados fornecendo uma consulta.

1.  Descreva os dados que você gostaria de ler

   **(Obrigatório)** defina **Projeto principal** como o projeto que contém sua tabela ou um projeto principal de cobrança, se relevante.

   Se você escolheu uma única tabela, defina **Tabela** com o nome de uma tabela do Google BigQuery no seguinte formato: `[dataset].[table]` 

   Se você escolheu uma consulta, forneça-a ao **Query**. Em sua consulta, consulte as tabelas com seu nome de tabela totalmente qualificado, no formato:`[project].[dataset].[tableName]`.

1.  Forneça propriedades do BigQuery 

   Se você escolheu uma única tabela, não é necessário fornecer propriedades adicionais.

   Se você escolher uma consulta, deverá fornecer as seguintes **propriedades personalizadas do Google BigQuery**:
   + Defina `viewsEnabled` como verdadeiro.
   + Defina `materializationDataset` como um conjunto de dados. O principal do GCP autenticado pelas credenciais fornecidas pela AWS Glue conexão precisa ser capaz de criar tabelas nesse conjunto de dados.

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

## Pré-requisitos necessários
<a name="creating-bigquery-target-node-prerequisites"></a>
+ Uma conexão de catálogo de dados do AWS Glue do tipo Snowflake
+ Um AWS Secrets Manager segredo para suas credenciais do Google BigQuery, usado pela conexão.
+ Permissões apropriadas em seu trabalho para ler o segredo usado pela conexão.
+ O nome e o conjunto de dados da tabela e do projeto do Google Cloud correspondente no qual você deseja gravar.

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

**Para adicionar um **destino de dados — nó do BigQuery**:**

1.  Escolha a conexão para seu destino de dados do BigQuery. Como você o criou, ele deve estar disponível no menu suspenso. Se precisar criar uma conexão, escolha **Criar conexão com o Redshift**. 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**. 

1. Identifique em qual tabela do BigQuery você gostaria de gravar e escolha um **método de gravação**.
   + Direto — grava diretamente no BigQuery usando a API BigQuery Storage Write.
   + Indireto — grava no Google Cloud Storage e depois copia no BigQuery.

   Se você quiser escrever indiretamente, forneça um local de destino do GCS com um bucket **temporário do GCS**. Você precisará fornecer configurações adicionais em sua AWS Glue conexão. Para obter mais informações, consulte [Usar a gravação indireta com o Google BigQuery](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect-bigquery-home.html#aws-glue-programming-etl-connect-bigquery-indirect-write).

1.  Descreva os dados que você gostaria de ler

   **(Obrigatório)** defina **Projeto principal** como o projeto que contém sua tabela ou um projeto principal de cobrança, se relevante.

   Se você escolheu uma única tabela, defina **Tabela** com o nome de uma tabela do Google BigQuery no seguinte formato: `[dataset].[table]` 

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

É possível fornecer opções avançadas ao criar um node do BigQuery. Essas opções são as mesmas disponíveis ao programar AWS Glue para scripts do Spark.

Consulte a [referência da opção de conexão do BigQuery](https://docs.aws.amazon.com//glue/latest/dg/aws-glue-programming-etl-connect-bigquery-home.html) no guia do AWS Glue desenvolvedor. 