> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Cómo exportar datos de BigQuery a ClickHouse Cloud mediante ClickPipes.

# Integración de BigQuery con ClickHouse Cloud

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

<PrivatePreviewBadge />

<Note>
  Puede inscribirse en la lista de espera de la vista previa privada [aquí](https://clickhouse.com/cloud/clickpipes/bigquery-connector).
</Note>

El ClickPipe de BigQuery ofrece una forma totalmente gestionada y robusta de ingestar datos desde BigQuery en ClickHouse Cloud. En la vista previa privada, admite el método de replicación de **carga inicial** para ayudarle a cargar de forma masiva datasets de BigQuery para su exploración y creación de prototipos. **CDC** será compatible en el futuro; mientras tanto, recomendamos usar el [ClickPipe de Google Cloud Storage](/es/integrations/clickpipes/object-storage/google-cloud-storage/overview) para sincronizar continuamente en ClickHouse Cloud las exportaciones de datos de BigQuery una vez completada la carga inicial.

Los ClickPipes de BigQuery pueden desplegarse y gestionarse manualmente desde la UI de ClickPipes, así como de forma programática mediante [OpenAPI](/es/integrations/clickpipes/programmatic-access/openapi) y [Terraform](/es/integrations/clickpipes/programmatic-access/terraform).

<div id="features">
  ## Funciones
</div>

<div id="initial-load">
  ### Carga inicial
</div>

El ClickPipe de BigQuery cargará las tablas seleccionadas de un [conjunto de datos](https://docs.cloud.google.com/bigquery/docs/datasets-intro) de BigQuery en las tablas de destino de ClickHouse en una sola operación por lotes. Una vez completada la tarea de ingestión, el ClickPipe se detiene automáticamente. El proceso de ingestión de la carga inicial requiere un bucket de Google Cloud Storage (GCS) proporcionado por el usuario para staging. En el futuro, el bucket intermedio será proporcionado y administrado por ClickPipes.

<Note>
  ClickPipes se basa en trabajos de extracción por lotes para obtener datos de BigQuery y llevarlos al bucket de GCS de staging. Esta operación **no genera cargos de procesamiento** en BigQuery.
</Note>

<div id="cdc">
  ### CDC (captura de cambios de datos)
</div>

CDC **no está disponible** en la vista previa privada, pero será compatible en el futuro. Mientras tanto, recomendamos usar [Google Cloud Storage ClickPipe](/es/integrations/clickpipes/object-storage/google-cloud-storage/overview) para sincronizar continuamente las exportaciones de datos de BigQuery con ClickHouse Cloud una vez completada la carga inicial.

<div id="data-type-mapping">
  ## Correspondencia de tipos de datos
</div>

[Tipos de datos de BigQuery](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types).

| Tipo de dato de BigQuery | Tipo de dato de ClickHouse | Detalles                                                                           |
| ------------------------ | -------------------------- | ---------------------------------------------------------------------------------- |
| `BOOL`                   | `Bool`                     |                                                                                    |
| `INT64`                  | `Int64`                    |                                                                                    |
| `FLOAT64`                | `Float64`                  |                                                                                    |
| `NUMERIC`                | `Decimal(P, S)`            | Precisión de hasta 38 y escala de hasta 9. Se conservan la precisión y la escala.  |
| `BIGNUMERIC`             | `Decimal(P, S)`            | Precisión de hasta 76 y escala de hasta 38. Se conservan la precisión y la escala. |
| `STRING`                 | `String`                   |                                                                                    |
| `BYTES`                  | `String`                   |                                                                                    |
| `JSON`                   | `String` (JSON)            |                                                                                    |
| `DATE`                   | `Date`                     |                                                                                    |
| `TIME`                   | `String`                   | Precisión de microsegundos.                                                        |
| `DATETIME`               | `DateTime`                 | Precisión de microsegundos.                                                        |
| `TIMESTAMP`              | `DateTime64(6)`            | Precisión de microsegundos.                                                        |
| `GEOGRAPHY`              | `String`                   |                                                                                    |
| `GEOMETRY`               | `String`                   |                                                                                    |
| `UUID`                   | `String`                   |                                                                                    |
| `ARRAY<T>`               | `Array(T)`                 |                                                                                    |
| `ARRAY<DATE>`            | `Array(Date)`              |                                                                                    |
| `STRUCT` (RECORD)        | `String`                   |                                                                                    |

<div id="access-control">
  ## Control de acceso
</div>

<div id="authentication">
  ### Autenticación
</div>

<div id="service-account-credentials">
  #### Credenciales de la cuenta de servicio
</div>

ClickPipes se autentica en tu proyecto de Google Cloud mediante una [clave de cuenta de servicio](https://docs.cloud.google.com/iam/docs/keys-create-delete). Recomendamos crear una cuenta de servicio dedicada con el mínimo de [permisos](#permissions) necesarios para que ClickPipes pueda exportar datos desde BigQuery, cargarlos en el bucket de GCS de staging y leerlos en ClickHouse.

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/lGskH5qUgz9Vtlav/images/integrations/data-ingestion/clickpipes/bigquery/cp_iam.png?fit=max&auto=format&n=lGskH5qUgz9Vtlav&q=85&s=94a71a402fa88acc2607d1197cc0e444" alt="Creación de una clave de cuenta de servicio con permisos de BigQuery y Cloud Storage" size="lg" border width="2682" height="1336" data-path="images/integrations/data-ingestion/clickpipes/bigquery/cp_iam.png" />

<div id="permissions">
  ### Permisos
</div>

<div id="bigquery">
  #### BigQuery
</div>

La cuenta de servicio debe tener los siguientes roles de BigQuery:

* [`roles/bigquery.dataViewer`](https://docs.cloud.google.com/bigquery/docs/access-control#bigquery.dataViewer)
* [`roles/bigquery.jobUser`](https://docs.cloud.google.com/bigquery/docs/access-control#bigquery.jobUser)

Para acotar aún más el acceso, recomendamos usar [condiciones de IAM](https://docs.cloud.google.com/bigquery/docs/conditions) para restringir los recursos a los que puede acceder el rol. Por ejemplo, puede restringir el rol `dataViewer` al conjunto de datos específico que contiene las tablas que desea sincronizar:

```bash theme={null}
resource.name.startsWith("projects/<PROJECT_ID>/datasets/<DATASET_NAME>")
```

<div id="cloud-storage">
  #### Cloud Storage
</div>

La cuenta de servicio debe tener los siguientes roles de Cloud Storage:

* [`roles/storage.objectAdmin`](https://docs.cloud.google.com/storage/docs/access-control/iam-roles#storage.objectAdmin)
* [`roles/storage.bucketViewer`](https://docs.cloud.google.com/storage/docs/access-control/iam-roles#storage.bucketViewer)

Para limitar aún más el acceso, recomendamos usar [condiciones de IAM](https://docs.cloud.google.com/bigquery/docs/conditions) para restringir los recursos a los que puede acceder el rol. Por ejemplo, puede restringir los roles `objectAdmin` y `bucketViewer` al bucket dedicado creado para las sincronizaciones de ClickPipes.

```bash theme={null}
resource.name.startsWith("projects/_/buckets/<BUCKET_NAME>")
```
