Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados do AnalyticDB for MySQL 3.0

Última atualização: Jun 27, 2026

A fonte de dados do AnalyticDB for MySQL 3.0 oferece acesso bidirecional de leitura e gravação ao AnalyticDB for MySQL 3.0. Este tópico descreve os recursos de sincronização de dados compatíveis com o DataWorks para o AnalyticDB for MySQL 3.0.

Limitações

  • Não é possível configurar nem executar tarefas de sincronização para uma source de dados do AnalyticDB for MySQL Data Lakehouse Edition em um grupo de recursos compartilhado.

  • Se a instância ADB configurada na source de dados mudar da Data Warehouse Edition para a Data Lakehouse Edition, as tarefas de sincronização que utilizam essa source e executam em um grupo de recursos compartilhado falharão. Antes de trocar de edição, verifique se há tarefas de sincronização em execução em grupos compartilhados e migre-as para um grupo de recursos serverless (recomendado) ou para um grupo de recursos exclusivo do Data Integration.

  • A sincronização em lote permite leitura a partir de views.

Tipos de dados compatíveis

Leitura em lote

A tabela a seguir apresenta os mapeamentos de tipos de dados utilizados pelo Reader do AnalyticDB for MySQL 3.0.

Categoria de tipo

Tipo de dados do AnalyticDB for MySQL 3.0

Tipos inteiros

INT, INTEGER, TINYINT, SMALLINT, BIGINT

Tipos de ponto flutuante

FLOAT, DOUBLE, DECIMAL

Tipos de string

VARCHAR

Tipos de data e hora

DATE, DATETIME, TIMESTAMP, TIME

Tipos booleanos

BOOLEAN

Gravação em lote

A tabela abaixo lista os mapeamentos de tipos de dados empregados pelo Writer do AnalyticDB for MySQL 3.0.

Tipo

Tipo de dados do AnalyticDB for MySQL 3.0

Tipos inteiros

INT, INTEGER, TINYINT, SMALLINT, BIGINT

Tipos de ponto flutuante

FLOAT, DOUBLE, DECIMAL

Tipos de string

VARCHAR

Tipos de data e hora

DATE, DATETIME, TIMESTAMP, TIME

Tipos booleanos

BOOLEAN

Adicionar uma source de dados

Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione a source de dados necessária seguindo as instruções em Gerenciamento de fontes de dados. Consulte as descrições dos parâmetros no console do DataWorks para compreender o significado de cada campo ao adicionar a source de dados.

Desenvolvimento de tarefas 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 a seguir.

Guia de configuração de tarefa de sincronização em lote de tabela única

Guia de configuração de tarefa de sincronização em tempo real de tabela única

Para o procedimento, consulte Configuração de tarefa de sincronização em tempo real de tabela única.

Guia de configuração de tarefa de sincronização em lote de banco de dados completo

Para o procedimento, consulte Configuração de sincronização de banco de dados em lote.

Guia de configuração de tarefa de sincronização em tempo real de banco de dados completo

Para o procedimento, consulte Configure sincronização completa de banco de dados em tempo real.

Apêndice: Exemplo de script e descrições de parâmetros

Configure uma tarefa de sincronização em lote usando o editor de código

Ao configurar uma tarefa de sincronização em lote pelo editor de código, defina os parâmetros relevantes no script conforme os requisitos unificados de formato. Para mais detalhes, consulte Configuração em modo script. As informações a seguir detalham os parâmetros obrigatórios para fontes de dados nesse cenário de configuração.

Exemplo de script do Reader

{
  "type": "job",
  "steps": [
    { 
      "stepType": "analyticdb_for_mysql", //Plugin name.
      "parameter": {
        "column": [ //Column names.
          "id",
          "value",
          "table"
        ],
        "connection": [
          {
            "datasource": "xxx", //Data source.
            "table": [ //Table name.
              "xxx"
            ]
          }
        ],
        "where": "", //Filter condition.
        "splitPk": "", //Shard key.
        "encoding": "UTF-8" //Encoding format.
      },
      "name": "Reader",
      "category": "reader"
    },
    { 
      "stepType": "stream",
      "parameter": {},
      "name": "Writer",
      "category": "writer"
    }
  ],
  "version": "2.0",
  "order": {
    "hops": [
      {
        "from": "Reader",
        "to": "Writer"
      }
    ]
  },
  "setting": {
    "errorLimit": {
      "record": "0" //Maximum number of dirty data records allowed during synchronization.
    },
    "speed": {
      "throttle":true,//If throttle is set to false, the mbps parameter does not take effect, indicating no rate limiting; if throttle is set to true, rate limiting is enabled.
      "concurrent":1 //Job concurrency.
      "mbps":"12"//Rate limit, where 1 mbps = 1 MB/s.
    }
  }
}

Parâmetros do script do Reader

Parâmetro

Descrição

Obrigatório

Valor padrão

datasource

Nome da source de dados. O modo script permite adicionar fontes de dados. O valor deste parâmetro deve corresponder exatamente ao nome da source adicionada.

Sim

Nenhum

table

Tabela alvo da sincronização.

Sim

Nenhum

column

Conjunto de colunas da tabela configurada para sincronização. Utilize um array JSON para descrever as informações das colunas. Por padrão, todas as colunas são usadas, por exemplo, [ * ].

  • Há suporte para seleção de colunas, permitindo exportar apenas um subconjunto específico.

  • É possível reordenar colunas, de modo que a exportação siga uma ordem diferente da estrutura original da tabela.

  • Constantes podem ser configuradas seguindo a sintaxe do MySQL, como em [“id”, “table“, “1”, “‘bazhen.csy’”, “null”, “to_char(a + 1)”, “2,3” , “true”].

    • id representa um nome de coluna comum.

    • table contém um nome de coluna reservado.

    • 1 é uma constante inteira.

    • bazhen.csy é uma constante de string.

    • null indica um ponteiro nulo.

    • to_char(a + 1) é uma expressão de função que calcula o comprimento da string.

    • 2,3 corresponde a um número de ponto flutuante.

    • true é um valor booleano.

  • O parâmetro column exige a especificação explícita do conjunto de colunas a sincronizar e não pode estar vazio.

Sim

Nenhum

splitPk

Durante a extração de dados pelo Reader do AnalyticDB for MySQL 3.0, definir splitPk indica o uso da coluna representada por splitPk para fragmentar os dados. Isso inicia tarefas concorrentes de sincronização para aumentar o throughput.

  • Recomenda-se usar a chave primária da tabela como splitPk, pois chaves primárias geralmente têm distribuição uniforme, reduzindo a probabilidade de hotspots de dados nos shards resultantes.

  • Atualmente, splitPk suporta apenas fragmentação por inteiros. Outros tipos, como strings, floats e datas, não são aceitos. Se você especificar um tipo não suportado, splitPk será ignorado e a sincronização usará um único canal.

  • Se splitPk não for definido — incluindo casos em que o parâmetro está ausente ou seu valor está vazio —, a sincronização de dados utilizará um único canal para processar a tabela.

Não

Nenhum

where

Condição de filtro. Em cenários reais, é comum sincronizar apenas os dados do dia atual. Nesse caso, defina a condição where como gmt_create>$bizdate.

  • Uma condição where viabiliza a sincronização incremental eficiente. Sem a cláusula where — seja pela ausência da chave ou do valor —, o sistema trata a tarefa como uma sincronização completa.

  • Não é permitido definir a condição where como LIMIT 10, pois isso viola a sintaxe da cláusula WHERE do SQL no MySQL.

Não

Nenhum

Exemplo de script do Writer

{
  "type": "job",
  "steps": [
    {
      "stepType": "stream",
      "parameter": {},
      "name": "Reader",
      "category": "reader"
    },
    {
      "stepType": "analyticdb_for_mysql", //Plugin name.
      "parameter": {
        "postSql": [], //Statements to execute after the import.
        "tableType": null, //Reserved field, empty by default.
        "datasource": "hangzhou_ads", //Data source name.
        "column": [ //Columns to synchronize.
          "id",
          "value"
        ],
        "guid": null,
        "writeMode": "insert", //Write mode. See the description of the writeMode parameter.
        "batchSize": 2048, //Batch write size. See the description of the batchSize parameter.
        "encoding": "UTF-8", //Encoding format.
        "table": "t5", //Name of the destination table.
        "preSql": [] //Statements to execute before the import.
      },
      "name": "Writer",
      "category": "writer"
    }
  ],
  "version": "2.0", //Version number of the configuration file format.
  "order": {
    "hops": [
      {
        "from": "Reader",
        "to": "Writer"
      }
    ]
  },
  "setting": {
    "errorLimit": {
      "record": "0" //Number of error records.
    },
    "speed": {
      "throttle":true,//If throttle is set to false, the mbps parameter does not take effect, indicating no rate limiting; if throttle is set to true, rate limiting is enabled.
      "concurrent":2, //Job concurrency.
      "mbps":"12"//Rate limit, where 1 mbps = 1 MB/s.
    }
  }
}

Parâmetros do script do Writer

Parâmetro

Descrição

Obrigatório

Valor padrão

datasource

Nome da source de dados. O modo script permite adicionar fontes de dados. O valor deste parâmetro deve corresponder exatamente ao nome da source adicionada.

Sim

Nenhum

table

Nome da tabela a ser sincronizada.

Sim

Nenhum

writeMode

Método utilizado para gravar dados. Valores válidos: insert, replace e update.

  • insert: Os dados são gravados normalmente quando não há conflito de chave primária ou índice único. Caso ocorra conflito, a linha atual é ignorada automaticamente e não sofre atualização.

  • replace: Na ausência de conflitos de chave primária ou índice único, a gravação ocorre normalmente. Se houver conflito, a linha conflitante é excluída e a nova é inserida, substituindo todas as colunas da linha original.

  • update: A gravação prossegue normalmente sem conflitos de chave primária ou índice único. Quando um conflito acontece, todas as colunas da linha original são substituídas pelos valores da nova linha.

    Nota

    Este método tem suporte apenas no modo script.

Não

insert

column

Colunas da tabela de destino onde os dados serão gravados, separadas por vírgulas. Exemplo: "column": ["id", "name", "age"]. Para gravar em todas as colunas mantendo a ordem, use , como em "column": [""].

Nota

Se o nome de uma coluna contiver a palavra select, envolva-o com crases. Por exemplo, escreva item_select_no como item_select_no.

Sim

Nenhum

preSql

Instruções SQL executadas antes do início da tarefa de sincronização. O modo assistente aceita apenas uma instrução SQL, enquanto o modo script permite múltiplas instruções, úteis para limpar dados antigos, por exemplo.

Nota

Não há suporte para transações quando existem múltiplas instruções SQL.

Não

Nenhum

postSql

Instruções SQL executadas após a conclusão da tarefa de sincronização. O modo assistente limita-se a uma única instrução, já o modo script aceita várias, permitindo ações como adicionar timestamps.

Nota

Não há suporte para transações quando existem múltiplas instruções SQL.

Não

Nenhum

batchSize

Quantidade de registros enviados em cada lote. Esse valor reduz significativamente o número de idas e vindas na rede entre o sistema de sincronização e o MySQL, melhorando o throughput geral. Valores excessivamente altos podem causar exceções de falta de memória (OOM) durante o processo.

Não

1.024