A E/S gerenciada do Dataflow para o BigQuery permite transformar e enriquecer dados nos pipelines de streaming e em lote. Ela integra o BigQuery como origem e destino para jobs do Dataflow, simplificando as interações da API BigQuery. É possível processar conjuntos de dados em grande escala para diversos casos de uso, desde análises em tempo real até armazenamento em data warehouse, usando a criação e os destinos de tabelas dinâmicas no BigQuery.
Benefícios da E/S gerenciada
A E/S gerenciada oferece os seguintes benefícios e recursos para o BigQuery:
- Criação de tabelas dinâmicas
- Destinos dinâmicos
- Para leituras, o conector usa a API BigQuery Storage Read.
Para gravações, o conector usa os seguintes métodos do BigQuery:
- Se a origem for ilimitada e o Dataflow estiver usando o processamento de streaming exatamente uma vez, o conector fará gravações no BigQuery usando a API BigQuery Storage Write com semântica de entrega exatamente uma vez.
- Se a origem for ilimitada e o Dataflow estiver usando o processamento de streaming pelo menos uma vez, o conector fará gravações no BigQuery usando a API BigQuery Storage Write com semântica de entrega pelo menos uma vez.
- Se a origem for limitada, o conector usará carregamentos de arquivos do BigQuery.
Requisitos
Os SDKs a seguir oferecem suporte à E/S gerenciada para o BigQuery:
- SDK do Apache Beam para Java versão 2.61.0 ou mais recente
- SDK do Apache Beam para Python versão 2.61.0 ou mais recente
Configuração
A E/S gerenciada para o BigQuery oferece suporte aos seguintes parâmetros de configuração:
Leitura BIGQUERY
| Configuração | Tipo | Descrição |
|---|---|---|
| kms_key |
str
|
Use essa chave do Cloud KMS para criptografar seus dados. |
| consulta |
str
|
A consulta SQL a ser executada para leitura na tabela do BigQuery. |
| row_restriction |
str
|
Leia apenas as linhas que correspondem a esse filtro, que precisa ser compatível com o SQL padrão do Google. Isso não é compatível com a leitura por consulta. |
| campos |
list[str]
|
Leia apenas os campos (colunas) especificados de uma tabela do BigQuery. Os campos podem não ser retornados na ordem especificada. Se nenhum valor for especificado, todos os campos serão retornados. Exemplo: "col1, col2, col3" |
| tabela |
str
|
O nome totalmente qualificado da tabela do BigQuery a ser lida. Formato: [${PROJECT}:]${DATASET}.${TABLE} |
Gravação BIGQUERY
| Configuração | Tipo | Descrição |
|---|---|---|
| tabela |
str
|
A tabela do BigQuery a ser gravada. Formato: [${PROJECT}:]${DATASET}.${TABLE} |
| drop |
list[str]
|
Uma lista de nomes de campos a serem descartados do registro de entrada antes da gravação. É mutuamente exclusivo com "keep" e "only". |
| keep |
list[str]
|
Uma lista de nomes de campos a serem mantidos no registro de entrada. Todos os outros campos são descartados antes da gravação. É mutuamente exclusivo com "drop" e "only". |
| kms_key |
str
|
Use essa chave do Cloud KMS para criptografar seus dados. |
| somente |
str
|
O nome de um único campo de registro que deve ser gravado. É mutuamente exclusivo com "keep" e "drop". |
| triggering_frequency_seconds |
int64
|
Determina a frequência com que o progresso é "confirmado" no BigQuery. O padrão é a cada 5 segundos. |
A seguir
Para mais informações e exemplos de código, consulte os seguintes tópicos: