A fonte de dados AnalyticDB for PostgreSQL oferece recursos bidirecionais de leitura e escrita por meio do Data Integration.
Limitações
A sincronização em lote permite ler dados de uma visualize.
Versões compatíveis
O conector é compatível com versões até a 7,0, inclusive.
Tipos de dados compatíveis
Leitura em lote
O AnalyticDB for PostgreSQL Reader aceita a maioria dos tipos de dados do AnalyticDB for PostgreSQL. Verifique se os tipos de dados são compatíveis antes de iniciar o uso.
A tabela a seguir lista os tipos de dados compatíveis para leituras em lote.
|
Categoria |
Tipo do AnalyticDB for PostgreSQL |
|
Inteiro |
BIGINT, BIGSERIAL, INTEGER, SMALLINT, SERIAL e GEOMETRY |
|
Ponto flutuante |
DOUBLE, PRECISION, MONEY, NUMERIC e REAL |
|
String |
VARCHAR, CHAR, TEXT, BIT e INET |
|
Data e hora |
DATE, TIME e TIMESTAMP |
|
Booleano |
BOOL |
|
Binário |
BYTEA |
Escrita em lote
O AnalyticDB for PostgreSQL Writer aceita a maioria dos tipos de dados do AnalyticDB for PostgreSQL. Verifique se os tipos de dados são compatíveis antes de iniciar o uso.
A tabela a seguir mapeia os tipos de dados do DataWorks para os tipos de dados do AnalyticDB for PostgreSQL destinados a escritas em lote.
|
Tipo de dados do DataWorks |
Tipo do AnalyticDB for PostgreSQL |
|
LONG |
BIGINT, BIGSERIAL, INTEGER, SMALLINT e SERIAL |
|
DOUBLE |
DOUBLE, PRECISION, MONEY, NUMERIC e REAL |
|
STRING |
VARCHAR, CHAR, TEXT, BIT, INET e GEOMETRY |
|
DATE |
DATE, TIME e TIMESTAMP |
|
BOOLEAN |
BOOL |
|
BYTES |
BYTEA |
Use uma conversão de tipo (type cast), como a_inet::varchar, para os tipos de dados MONEY, INET e BIT.
Adicionar uma fonte de dados
Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione a fonte de dados necessária seguindo as instruções em Gerenciamento de fontes de dados. Consulte as descrições de parâmetros no console do DataWorks para compreender o significado de cada parâmetro ao adicionar uma fonte de dados.
Desenvolver uma tarefa de sincronização de dados
Para obter informações sobre o ponto de entrada e o procedimento de configuração de uma tarefa de sincronização, consulte os guias de configuração a seguir.
Sincronização em lote de tabela única
Para o procedimento, consulte Configure uma tarefa de sincronização usando a Codeless UI e Configure uma tarefa de sincronização usando o Editor de Código.
Para uma lista completa de parâmetros e exemplos de script para o Editor de Código, consulte Apêndice: Exemplos de script e parâmetros.
Sincronização em lote de banco de dados completo
Para o procedimento, consulte Configure uma tarefa de sincronização em lote para um banco de dados inteiro.
Apêndice: Exemplos de script e parâmetros
Configure uma tarefa de sincronização em lote usando o editor de código
Para configure uma tarefa de sincronização em lote com o editor de código, defina os parâmetros relevantes no script conforme os requisitos unificados de formato. Para mais informações, consulte Configuração em modo de script. As informações a seguir descrevem os parâmetros obrigatórios para fontes de dados durante a configuração de tarefas de sincronização em lote via editor de código.
Exemplo de script do Reader
{
"type": "job",
"steps": [
{
"parameter": {
"datasource": "test_004",// The name of the data source.
"column": [// The columns in the source table.
"id",
"name",
"sex",
"salary",
"age"
],
"where": "id=1001",// The WHERE clause.
"splitPk": "id",// The shard key.
"table": "public.person"// The name of the source table.
},
"name": "Reader",
"category": "reader"
},
{
"parameter": {},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",// The version number.
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {// The error record count.
"record": ""
},
"speed": {
"concurrent": 6,// The number of concurrent threads.
"throttle": true,// Specifies whether to enable throttling. If you set this parameter to false, throttling is disabled and the mbps parameter does not take effect. If you set this parameter to true, throttling is enabled.
"mbps":"12"// The throttling rate in MB/s.
}
}
}
Parâmetros do Reader
|
Parâmetro |
Descrição |
Obrigatório |
Padrão |
|
datasource |
Nome da fonte de dados conforme registrado no DataWorks. |
Sim |
Nenhum |
|
table |
Nome da tabela de origem. |
Sim |
Nenhum |
|
column |
Colunas a sincronizar, especificadas como um array JSON. Por padrão, todas as colunas são sincronizadas, conforme indicado por [*].
|
Sim |
Nenhum |
|
splitPk |
Chave de fragmentação. Defina splitPk como uma coluna para habilitar a extração paralela de dados via sharding.
|
Não |
Nenhum |
|
where |
Cláusula WHERE usada para filtrar os dados extraídos. O leitor constrói uma consulta SQL a partir dos parâmetros column, table e where. Por exemplo:
|
Não |
Nenhum |
|
querySql (avançado; indisponível na Codeless UI) |
Consulta SQL personalizada para filtragem de dados. Quando o parâmetro Ao configurar o parâmetro querySql, o AnalyticDB for PostgreSQL Reader desconsidera os parâmetros column, table e where. |
Não |
Nenhum |
|
fetchSize |
Quantidade de registros buscados por lote no banco de dados. Valores maiores reduzem as idas e vindas na rede e podem melhorar o desempenho da extração. Nota
Um valor de fetchSize superior a 2048 pode causar erro de falta de memória (OOM) durante o processo de sincronização de dados. |
Não |
512 |
Exemplo de script do Writer
{
"type": "job",
"steps": [
{
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"parameter": {
"postSql": [],// The post-execution SQL statement.
"datasource": "test_004",// The name of the data source.
"column": [// The columns in the destination table.
"id",
"name",
"sex",
"salary",
"age"
],
"table": "public.person",// The name of the destination table.
"preSql": []// The pre-execution SQL statement.
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",// The version number.
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {// The error record count.
"record": ""
},
"speed": {
"throttle":true,// Specifies whether to enable throttling. If you set this parameter to false, throttling is disabled and the mbps parameter does not take effect. If you set this parameter to true, throttling is enabled.
"concurrent":6, // The number of concurrent threads.
"mbps":"12"// The throttling rate.
}
}
}
Parâmetros do Writer
|
Parâmetro |
Descrição |
Obrigatório |
Padrão |
|
datasource |
Nome da fonte de dados conforme registrado no DataWorks. |
Sim |
Nenhum |
|
table |
Nome da tabela de destino. |
Sim |
Nenhum |
|
writeMode |
Modo de escrita. Valores válidos: insert, copy e upsert.
|
Não |
insert |
|
conflictMode |
Quando o writeMode está definido como upsert e ocorre um conflito de chave primária ou índice único na escrita para o PostgreSQL, selecione uma das seguintes políticas de tratamento de conflitos:
Nota
A configuração da política de tratamento de conflitos está disponível apenas no Editor de Código. |
Não |
replace |
|
column |
Colunas de destino para gravação de dados, separadas por vírgulas (,). Exemplo: |
Sim |
Nenhum |
|
preSql |
Instrução SQL executada antes do início da tarefa de sincronização. A Codeless UI aceita apenas uma instrução; já o Editor de Código permite múltiplas instruções, úteis, por exemplo, para limpar dados antigos. |
Não |
Nenhum |
|
postSql |
Instrução SQL executada após a conclusão da tarefa de sincronização. A Codeless UI suporta somente uma instrução; o Editor de Código possibilita o uso de várias instruções, como para adicionar um timestamp. |
Não |
Nenhum |
|
batchSize |
Número de registros a serem escritos por lote. Valores elevados diminuem as idas e vindas na rede e aumentam o throughput, mas valores excessivos podem provocar erros de OOM. |
Não |
1024 |