Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados AnalyticDB for PostgreSQL

Última atualização: Jul 17, 2026

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

Nota

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

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 [*].

  • Selecione um subconjunto de colunas para exportação.

  • Altere a ordem das colunas conforme necessário.

  • Configure constantes seguindo a sintaxe SQL. Exemplo: ["id", "table","1","'mingya.wmy'","'null'", "to_char(a+1)","2,3","true"].

    • id: nome de coluna comum.

    • table: nome de coluna que também é palavra-chave reservada.

    • 1: constante inteira.

    • 'mingya.wmy': constante string. O valor deve estar entre aspas simples (').

    • 'null': constante string.

    • to_char(a+1): expressão de função.

    • 2,3: número de ponto flutuante.

    • true: valor booleano.

  • Especifique explicitamente as colunas para sincronização no parâmetro column. O valor não pode estar vazio.

Sim

Nenhum

splitPk

Chave de fragmentação. Defina splitPk como uma coluna para habilitar a extração paralela de dados via sharding.

  • Recomenda-se usar a chave primária da tabela, pois geralmente apresenta distribuição uniforme e ajuda a evitar hotspots de dados.

  • O parâmetro splitPk suporta sharding apenas para colunas inteiras. Caso especifique uma coluna de outro tipo, como string, float ou data, o Data Integration ignorará a configuração splitPk e sincronizará os dados em thread única.

  • Sem a configuração do parâmetro splitPk ou se este estiver vazio, a tarefa executará a sincronização utilizando thread única.

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: id>2 and sex=1.

  • Use a cláusula WHERE para realizar sincronizações incrementais.

  • Na ausência de uma cláusula WHERE, o conector sincronizará toda a tabela.

Não

Nenhum

querySql (avançado; indisponível na Codeless UI)

Consulta SQL personalizada para filtragem de dados. Quando o parâmetro where não consegue expressar suas condições de filtro, use este parâmetro. O Data Integration ignora os parâmetros column, table e where quando esta opção está configurada. Exemplo: select a,b from table_a join table_b on table_a.id = table_b.id.

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.

  • insert: Executa a instrução INSERT INTO ... VALUES ... do PostgreSQL para gravar dados. Este é o modo recomendado.

  • copy: O PostgreSQL oferece o comando COPY para transferir dados entre tabelas e arquivos (entrada ou saída padrão). O Data Integration permite o uso de COPY FROM para carregar dados em uma tabela. Use este modo para obter melhor desempenho.

  • upsert: Em caso de conflito de dados durante a escrita, o sistema trata os dados novos e existentes com base no parâmetro conflictMode.

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:

  • replace: Os novos dados recebidos sobrescrevem os dados existentes em caso de conflito.

  • ignore: O conector descarta os novos dados e mantém os existentes diante de um conflito.

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: "column":["id","name","age"]. Para gravar em todas as colunas sequencialmente, use um asterisco (). Exemplo: "column":[""].

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