E/S gerenciada pelo Dataflow para bancos de dados

O Dataflow é compatível com leitura e gravação em bancos de dados usando a conectividade de banco de dados Java (JDBC). O Dataflow usa o conector JdbcIO do Apache Beam para se conectar a origens e coletores de dados JDBC. A E/S gerenciada para bancos de dados é compatível com drivers JDBC padrão para vários bancos de dados, incluindo PostgreSQL, MySQL e Microsoft SQL Server.

Requisitos

Os seguintes SDKs são compatíveis com E/S gerenciada para bancos de dados:

  • SDK do Apache Beam para Java versão 2.69.0 ou mais recente
  • SDK do Apache Beam para Python versão 2.69.0 ou mais recente

Configuração

A E/S gerenciada para bancos de dados é compatível com os seguintes parâmetros de configuração:

POSTGRES Lidos

Configuração Tipo Descrição
jdbc_url str URL de conexão para a origem JDBC.
connection_properties str Usado para definir propriedades de conexão transmitidas ao driver JDBC que ainda não foram definidas como parâmetro independente. Por exemplo, nome de usuário e senha podem ser definidos usando os parâmetros acima. O formato da string precisa ser "key1=value1;key2=value2;".
fetch_size int32 Esse método é usado para substituir o tamanho dos dados que serão buscados e carregados na memória a cada chamada de banco de dados. Ele SÓ deve ser usado se o valor padrão gerar erros de memória.
local str Nome da tabela de leitura.
num_partitions int32 O número de partições
output_parallelization boolean Se a PCollection resultante será redistribuída para que os resultados sejam distribuídos a todos os workers.
partition_column str Nome de uma coluna de tipo numérico que será usada para particionamento.
senha str Senha da fonte JDBC. Pode ser especificado como uma senha simples ou como uma especificação de secret no formato JSON se usado com um gerenciador de secrets.
read_query str Consulta SQL usada para consultar a fonte JDBC.
secret_manager str O Secret Manager a ser usado para buscar valores de secrets. Opções disponíveis: "GoogleCloudSecretManager", "GoogleCloudHsmGeneratedSecretManager". Se não for definido, nenhum gerenciador de secrets será usado, e a senha será tratada como uma senha simples.
nome de usuário str Nome de usuário da fonte JDBC.

POSTGRES Gravar

Configuração Tipo Descrição
jdbc_url str URL de conexão do coletor JDBC.
fragmentação automática boolean Se for verdadeira, permite usar um número de fragmentos determinado dinamicamente para gravação.
batch_size int64 n/a
connection_properties str Usado para definir propriedades de conexão transmitidas ao driver JDBC que ainda não foram definidas como parâmetro independente. Por exemplo, nome de usuário e senha podem ser definidos usando os parâmetros acima. O formato da string precisa ser "key1=value1;key2=value2;".
local str Nome da tabela de gravação.
senha str Senha da fonte JDBC. Pode ser especificado como uma senha simples ou como uma especificação secreta em formato JSON se usado com um gerenciador de secrets.
secret_manager str O Secret Manager a ser usado para buscar valores de secrets. Opções disponíveis: "GoogleCloudSecretManager", "GoogleCloudHsmGeneratedSecretManager". Se não for definido, nenhum gerenciador de secrets será usado, e a senha será tratada como uma senha simples.
nome de usuário str Nome de usuário da fonte JDBC.
write_statement str Consulta SQL usada para inserir registros no coletor do JDBC.

MYSQL Lidos

Configuração Tipo Descrição
jdbc_url str URL de conexão para a origem JDBC.
connection_init_sql list[str] Define as instruções SQL de inicialização da conexão usadas pelo driver. Apenas o MySQL e o MariaDB oferecem suporte a isso.
connection_properties str Usado para definir propriedades de conexão transmitidas ao driver JDBC que ainda não foram definidas como parâmetro independente. Por exemplo, nome de usuário e senha podem ser definidos usando os parâmetros acima. O formato da string precisa ser "key1=value1;key2=value2;".
disable_auto_commit boolean Se a confirmação automática na leitura deve ser desativada. O padrão é "true" se não for informado. A necessidade dessa configuração varia de acordo com a plataforma de banco de dados. O Informix exige que ele seja definido como "false", enquanto o Postgres exige que ele seja definido como "true".
fetch_size int32 Esse método é usado para substituir o tamanho dos dados que serão buscados e carregados na memória a cada chamada de banco de dados. Ele SÓ deve ser usado se o valor padrão gerar erros de memória.
local str Nome da tabela de leitura.
num_partitions int32 O número de partições
output_parallelization boolean Se a PCollection resultante será redistribuída para que os resultados sejam distribuídos a todos os workers.
partition_column str Nome de uma coluna de tipo numérico que será usada para particionamento.
senha str Senha da fonte JDBC. Pode ser especificado como uma senha simples ou como uma especificação de secret no formato JSON se usado com um gerenciador de secrets.
read_query str Consulta SQL usada para consultar a fonte JDBC.
secret_manager str O Secret Manager a ser usado para buscar valores de secrets. Opções disponíveis: "GoogleCloudSecretManager", "GoogleCloudHsmGeneratedSecretManager". Se não for definido, nenhum gerenciador de secrets será usado, e a senha será tratada como uma senha simples.
nome de usuário str Nome de usuário da fonte JDBC.

MYSQL Gravar

Configuração Tipo Descrição
jdbc_url str URL de conexão do coletor JDBC.
fragmentação automática boolean Se for verdadeira, permite usar um número de fragmentos determinado dinamicamente para gravação.
batch_size int64 n/a
connection_init_sql list[str] Define as instruções SQL de inicialização da conexão usadas pelo driver. Apenas o MySQL e o MariaDB oferecem suporte a isso.
connection_properties str Usado para definir propriedades de conexão transmitidas ao driver JDBC que ainda não foram definidas como parâmetro independente. Por exemplo, nome de usuário e senha podem ser definidos usando os parâmetros acima. O formato da string precisa ser "key1=value1;key2=value2;".
local str Nome da tabela de gravação.
senha str Senha da fonte JDBC. Pode ser especificado como uma senha simples ou como uma especificação secreta em formato JSON se usado com um gerenciador de secrets.
secret_manager str O Secret Manager a ser usado para buscar valores de secrets. Opções disponíveis: "GoogleCloudSecretManager", "GoogleCloudHsmGeneratedSecretManager". Se não for definido, nenhum gerenciador de secrets será usado, e a senha será tratada como uma senha simples.
nome de usuário str Nome de usuário da fonte JDBC.
write_statement str Consulta SQL usada para inserir registros no coletor do JDBC.

SQLSERVER Lidos

Configuração Tipo Descrição
jdbc_url str URL de conexão para a origem JDBC.
connection_properties str Usado para definir propriedades de conexão transmitidas ao driver JDBC que ainda não foram definidas como parâmetro independente. Por exemplo, nome de usuário e senha podem ser definidos usando os parâmetros acima. O formato da string precisa ser "key1=value1;key2=value2;".
disable_auto_commit boolean Se a confirmação automática na leitura deve ser desativada. O padrão é "true" se não for informado. A necessidade dessa configuração varia de acordo com a plataforma de banco de dados. O Informix exige que ele seja definido como "false", enquanto o Postgres exige que ele seja definido como "true".
fetch_size int32 Esse método é usado para substituir o tamanho dos dados que serão buscados e carregados na memória a cada chamada de banco de dados. Ele SÓ deve ser usado se o valor padrão gerar erros de memória.
local str Nome da tabela de leitura.
num_partitions int32 O número de partições
output_parallelization boolean Se a PCollection resultante será redistribuída para que os resultados sejam distribuídos a todos os workers.
partition_column str Nome de uma coluna de tipo numérico que será usada para particionamento.
senha str Senha da fonte JDBC. Pode ser especificado como uma senha simples ou como uma especificação de secret no formato JSON se usado com um gerenciador de secrets.
read_query str Consulta SQL usada para consultar a fonte JDBC.
secret_manager str O Secret Manager a ser usado para buscar valores de secrets. Opções disponíveis: "GoogleCloudSecretManager", "GoogleCloudHsmGeneratedSecretManager". Se não for definido, nenhum gerenciador de secrets será usado, e a senha será tratada como uma senha simples.
nome de usuário str Nome de usuário da fonte JDBC.

SQLSERVER Gravar

Configuração Tipo Descrição
jdbc_url str URL de conexão do coletor JDBC.
fragmentação automática boolean Se for verdadeira, permite usar um número de fragmentos determinado dinamicamente para gravação.
batch_size int64 n/a
connection_properties str Usado para definir propriedades de conexão transmitidas ao driver JDBC que ainda não foram definidas como parâmetro independente. Por exemplo, nome de usuário e senha podem ser definidos usando os parâmetros acima. O formato da string precisa ser "key1=value1;key2=value2;".
local str Nome da tabela de gravação.
senha str Senha da fonte JDBC. Pode ser especificado como uma senha simples ou como uma especificação secreta em formato JSON se usado com um gerenciador de secrets.
secret_manager str O Secret Manager a ser usado para buscar valores de secrets. Opções disponíveis: "GoogleCloudSecretManager", "GoogleCloudHsmGeneratedSecretManager". Se não for definido, nenhum gerenciador de secrets será usado, e a senha será tratada como uma senha simples.
nome de usuário str Nome de usuário da fonte JDBC.
write_statement str Consulta SQL usada para inserir registros no coletor do JDBC.

A seguir

Para mais informações e exemplos de código, consulte os seguintes documentos: