Todos os produtos
Search
Central de documentação

DataWorks:DRDS (PolarDB-X 1.0)

Última atualização: Jun 27, 2026

Uma fonte de dados DRDS (PolarDB-X 1.0) permite ler e gravar dados no DRDS (PolarDB-X 1.0). Este tópico descreve os recursos de sincronização de dados do DataWorks para essa fonte de dados.

Primeiros passos

Para iniciar a sincronização de dados com o DRDS (PolarDB-X 1.0), conclua estas etapas em ordem:

  1. Crie uma conta de banco de dados com permissão replace into. Consulte Pré-requisitos.

  2. Adicione o DRDS (PolarDB-X 1.0) como fonte de dados no DataWorks. Consulte Adicionar uma fonte de dados.

  3. Configure e execute uma tarefa de sincronização. Consulte Desenvolver uma tarefa de sincronização de dados.

Pré-requisitos

Antes de começar, verifique se você possui:

  • Uma conta de banco de dados DRDS (PolarDB-X 1.0) com a permissão replace into. Para obter instruções de configuração, consulte Criar uma conta.

Limitações

Leitura e gravação offline

  • O plugin DRDS (PolarDB-X 1.0) é compatível apenas com o mecanismo MySQL. Como o DRDS (PolarDB-X 1.0) é um banco de dados MySQL distribuído, a maioria de seus protocolos de comunicação segue os padrões do MySQL.

  • O MySQL 8.0 no DRDS (PolarDB-X 1.0) oferece suporte a Grupos de recursos Serverless (recomendado) e grupos de recursos exclusivos para Data Integration.

  • O DRDS (PolarDB-X 1.0) Writer conecta-se ao proxy de um banco de dados DRDS (PolarDB-X 1.0) remoto via Java Database Connectivity (JDBC) e executa instruções replace into para gravar dados. A tabela de destino deve ter uma chave primária ou um índice exclusivo para evitar gravações duplicadas.

  • O DRDS (PolarDB-X 1.0) Writer recupera dados de um Reader por meio da estrutura de sincronização de dados e os grava usando instruções replace into. O Writer acumula dados e os confirma no proxy do DRDS (PolarDB-X 1.0), que determina o roteamento para uma ou mais tabelas.

    • Se não houver conflito de chave primária ou índice exclusivo, o comportamento será equivalente a insert into.

    • Em caso de conflito, a nova linha substitui todos os campos da linha existente.

    Nota

    A tarefa requer pelo menos a permissão replace into. Permissões adicionais dependem das instruções SQL especificadas em preSql e postSql.

  • Há suporte para leitura a partir de visualizações.

Tipos de campo suportados

O DRDS (PolarDB-X 1.0) Reader e Writer oferecem suporte à maioria dos tipos de dados. Verifique se seus tipos de dados constam na lista a seguir antes de configurar uma tarefa de sincronização.

Categoria de tipo

Tipos de dados do DRDS (PolarDB-X 1.0)

Tipos inteiros

INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT

Tipos de ponto flutuante

FLOAT, DOUBLE, DECIMAL

Tipos de string

VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT

Tipos de data e hora

DATE, DATETIME, TIMESTAMP, TIME, YEAR

Tipos booleanos

BIT, BOOL

Tipos binários

TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB, VARBINARY

Adicionar uma fonte de dados

Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione o DRDS (PolarDB-X 1.0) como fonte de dados. Siga as instruções em Gerenciamento de fontes de dados. As descrições dos parâmetros estão disponíveis no console do DataWorks durante a adição da fonte de dados.

Desenvolver uma tarefa de sincronização de dados

Configurar uma tarefa de sincronização offline para uma única tabela

Configurar uma tarefa de sincronização offline para um banco de dados inteiro

Consulte Configurar uma tarefa de sincronização offline para um banco de dados inteiro.

Perguntas frequentes

Por que o DRDS (PolarDB-X 1.0) Reader não garante consistência de dados entre shards?

O DRDS (PolarDB-X 1.0) é um banco de dados distribuído. Quando o Reader extrai dados de diferentes tabelas fragmentadas subjacentes, ele captura snapshots em diferentes pontos no tempo, e não de um único intervalo de tempo consistente. Portanto, não é possível garantir forte consistência entre bancos de dados e tabelas fragmentados.

Como a codificação afeta a sincronização de dados?

O DRDS (PolarDB-X 1.0) suporta configurações de codificação nos níveis de campo, tabela, banco de dados e instância. A prioridade das configurações de codificação, da maior para a menor, é: campo, tabela, banco de dados e, por fim, instância. Defina a codificação como UTF-8 no nível do banco de dados para evitar problemas.

O DRDS (PolarDB-X 1.0) Reader usa JDBC para extração de dados, o que lida com a conversão de codificação automaticamente. No entanto, se a codificação usada ao gravar dados na camada subjacente diferir da codificação declarada, o Reader não detectará a incompatibilidade e o resultado da sincronização poderá conter caracteres ilegíveis.

Como configuro a sincronização incremental de dados?

O DRDS (PolarDB-X 1.0) Reader usa instruções JDBC SELECT para extração de dados. Use uma cláusula WHERE para filtrar apenas os registros adicionados ou alterados desde a última sincronização:

  • Baseado em timestamp: Se sua aplicação grava um campo modify com um timestamp de alteração para cada registro (abrangendo adições, atualizações ou exclusões lógicas), adicione uma cláusula WHERE usando o timestamp da última execução de sincronização.

  • Baseado em ID autoincremental: Para fluxos de dados somente de anexação, adicione uma cláusula WHERE usando o ID autoincremental máximo da sincronização anterior.

Se seus dados não tiverem um campo que distinga registros novos ou modificados dos existentes, o Reader não poderá oferecer suporte à extração incremental. Nesse caso, apenas a sincronização completa de dados estará disponível.

Nota

Não há suporte para condições de filtro baseadas em nomes de tabelas físicas na cláusula WHERE.

Apêndice: Demonstração de script e parâmetros

Para configurar uma tarefa de sincronização em lote usando o editor de código, siga o formato de script unificado descrito em Configurar uma tarefa no editor de código. As seções a seguir descrevem os parâmetros e fornecem exemplos de script.

Demonstração de script do Reader

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "drds",
            "parameter": {
                "datasource": "",
                "column": [
                    "id",
                    "name"
                ],
                "where": "",
                "table": "",
                "splitPk": ""
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "throttle": true,
            "concurrent": 1,
            "mbps": "12"
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parâmetros de script do Reader

Parâmetro

Descrição

Obrigatório

Valor padrão

datasource

Nome da fonte de dados. O valor deve corresponder ao nome da fonte de dados adicionada no DataWorks.

Sim

Nenhum

table

Tabela da qual sincronizar os dados.

Sim

Nenhum

column

Colunas a serem sincronizadas, especificadas como um array JSON. Use ["*"] para selecionar todas as colunas. Oferece suporte a remoção de colunas, reordenação, constantes e expressões de função MySQL. Por exemplo: ["id", " table ", "1", "'bazhen.csy'", "null", "to_char(a + 1)", "2.3", "true"].

Sim

Nenhum

where

Condição de filtro usada para construir a instrução SELECT. Se deixado em branco, toda a tabela será sincronizada. Suporta sincronização incremental por meio de condições de data ou ID. Por exemplo: STRTODATE('${bdp.system.bizdate}','%Y%m%d') <= today AND today < DATEADD(STRTODATE('${bdp.system.bizdate}', '%Y%m%d'), interval 1 day).

Não

Nenhum

splitPk

Chave de fragmentação usada para leituras paralelas.

Não

Nenhum

Demonstração de script do Writer

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "drds",
            "parameter": {
                "postSql": [],
                "datasource": "",
                "column": [
                    "id"
                ],
                "writeMode": "insert ignore",
                "batchSize": "1024",
                "table": "test",
                "preSql": []
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "throttle": true,
            "concurrent": 1,
            "mbps": "12"
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parâmetros de script do Writer

Parâmetro

Descrição

Obrigatório

Valor padrão

datasource

Nome da fonte de dados. O valor deve corresponder ao nome da fonte de dados adicionada no DataWorks.

Sim

Nenhum

table

Tabela de destino na qual os dados serão gravados.

Sim

Nenhum

writeMode

Modo de gravação. Valores válidos: insert ignore (ignora linhas que violam regras de chave primária ou restrições) e replace into (substitui linhas existentes em caso de conflito).

Não

insert ignore

column

Colunas de destino nas quais gravar dados, especificadas como uma lista separada por vírgulas. Exemplo: ["id", "name", "age"]. Use ["*"] para gravar em todas as colunas em ordem.

Sim

Nenhum

preSql

Instruções SQL a serem executadas antes do início da tarefa de sincronização. Na interface sem código, apenas uma instrução é suportada. No editor de código, várias instruções são suportadas. Exemplo: delete * from table xxx;.

Não

Nenhum

postSql

Instruções SQL a serem executadas após a conclusão da tarefa de sincronização. Na interface sem código, apenas uma instrução é suportada. No editor de código, várias instruções são suportadas. Exemplo: delete * from table xxx where xx=xx;.

Não

Nenhum

batchSize

Número de registros a serem confirmados por lote. Valores maiores reduzem as idas e vindas de rede e melhoram o throughput, mas valores muito grandes podem causar erros de falta de memória (OOM).

Não

1024