O DataWorks Data Integration oferece suporte ao PolarDB-X 2.0 como source e destino para tarefas de sincronização offline (em lote). Esta página aborda os recursos compatíveis, os pré-requisitos e a referência de parâmetros de script do PolarDB-X 2.0 Reader e Writer.
Visão geral da configuração
Para sincronizar dados entre o PolarDB-X 2.0 e outros sistemas, conclua as etapas a seguir:
Confirme que você está usando o PolarDB-X 2.0 (e não o PolarDB-X 1.0).
Conceda as permissões necessárias à conta de banco de dados que o DataWorks utilizará.
Adicione a fonte de dados PolarDB-X 2.0 no DataWorks.
Configure e execute uma tarefa de sincronização offline.
Versões compatíveis
Leitura e gravação offline: PolarDB-X 2.0. A sincronização offline também permite ler dados de views.
Limites
As fontes de dados PolarDB-X 2.0 são compatíveis com grupos de recursos serverless (recomendado) e grupos de recursos exclusivos para Data Integration.
Tipos de campo compatíveis
Para obter a lista completa de tipos de campo do PolarDB-X 2.0, consulte Tipos de dados. A tabela abaixo apresenta os principais tipos de campo e seu status de compatibilidade.
|
Tipo de campo |
Leitura offline (PolarDB-X 2.0 Reader) |
Gravação offline (PolarDB-X 2.0 Writer) |
|
TINYINT |
Compatível |
Compatível |
|
SMALLINT |
Compatível |
Compatível |
|
INTEGER |
Compatível |
Compatível |
|
BIGINT |
Compatível |
Compatível |
|
FLOAT |
Compatível |
Compatível |
|
DOUBLE |
Compatível |
Compatível |
|
DECIMAL/NUMERIC |
Compatível |
Compatível |
|
REAL |
Não compatível |
Não compatível |
|
VARCHAR |
Compatível |
Compatível |
|
JSON |
Compatível |
Compatível |
|
TEXT |
Compatível |
Compatível |
|
MEDIUMTEXT |
Compatível |
Compatível |
|
LONGTEXT |
Compatível |
Compatível |
|
VARBINARY |
Compatível |
Compatível |
|
BINARY |
Compatível |
Compatível |
|
TINYBLOB |
Compatível |
Compatível |
|
MEDIUMBLOB |
Compatível |
Compatível |
|
LONGBLOB |
Compatível |
Compatível |
|
ENUM |
Compatível |
Compatível |
|
SET |
Compatível |
Compatível |
|
BOOLEAN |
Compatível |
Compatível |
|
BIT |
Compatível |
Compatível |
|
DATE |
Compatível |
Compatível |
|
DATETIME |
Compatível |
Compatível |
|
TIMESTAMP |
Compatível |
Compatível |
|
TIME |
Compatível |
Compatível |
|
YEAR |
Compatível |
Compatível |
|
LINESTRING |
Não compatível |
Não compatível |
|
POLYGON |
Não compatível |
Não compatível |
|
MULTIPOINT |
Não compatível |
Não compatível |
|
MULTILINESTRING |
Não compatível |
Não compatível |
|
MULTIPOLYGON |
Não compatível |
Não compatível |
|
GEOMETRYCOLLECTION |
Não compatível |
Não compatível |
Pré-requisitos
Antes de começar, verifique se você:
Confirmou que está executando o PolarDB-X 2.0. Para o PolarDB-X 1.0, utilize a fonte de dados DRDS.
Possui uma conta PolarDB-X 2.0 com as permissões descritas abaixo.
Conceder permissões à conta
Crie uma conta dedicada no PolarDB-X 2.0 para acesso do DataWorks e conceda as permissões adequadas conforme o cenário de sincronização.
Leitura offline (permissão SELECT na tabela de origem)
A conta deve ter a permissão SELECT na tabela de origem.
Gravação offline (permissões de escrita na tabela de destino)
A conta precisa das permissões INSERT, DELETE e UPDATE na tabela de destino.
Sincronização em tempo real — banco de dados completo (acesso a binary logging)
Conta privilegiada: Pode ler dados de binary logging (binlog) por padrão.
Conta padrão: Conceda as permissões SELECT, REPLICATION SLAVE e REPLICATION CLIENT usando uma conta privilegiada:
-- Create a sync account and allow login from any host (% represents any host)
-- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password';
-- Grant permissions for real-time (CDC) synchronization
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'sync_account'@'%';
Adicionar uma fonte de dados
Adicione a fonte de dados PolarDB-X 2.0 ao DataWorks antes de configurar qualquer tarefa de sincronização. 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.
Configurar uma tarefa de sincronização offline
Para acessar o ponto de entrada e o procedimento de configuração, consulte Configurar uma tarefa de sincronização offline no editor de código.
Para verificar o formato do script e todos os parâmetros disponíveis, veja o Apêndice: Exemplo de script e descrições de parâmetros abaixo.
Apêndice: Exemplo de script e descrições de parâmetros
Utilize o editor de código para configurar tarefas de sincronização em lote no formato JSON. Para os requisitos unificados de formato de script, consulte Configurar uma tarefa no editor de código.
Todos os exemplos usam "type": "job" e "version": "2.0" no nível superior.
Exemplo de script do Reader
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "polardbx20",
"parameter": {
"connection": [
{
"datasource": "",
"table": [
"t1"
]
}
],
"column": [
"c1",
"c2",
"'const'"
],
"where": "",
"splitPk": "",
"checkSlave": "true",
"slaveDelayLimit": "300"
},
"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 do script do Reader
|
Parâmetro |
Descrição |
Obrigatório |
Padrão |
|
|
Nome da fonte de dados. Deve corresponder exatamente ao nome configurado na página Data Source Management. |
Sim |
Nenhum |
|
|
Tabela a ser sincronizada. Apenas uma única tabela é suportada por bloco de conexão. |
Sim |
Nenhum |
|
|
Colunas a sincronizar, definidas como um array JSON. Use |
Sim |
Nenhum |
|
|
Coluna utilizada para particionamento de dados, permitindo leituras concorrentes. Defina como chave primária para garantir shards balanceados. Aceita apenas colunas do tipo inteiro — colunas de string, ponto flutuante e data são ignoradas, fazendo com que a leitura retorne a um único canal. Se deixado em branco ou omitido, a leitura ocorre por um único canal. |
Não |
Nenhum |
|
|
Condição de filtro SQL |
Não |
Nenhum |
|
|
Quando a fonte de dados é uma instância somente leitura, verifica o atraso de replicação antes do início da tarefa para evitar perda de dados. |
Não |
|
|
|
Atraso máximo de replicação permitido, em segundos. Caso o atraso real ultrapasse esse valor, a tarefa falhará. |
Não |
|
Exemplo de script do Writer
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "PolarDB-X 2.0",
"parameter": {
"postSql": [],
"datasource": "",
"column": [
"id",
"value"
],
"writeMode": "insert",
"batchSize": 1024,
"table": "",
"preSql": [
"delete from XXX;"
]
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle": true,
"concurrent": 1,
"mbps": "12"
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Parâmetros do script do Writer
|
Parâmetro |
Descrição |
Obrigatório |
Padrão |
|
|
Nome da fonte de dados. Precisa corresponder ao nome configurado na página Data Source Management. |
Sim |
Nenhum |
|
|
Nome da tabela de destino. |
Sim |
Nenhum |
|
|
Colunas de destino para gravação, especificadas como um array JSON. Exemplo: |
Sim |
Nenhum |
|
|
Modo de tratamento de conflitos de escrita. Defina como |
Não |
|
|
|
Instrução(ões) SQL a executar antes do início da tarefa — por exemplo, |
Não |
Nenhum |
|
|
Instrução(ões) SQL a executar após a conclusão da tarefa — por exemplo, adicionar uma coluna de timestamp. A interface sem código aceita somente uma instrução. O editor de código permite várias instruções, porém sem transações. |
Não |
Nenhum |
|
|
Quantidade de registros enviados por lote. Valores maiores reduzem idas e vindas na rede e melhoram o throughput, mas podem causar estouro de memória se configurados excessivamente altos. |
Não |
|
Modos de escrita
|
Modo |
Valor no script |
Comportamento em caso de conflito |
|
insert into |
|
Se houver conflito de chave primária ou índice único, a linha conflitante é ignorada e registrada como dado sujo. |
|
replace into |
|
Na ausência de conflitos, comporta-se igual ao |
Configurações no nível da tarefa
|
Parâmetro |
Descrição |
Padrão |
|
|
Número de registros com erro permitidos antes que a tarefa falhe. |
|
|
|
Indica se deve aplicar limite de taxa. Defina como |
|
|
|
Quantidade de canais concorrentes. |
|
|
|
Taxa máxima de sincronização em Mbps. Controla a pressão de leitura e gravação na origem e no destino. Só entra em vigor quando |
|