E/S gerenciada pelo Dataflow para bancos de dados

O Dataflow é compatível com leitura e gravação em bancos de dados usando Java Database Connectivity (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 fonte 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 é necessário reembaralhar a PCollection resultante 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.
read_query str Consulta SQL usada para consultar a fonte JDBC.
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 para gravar.
senha str Senha da fonte JDBC.
nome de usuário str Nome de usuário da fonte JDBC.
write_statement str Consulta SQL usada para inserir registros no coletor JDBC.

MYSQL Lidos

Configuração Tipo Descrição
jdbc_url str URL de conexão para a fonte 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 fornecido. 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 é necessário reembaralhar a PCollection resultante 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.
read_query str Consulta SQL usada para consultar a fonte JDBC.
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 para gravar.
senha str Senha da fonte JDBC.
nome de usuário str Nome de usuário da fonte JDBC.
write_statement str Consulta SQL usada para inserir registros no coletor JDBC.

SQLSERVER Lidos

Configuração Tipo Descrição
jdbc_url str URL de conexão para a fonte 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 fornecido. 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 é necessário reembaralhar a PCollection resultante 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.
read_query str Consulta SQL usada para consultar a fonte JDBC.
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 para gravar.
senha str Senha da fonte JDBC.
nome de usuário str Nome de usuário da fonte JDBC.
write_statement str Consulta SQL usada para inserir registros no coletor JDBC.

A seguir

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