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
Para o procedimento, consulte Configuração por UI sem código e Configuração em modo script.
Para o conjunto completo de parâmetros do modo script e um exemplo de script, consulte o Apêndice: Exemplo de script e descrições de parâmetros abaixo.
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, [ * ].
|
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.
|
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
|
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.
|
Não |
insert |
|
column |
Colunas da tabela de destino onde os dados serão gravados, separadas por vírgulas. Exemplo: Nota
Se o nome de uma coluna contiver a palavra select, envolva-o com crases. Por exemplo, escreva item_select_no como |
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 |