Todos os produtos
Search
Central de documentação

DataWorks:Configure a sharding batch synchronization task

Última atualização: Sep 21, 2026

O DataWorks permite configure uma tarefa de sincronização em lote no modo assistente ou no modo de script para sincronizar dados de bancos de dados e tabelas fragmentados para uma única tabela de destino. Este tópico apresenta um exemplo de sincronização de dados de bancos de dados MySQL fragmentados.

Pré-requisito

Prepare as fontes de dados para sincronização. Para mais informações, consulte Supported data sources and read/write plug-ins.

Visão geral

Use os métodos a seguir para crie uma tarefa de sincronização em lote para fragmentação. A tabela abaixo compara esses métodos.

Item

Sharded data source and codeless UI (recomendado)

Standard data source and codeless UI

Code editor

Suporte a interface sem código

Sim

Sim

Não

Configuração de nome de tabela baseada em regras

Permite configure nomes de tabelas de origem usando expressões regulares. Em tempo de execução, a tarefa pesquisa e sincroniza as tabelas correspondentes.

Não compatível.

Permite configure nomes de tabelas usando um intervalo numérico, por exemplo, tb_[1-10]. O intervalo deve ser sequencial e cada tabela do intervalo deve existir.

Exigência de schemas de tabela idênticos

Configure uma política de campos ausentes para permitir que algumas tabelas não tenham determinados campos. Esses campos são gerados como valores NULL.

Todas as tabelas devem ter schemas idênticos.

Referência de mapeamento de colunas

A primeira tabela correspondente na fonte de metadados da fonte de dados fragmentada.

A primeira tabela da primeira fonte de dados.

Escrito manualmente no modo de script.

Número de fontes de dados compatíveis

Uma fonte de dados fragmentada comporta até 5.000 fontes de dados referenciadas.

Recomenda-se configure no máximo 50 fontes de dados por nó.

Necessidade de modifique e publicar o nó ao adicionar uma fonte de dados

Não é necessário modifique o nó. Após modifique a fonte de dados, a alteração entra em vigor nas instâncias em execução subsequentes.

Modifique a tarefa para adicionar a fonte de dados e configure o nome da tabela correspondente.

Tipos de fontes de dados compatíveis

MySQL, PolarDB, PolarDB-O, OceanBase

MySQL, PolarDB, AnalyticDB, OceanBase

MySQL, PolarDB, AnalyticDB, SQL Server, Oracle, PostgreSQL, DM, DB2, Oracle, OceanBase

Fonte de dados fragmentada e interface sem código

  1. Acesse o DataWorks console. Na região desejada, clique em Data Integration > Data Integration no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Integration.

  2. No painel de navegação à esquerda, clique em Data Source, clique em Add Data Source e selecione um tipo de fonte de dados. Este método é compatível com MySQL, PolarDB e PolarDB-O.

  3. Crie uma fonte de dados padrão para cada banco de dados fragmentado. Este tópico usa MySQL como exemplo. Para ver as etapas detalhadas, consulte Configure a MySQL data source.

    Após a criação, visualize a fonte de dados MySQL de cada banco de dados fragmentado na página Data Source List. Por exemplo, o nome da fonte de dados é MySQL_20241114, correspondendo ao banco de dados user_info_20241114.

  4. Crie uma Sharded Data Source para consolidar múltiplas fontes de dados padrão em uma única fonte a ser usada como source na sincronização de dados.

    1. Clique em Add Data Source e selecione Sharded Data Source. Na caixa de diálogo Add Data Source, clique na aba Sharded Data Source. Os tipos de fonte de dados disponíveis incluem MySQL (sharded), PolarDB-O (sharded) e PolarDB (sharded).

    2. Selecione o tipo de fonte de dados fragmentada conforme necessário e configure os parâmetros relevantes. Este tópico usa MySQL (sharded) como exemplo.

      No campo Data Source Name, insira um nome como Database_and_Table_Sharding_of_MySQL. Após concluir a configuração, clique em OK para crie a fonte de dados fragmentada.

      Descrição dos principais parâmetros:

      • Defina um nome personalizado em Data Source Name.

      • Select Data Sources: selecione as fontes de dados padrão criadas para cada banco de dados fragmentado.

      • Meta Data Source: na sincronização de fragmentação, todas as fontes de dados devem ter schemas de tabela idênticos. Selecione uma das fontes de dados como modelo de metadados padrão para recuperar o schema de tabela padrão ao configure uma tarefa de sincronização.

        Importante

        Se os schemas de tabela entre as fontes de dados forem inconsistentes, as tarefas de sincronização subsequentes falharão.

  5. Create a batch synchronization node

  6. Configure a tarefa de sincronização de fragmentação.

    Para configure a fragmentação no modo assistente: em Data Source, selecione MySQL (sharded) e escolha a fonte de dados fragmentada criada anteriormente. Para ver as etapas completas de configuração da tarefa, consulte Configure a batch synchronization task in wizard mode.

    Nota

    Este tópico usa MySQL (sharded) como exemplo. Selecione o tipo adequado conforme sua necessidade.

    Na página de teste de conectividade de rede, o nome da fonte de dados de origem é Database_and_Table_Sharding_of_MySQL, o grupo de recursos é Serveless_Resource (China (Shanghai), pagamento conforme o uso, 0,5 CU) e o destino é MaxCompute(ODPS) com o nome de fonte de dados doc_test_project. Os resultados do teste de conectividade de rede indicam que os três estão conectados.

  7. Clique em Next.

  8. Selecione as tabelas a sincronizar, clique em Save e em Publish, e conclua as etapas restantes.

    Na página Configure Source and Destination, na Etapa 2 Configure Task, a seção Source à esquerda está configurada da seguinte forma: a fonte de dados é MySQL (sharded), o método de seleção de tabela é Fixed Table, a tabela é user_info e a chave de divisão é id. (A fragmentação exige que todas as tabelas tenham schemas idênticos; caso contrário, ocorrem erros de execução.) A seção Destination à direita está configurada da seguinte forma: a fonte de dados é MaxCompute(ODPS), a tabela é user_info, as informações de partição são pt=${bizdate}, o modo de escrita é Clear existing data before writing (Insert Overwrite) e a conversão de strings vazias para NULL está defina como No.

Fonte de dados padrão e interface sem código

  1. Crie uma fonte de dados padrão para cada banco de dados fragmentado. Este tópico usa MySQL como exemplo. Para ver as etapas detalhadas, consulte Configure a MySQL data source.

  2. Create a batch synchronization node

  3. Configure a tarefa de sincronização de fragmentação.

    Para configure a fragmentação no modo assistente: na seção Data Source, clique em + Edit Source. No painel de seleção de fonte de dados exibido, selecione e adicione as fontes de dados correspondentes aos múltiplos bancos de dados fragmentados. Para ver as etapas completas de configuração da tarefa, consulte Configure a batch synchronization task in wizard mode.

  4. Adicione múltiplas fontes de dados padrão em Selected Data Sources e clique em Confirm.

  5. Clique em Next.

  6. Selecione as tabelas a sincronizar de cada fonte de dados, clique em Save e em Publish, e conclua as etapas restantes.

    Importante

    Nessa configuração, a opção Data Sources for Sharded Databases Use Same Account and Password é selecionada por padrão. Isso significa que todas as fontes de dados fragmentadas usarão a conta e a senha configuradas na primeira fonte de dados para acessar os bancos de dados. Se os bancos de dados fragmentados usarem contas e senhas distintas, desmarque essa opção para que cada fonte de dados utilize suas próprias credenciais.

    Na página Configure Source and Destination, a seção Source à esquerda contém três fontes de dados MySQL fragmentadas configuradas (como MySQL_20241112, MySQL_20241114 e MySQL_20241113), e cada fonte de dados seleciona a tabela user_info. A página exibe um aviso: "Sharding requires all tables to have identical schemas; otherwise, execution errors occur." A seção Destination à direita seleciona a fonte de dados MaxCompute(ODPS), a tabela é user_info, as informações de partição estão defina como pt=${bizdate} e o modo de escrita é Clear existing data before writing (Insert Overwrite).

Editor de código

  1. Create a batch synchronization node

  2. Configure a tarefa de sincronização de fragmentação.

    Para configure a fragmentação no modo de script: veja a seguir um exemplo de script. Para ver as etapas completas de configuração da tarefa, consulte Configure a batch synchronization task in script mode.

    Importante

    Antes de executar a tarefa, remova os comentários do código a seguir.

    {
        "type":"job",
        "version":"2.0",
        "steps":[
            {
                "stepType":"mysql",
                "parameter":{
                    "envType":0,
                    "column":[
                        "id",
                        "name"
                    ],
                    "socketTimeout":3600000,
                    "tableComment":"",
                    "connection":[    //Configure connections based on the number of sharded databases
                        {
                            "datasource":"datasourceName1",  //Data source 1 for sharded databases and tables
                            "table":[           //Table list 1 for sharded databases and tables
                                "tb1"
                            ]
                        },
                        {
                            "datasource":"datasourceName2", //Data source 2 for sharded databases and tables
                            "table":[          //Table list 2 for sharded databases and tables
                                "tb2",
                                "tb3"
                            ]
                        }
                    ],
                    "useSpecialSecret":true,//Each data source uses its own password
                    "where":"",
                    "splitPk":"id",
                    "encoding":"UTF-8"
                    },
                "name":"Reader",
                "category":"reader"
                },
            {
                "stepType":"odps",
                "parameter":{
                    "partition":"pt=${bizdate}",
                    "truncate":true,
                    "datasource":"odpsname",
                    "envType":0,
                    "isSupportThreeModel":false,
                    "column":[
                        "id",
                        "name"
                    ],
                    "emptyAsNull":false,
                    "tableComment":"",
                    "table":"t1",
                    "consistencyCommit":false
                    },
                "name":"Writer",
                "category":"writer"
                }
        ],
        "setting":{
            "executeMode":null,
            "errorLimit":{
                "record":""
                },
            "speed":{
                "concurrent":2,
                "throttle":false
                }
        },
        "order":{
            "hops":[
                {
                    "from":"Reader",
                    "to":"Writer"
                    }
            ]
        }
    }