

# Conexión a Google BigQuery en AWS Glue Studio
<a name="connecting-to-data-bigquery"></a>

**nota**  
  Puede usar AWS Glue para Spark para leer y escribir en tablas de Google BigQuery en AWS Glue 4.0 y versiones posteriores. Para configurar Google BigQuery con trabajos de AWS Glue mediante programación, consulte [Conexiones de BigQuery](aws-glue-programming-etl-connect-bigquery-home.md).  

 AWS Glue Studio proporciona una interfaz visual para conectarse a BigQuery, crear trabajos de integración de datos y ejecutarlos en el tiempo de ejecución de Spark sin servidor de AWS Glue Studio. 

 Al crear una conexión a Google BigQuery en AWS Glue Studio, se crea una conexión unificada. Para obtener más información, consulte [Consideraciones](using-connectors-unified-connections.md#using-connectors-unified-connections-considerations). 

 En lugar de crear un secreto con las credenciales en un formato específico, `{"credentials": "base64 encoded JSON"}`; ahora, a través de una conexión unificada a Google BigQuery, es posible crear un secreto que incluya directamente el JSON de Google BigQuery: `{"type": "service-account", ...}`. 

**Topics**
+ [Crear una conexión con BigQuery](creating-bigquery-connection.md)
+ [Crear un nodo de origen de BigQuery](creating-bigquery-source-node.md)
+ [Creación de un nodo de destino de BigQuery](creating-bigquery-target-node.md)
+ [Opciones avanzadas](#creating-bigquery-connection-advanced-options)

# Crear una conexión con BigQuery
<a name="creating-bigquery-connection"></a>

Para conectarse a Google BigQuery desde AWS Glue, tendrá que generar y almacenar las credenciales de Google Cloud Platform en un secreto de AWS Secrets Manager y, a continuación, asociar ese secreto a una conexión de Google BigQuery AWS Glue.

**Para configurar una conexión a BigQuery, siga estos pasos:**

1. En Google Cloud Platform, genere e identifique los recursos pertinentes:
   + Genere e identifique un proyecto de GCP que contenga tablas de BigQuery a las que desea conectarse.
   + Habilite la API de BigQuery. Para obtener más información, consulte [Cómo usar la API de lectura de almacenamiento de BigQuery para leer datos de tablas](https://cloud.google.com/bigquery/docs/reference/storage/#enabling_the_api).

1. En Google Cloud Platform, genere y exporte las credenciales de la cuenta de servicio:

   Puede usar el asistente de credenciales de BigQuery para simplificar este paso: [Crear credenciales](https://console.cloud.google.com/apis/credentials/wizard?api=bigquery.googleapis.com).

   Para crear una cuenta de servicio en GCP, siga el tutorial disponible en [Crear cuentas de servicio](https://cloud.google.com/iam/docs/service-accounts-create).
   + Al elegir un **proyecto**, seleccione el proyecto que contiene su tabla de BigQuery.
   + Cuando elija los roles de IAM de GCP para la cuenta de servicio, agregue o genere una función que conceda los permisos apropiados para ejecutar los trabajos en BigQuery, como la lectura, escritura o creación de tablas de BigQuery.

   Para crear credenciales para la cuenta de servicio, siga el tutorial disponible en [Crear una clave de cuenta de servicio](https://cloud.google.com/iam/docs/keys-create-delete#creating).
   + Al seleccionar el tipo de clave, seleccione **JSON**.

   Ahora debería haber descargado un archivo JSON que contiene las credenciales de la cuenta de servicio. Debería parecerse a lo que sigue:

   ```
   {
     "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. En AWS Secrets Manager, cree un secreto con el archivo de credenciales que descargó. Puede elegir la pestaña **Texto no cifrado** y pegar el contenido del archivo con formato JSON. Para crear un secreto en Secrets Manager, siga el tutorial disponible en [Crear un secreto AWS Secrets Manager](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html) en la documentación AWS Secrets Manager. Después de crear el secreto, conserve el nombre secreto, *secretName*, para el siguiente paso. 

1. En el Catálogo de datos de AWS Glue, genere una conexión mediante los pasos que se indican en [https://docs.aws.amazon.com/glue/latest/dg/console-connections.html](https://docs.aws.amazon.com/glue/latest/dg/console-connections.html). Tras crear la conexión, conserve el nombre de la conexión, *connectionName*, para el siguiente paso. 
   + Cuando elija un **Tipo de conexión**, seleccione Google BigQuery.
   + Al seleccionar un **secreto AWS**, proporcione un *secretName*.

1. Otorga permiso al rol de IAM asociado al trabajo de AWS Glue para leer el *secretName*.

1. En la configuración del trabajo de AWS Glue, proporcione un *connectionName* como una **Conexión de red adicional**.

# Crear un nodo de origen de BigQuery
<a name="creating-bigquery-source-node"></a>

## Requisitos previos necesarios
<a name="creating-bigquery-source-node-prerequisites"></a>
+ Una conexión del Catálogo de datos de AWS Glue tipo BigQuery
+ Un secreto de AWS Secrets Manager de las credenciales de Google BigQuery, que utiliza la conexión.
+ Permisos adecuados en el trabajo para leer el secreto utilizado por la conexión.
+ El nombre y el conjunto de datos de la tabla y el proyecto de Google Cloud correspondiente que quiere leer.

## Agregar un origen de datos de BigQuery
<a name="creating-bigquery-source-node-add"></a>

**Para agregar un nodo de **Origen de datos: BigQuery**:**

1.  Elija la conexión para el origen de datos de BigQuery. Dado que lo ha creado, debería estar disponible en el menú desplegable. Si es necesario crear una conexión, elija **Crear conexión de BigQuery**. Para más información, consulte [Información general sobre el uso de conectores y conexiones](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#using-connectors-overview). 

    Una vez que haya elegido una conexión, puede ver las propiedades de la conexión mediante un clic en **Ver propiedades**. 

1. Identifique qué datos de BigQuery desea leer y, a continuación, elija una opción de **origen de BigQuery**
   + Elegir una sola tabla: permite extraer todos los datos de una tabla.
   + Introducir una consulta personalizada: permite personalizar los datos que se van a recuperar mediante una consulta.

1.  Describa los datos que desea leer

   **(Obligatorio) **defina el **Proyecto principal** como el proyecto que contiene la tabla o un proyecto principal de facturación, si corresponde.

   Si ha elegido una sola tabla, establezca **Tabla** con el nombre de una tabla de Google BigQuery en el siguiente formato: `[dataset].[table]` 

   Si ha elegido una consulta, envíela a **Consulta**. En su consulta, consulte las tablas con su nombre de tabla completo, en el formato: `[project].[dataset].[tableName]`.

1.  Proporcionar las propiedades de BigQuery 

   Si ha elegido una sola tabla, no será necesario proporcionar propiedades adicionales.

   Si eligió una consulta, debe proporcionar las siguientes **Propiedades personalizadas de Google BigQuery**:
   + Establezca `viewsEnabled` en true.
   + Establezca `materializationDataset` en un conjunto de datos. La entidad principal de GCP autenticada por las credenciales proporcionadas a través de la conexión de AWS Glue debe poder crear tablas en este conjunto de datos.

# Creación de un nodo de destino de BigQuery
<a name="creating-bigquery-target-node"></a>

## Requisitos previos necesarios
<a name="creating-bigquery-target-node-prerequisites"></a>
+ Una conexión del Catálogo de datos de AWS Glue tipo BigQuery
+ Un secreto de AWS Secrets Manager de las credenciales de Google BigQuery, que utiliza la conexión.
+ Permisos adecuados en el trabajo para leer el secreto utilizado por la conexión.
+ El nombre y el conjunto de datos de la tabla y el proyecto de Google Cloud correspondiente al que desea escribir.

## Agregar un destino de datos de BigQuery
<a name="creating-bigquery-target-node-add"></a>

**Para agregar un nodo de **Destino de datos: BigQuery**, siga estos pasos:**

1.  Elija la conexión para el destino de datos de BigQuery. Dado que lo ha creado, debería estar disponible en el menú desplegable. Si es necesario crear una conexión, elija **Crear conexión de BigQuery**. Para más información, consulte [Información general sobre el uso de conectores y conexiones](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#using-connectors-overview). 

    Una vez que haya elegido una conexión, puede ver las propiedades de la conexión mediante un clic en **Ver propiedades**. 

1. Identifique en qué tabla de BigQuery desea escribir y, a continuación, elija un **Método de escritura**.
   + Directo: escribe en BigQuery directamente mediante la API de escritura de BigQuery Storage.
   + Indirecto: escribe en Google Cloud Storage y, luego, copia en BigQuery.

   Si quiere escribir de forma indirecta, proporcione una ubicación de GCS de destino con un **bucket de GCS temporal**. Deberá proporcionar una configuración adicional en la conexión de AWS Glue. Para obtener más información, consulte [Uso de escritura indirecta con 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.  Describa los datos que desea leer

   **(Obligatorio) **defina el **Proyecto principal** como el proyecto que contiene la tabla o un proyecto principal de facturación, si corresponde.

   Si ha elegido una sola tabla, establezca **Tabla** con el nombre de una tabla de Google BigQuery en el siguiente formato: `[dataset].[table]` 

## Opciones avanzadas
<a name="creating-bigquery-connection-advanced-options"></a>

Puede brindar opciones avanzadas al crear un nodo de BigQuery. Estas opciones son las mismas que las disponibles cuando se programa AWS Glue para scripts de Spark.

Consulte la [referencia sobre las opciones de conexión de BigQuery](https://docs.aws.amazon.com//glue/latest/dg/aws-glue-programming-etl-connect-bigquery-home.html) en la guía para desarrolladores de AWS Glue. 