Todos os produtos
Search
Central de documentação

DataWorks:HybridDB for MySQL

Última atualização: Jun 27, 2026

O DataWorks oferece o HybridDB for MySQL Reader e o HybridDB for MySQL Writer para sincronizar dados entre o HybridDB for MySQL e outras fontes de dados.

Limites

  • O HybridDB for MySQL Reader lê tabelas e visualizações. Na leitura de tabelas, selecione todas as colunas ou um subconjunto, reordene-as, adicione campos constantes e use funções do HybridDB for MySQL, como now().

  • A sincronização em lote aceita visualizações.

Mapeamentos de tipos de dados

O HybridDB for MySQL Reader e o Writer mapeiam os tipos de dados conforme descrito abaixo.

Categoria

Tipos de dados do HybridDB for MySQL

Observações

Inteiro

INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT, YEAR

O tipo TINYINT(1) é tratado como dado inteiro

Ponto flutuante

FLOAT, DOUBLE, DECIMAL

String

VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT

Data e hora

DATE, DATETIME, TIMESTAMP, TIME

Booleano

BOOL

Binário

TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB, VARBINARY

Os tipos de dados não listados acima não são suportados.

Adicionar uma fonte de dados

Adicione a fonte de dados do HybridDB for MySQL ao DataWorks antes de criar uma tarefa de sincronização. Para obter instruções, consulte 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

Sincronizar dados de uma única tabela

Use um dos métodos a seguir:

Para consultar a lista completa de parâmetros e exemplos de código para o editor de código, veja Apêndice: Código e parâmetros.

Sincronizar todos os dados de um banco de dados

Consulte Configure uma tarefa de sincronização completa de banco de dados em tempo real.

Apêndice: Código e parâmetros

HybridDB for MySQL Reader

Exemplo de código

{
    "type": "job",
    "steps": [
        {
            "parameter": {
                "datasource": "px_aliyun_hymysql",
                "column": [
                    "id",
                    "name",
                    "sex",
                    "salary",
                    "age",
                    "pt"
                ],
                "where": "id=10001",
                "splitPk": "id",
                "table": "person"
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "parameter": {}
        }
    ],
    "version": "2.0",
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    },
    "setting": {
        "errorLimit": {
            "record": ""
        },
        "speed": {
            "concurrent": 7,
            "throttle": true,
            "mbps": 1
        }
    }
}

Parâmetros

Parâmetro

Descrição

Obrigatório

Padrão

datasource

Nome da fonte de dados. Deve corresponder exatamente ao nome configurado no DataWorks.

Sim

Nenhum

table

Nome da tabela de origem. Cada tarefa de sincronização lê dados de apenas uma tabela.

Sim

Nenhum

column

Colunas a serem lidas, definidas como um array JSON. Use ["*"] para ler todas as colunas. Aceita reordenação, valores constantes e expressões — por exemplo, ["id", "table", "1", "'mingya.wmy'", "'null'", "to_char(a+1)", "2.3", "true"].

Sim

Nenhum

splitPk

Coluna usada para fragmentar os dados em leituras paralelas. Defina como uma coluna de chave primária para garantir a distribuição mais uniforme possível. Apenas colunas inteiras são suportadas. Colunas do tipo string, ponto flutuante e data são ignoradas, e o leitor volta ao modo de thread única.

Não

Nenhum

where

Cláusula WHERE para filtrar linhas, como gmt_create > $bizdate para ler apenas os dados de hoje. Deixe em branco para ler todas as linhas. Não use cláusulas LIMIT.

Não

Nenhum

querySql

SQL personalizado para filtragem avançada ou junções de múltiplas tabelas. Quando definido, substitui os parâmetros table, column, where e splitPk.

Não

Nenhum

singleOrMulti

Obrigatório para tabelas fragmentadas. Defina como multi.

Sim (apenas tabelas fragmentadas)

multi

Importante

Ao configurar uma tabela fragmentada diretamente no editor de código (sem alternar a partir da interface sem código), o parâmetro "singleOrMulti": "multi" não é gerado automaticamente. Adicione-o manualmente. Sem esse parâmetro, o leitor extrai dados apenas do primeiro shard.

Quando querySql está definido, o leitor ignora table , column , where e splitPk . As credenciais de conexão ainda são lidas de datasource .

HybridDB for MySQL Writer

Exemplo de código

{
    "type": "job",
    "steps": [
        {
            "parameter": {}
        },
        {
            "parameter": {
                "postSql": [],
                "datasource": "px_aliyun_hy***",
                "column": [
                    "id",
                    "name",
                    "sex",
                    "salary",
                    "age",
                    "pt"
                ],
                "writeMode": "insert",
                "batchSize": 256,
                "encoding": "UTF-8",
                "table": "person_copy",
                "preSql": []
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "version": "2.0",
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    },
    "setting": {
        "errorLimit": {
            "record": ""
        },
        "speed": {
            "concurrent": 7,
            "throttle": true,
            "mbps": 1
        }
    }
}

Modos de gravação

Modo

Comportamento quando não há conflito

Comportamento quando ocorre conflito de chave primária ou índice único

insert (padrão)

Grava os dados diretamente

Não consegue gravar nas linhas conflitantes; os dados conflitantes são tratados como dados sujos

replace

Grava os dados diretamente

Atualiza os campos especificados nas linhas conflitantes

Parâmetros

Parâmetro

Descrição

Obrigatório

Padrão

datasource

Nome da fonte de dados. Deve corresponder exatamente ao nome configurado no DataWorks.

Sim

Nenhum

table

Nome da tabela de destino.

Sim

Nenhum

writeMode

Modo de gravação. Consulte a seção Modos de gravação acima.

Não

insert

column

Colunas a serem gravadas, especificadas como um array JSON — por exemplo, ["id", "name", "age"]. Use ["*"] para gravar em todas as colunas.

Sim

Nenhum

preSql

Instrução SQL executada antes da tarefa de sincronização, útil para excluir dados desatualizados, por exemplo. A interface sem código aceita uma instrução; já o editor de código permite múltiplas instruções.

Não

Nenhum

postSql

Instrução SQL executada após a tarefa de sincronização, como adicionar um carimbo de data/hora. A interface sem código aceita uma instrução; o editor de código permite várias.

Não

Nenhum

batchSize

Quantidade de registros gravados por lote. Ajuste este valor conforme sua carga de trabalho. Valores excessivamente altos podem provocar erros de falta de memória (OOM).

Não

1.024