O BigQuery ClickPipe oferece uma maneira totalmente gerenciada e resiliente de ingerir dados do BigQuery no ClickHouse Cloud. Na Prévia Privada, ele oferece suporte ao método de replicação de carga inicial para ajudar você a carregar em massa conjuntos de dados do BigQuery para exploração e prototipagem. O CDC será suportado futuramente — enquanto isso, recomendamos usar o Google Cloud Storage ClickPipe para sincronizar continuamente as exportações de dados do BigQuery para o ClickHouse Cloud após a conclusão da carga inicial.
Os BigQuery ClickPipes podem ser implantados e gerenciados manualmente usando a UI do ClickPipes, bem como programaticamente usando OpenAPI e Terraform.
Funcionalidades
Carga inicial
O ClickPipe do BigQuery carregará as tabelas selecionadas de um conjunto de dados do BigQuery nas tabelas de destino do ClickHouse em uma única operação em lote. Assim que a tarefa de ingestão for concluída, o ClickPipe será interrompido automaticamente. O processo de ingestão da carga inicial requer um bucket do Google Cloud Storage (GCS) fornecido pelo usuário para staging. No futuro, o bucket intermediário será fornecido e gerenciado pelo ClickPipes.
CDC (Captura de Dados de Alterações)
O CDC ainda não tem suporte na prévia privada, mas terá no futuro. Enquanto isso, recomendamos usar o Google Cloud Storage ClickPipe para sincronizar continuamente as exportações de dados do BigQuery com o ClickHouse Cloud depois que a carga inicial for concluída.
Mapeamento de tipos de dados
| Tipo de dado do BigQuery | Tipo de dado do ClickHouse | Detalhes |
|---|---|---|
BOOL |
Bool |
|
INT64 |
Int64 |
|
FLOAT64 |
Float64 |
|
NUMERIC |
Decimal(P, S) |
Precisão de até 38, escala de até 9. A precisão e a escala são preservadas. |
BIGNUMERIC |
Decimal(P, S) |
Precisão de até 76, escala de até 38. A precisão e a escala são preservadas. |
STRING |
String |
|
BYTES |
String |
|
JSON |
String (JSON) |
|
DATE |
Date |
|
TIME |
String |
Precisão de microssegundos. |
DATETIME |
DateTime |
Precisão de microssegundos. |
TIMESTAMP |
DateTime64(6) |
Precisão de microssegundos. |
GEOGRAPHY |
String |
|
GEOMETRY |
String |
|
UUID |
String |
|
ARRAY<T> |
Array(T) |
|
ARRAY<DATE> |
Array(Date) |
|
STRUCT (RECORD) |
String |
Controle de acesso
Autenticação
Credenciais da conta de serviço
O ClickPipes se autentica no seu projeto do Google Cloud usando uma chave de conta de serviço. Recomendamos criar uma conta de serviço dedicada com o conjunto mínimo de permissões necessárias para permitir que o ClickPipes exporte dados do BigQuery, carregue-os no bucket de staging do GCS e os leia no ClickHouse.

Permissões
BigQuery
A conta de serviço deve ter os seguintes papéis do BigQuery:
Para restringir ainda mais o escopo de acesso, recomendamos usar condições do IAM para limitar os recursos aos quais o papel tem acesso. Por exemplo, você pode restringir o papel dataViewer ao conjunto de dados específico que contém as tabelas que deseja sincronizar:
resource.name.startsWith("projects/<PROJECT_ID>/datasets/<DATASET_NAME>")Cloud Storage
A conta de serviço deve ter os seguintes papéis do Cloud Storage:
Para restringir ainda mais o escopo de acesso, recomendamos usar condições do IAM para limitar os recursos aos quais o papel tem acesso. Por exemplo, você pode restringir os papéis objectAdmin e bucketViewer ao bucket dedicado criado para sincronizações do ClickPipes.
resource.name.startsWith("projects/_/buckets/<BUCKET_NAME>")