O DataWorks Data Integration oferece suporte ao PolarDB-X 2.0 como origem e destino para tarefas de sincronização offline (em lote). Esta página aborda os recursos suportados, os pré-requisitos e a referência de parâmetros de script para o Reader e o Writer do PolarDB-X 2.0.
Visão geral da configuração
Para sincronizar dados entre o PolarDB-X 2.0 e outros sistemas, siga estas etapas:
Confirme se você está usando o PolarDB-X 2.0 (e não o PolarDB-X 1.0).
Conceda as permissões necessárias à conta do banco de dados que o DataWorks usará.
Adicione a fonte de dados do PolarDB-X 2.0 no DataWorks.
Por fim, configure e execute uma tarefa de sincronização offline.
Versões suportadas
Leitura e gravação offline: PolarDB-X 2.0. A sincronização offline também pode ler dados de views.
Limites
As fontes de dados do PolarDB-X 2.0 oferecem suporte a serverless resource groups (recommended) e exclusive resource groups for Data Integration.
Tipos de campo suportados
Para obter uma lista completa dos tipos de campo do PolarDB-X 2.0, consulte Tipos de dados. A tabela abaixo lista os principais tipos de campo e seu status de suporte.
|
Tipo de campo |
Leitura offline (PolarDB-X 2.0 Reader) |
Gravação offline (PolarDB-X 2.0 Writer) |
|
TINYINT |
Suportado |
Suportado |
|
SMALLINT |
Suportado |
Suportado |
|
INTEGER |
Suportado |
Suportado |
|
BIGINT |
Suportado |
Suportado |
|
FLOAT |
Suportado |
Suportado |
|
DOUBLE |
Suportado |
Suportado |
|
DECIMAL/NUMERIC |
Suportado |
Suportado |
|
REAL |
Não suportado |
Não suportado |
|
VARCHAR |
Suportado |
Suportado |
|
JSON |
Suportado |
Suportado |
|
TEXT |
Suportado |
Suportado |
|
MEDIUMTEXT |
Suportado |
Suportado |
|
LONGTEXT |
Suportado |
Suportado |
|
VARBINARY |
Suportado |
Suportado |
|
BINARY |
Suportado |
Suportado |
|
TINYBLOB |
Suportado |
Suportado |
|
MEDIUMBLOB |
Suportado |
Suportado |
|
LONGBLOB |
Suportado |
Suportado |
|
ENUM |
Suportado |
Suportado |
|
SET |
Suportado |
Suportado |
|
BOOLEAN |
Suportado |
Suportado |
|
BIT |
Suportado |
Suportado |
|
DATE |
Suportado |
Suportado |
|
DATETIME |
Suportado |
Suportado |
|
TIMESTAMP |
Suportado |
Suportado |
|
TIME |
Suportado |
Suportado |
|
YEAR |
Suportado |
Suportado |
|
LINESTRING |
Não suportado |
Não suportado |
|
POLYGON |
Não suportado |
Não suportado |
|
MULTIPOINT |
Não suportado |
Não suportado |
|
MULTILINESTRING |
Não suportado |
Não suportado |
|
MULTIPOLYGON |
Não suportado |
Não suportado |
|
GEOMETRYCOLLECTION |
Não suportado |
Não suportado |
Pré-requisitos
Antes de começar, certifique-se de que você:
Confirmou que está executando o PolarDB-X 2.0. Para o PolarDB-X 1.0, use o DRDS data source.
Tem uma conta do PolarDB-X 2.0 com as permissões descritas abaixo.
Conceder permissões à conta
Para começar, crie uma conta dedicada do PolarDB-X 2.0 para acesso ao DataWorks e, em seguida, conceda as permissões apropriadas com base no seu 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 gravação na tabela de destino)
A conta deve ter as permissões INSERT, DELETE e UPDATE na tabela de destino.
Sincronização em tempo real — banco de dados completo (acesso a logs binários)
Conta privilegiada: Pode ler dados de log binário (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 do PolarDB-X 2.0 ao DataWorks antes de configurar qualquer tarefa de sincronização. Siga as instruções em Data source configuration. As descrições dos parâmetros estão disponíveis no console do DataWorks ao adicionar a fonte de dados.
Configurar uma tarefa de sincronização offline
Para saber o caminho de acesso e o procedimento de configuração, consulte Configure an offline sync task in the code editor.
Para o formato do script e todos os parâmetros disponíveis, consulte Appendix: Script demo and parameter descriptions abaixo.
Apêndice: Exemplo de script e descrições de parâmetros
Use o editor de código para configurar tarefas de sincronização em lote no formato JSON. Para os requisitos de formato de script unificado, consulte Configure a task in the code editor.
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 |
|
|
O nome da fonte de dados. Deve corresponder ao nome configurado na página Data Source Management. |
Sim |
Nenhum |
|
|
A tabela a ser sincronizada. Suporta apenas uma tabela por bloco de conexão. |
Sim |
Nenhum |
|
|
As colunas a serem sincronizadas, como uma matriz JSON. Use |
Sim |
Nenhum |
|
|
A coluna a ser usada para particionamento de dados, permitindo leituras simultâneas. Para shards equilibrados, defina como a chave primária. Oferece suporte apenas a colunas do tipo inteiro — colunas de string, ponto flutuante e data são ignoradas, e os dados voltam para um único canal. Se estiver em branco ou omitido, os dados serão lidos por meio de um único canal. |
Não |
Nenhum |
|
|
Uma condição de filtro |
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 |
|
|
|
O atraso máximo de replicação permitido em segundos. Se o atraso real exceder 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 |
|
|
O nome da fonte de dados. Deve corresponder ao nome configurado na página Data Source Management. |
Sim |
Nenhum |
|
|
O nome da tabela de destino. |
Sim |
Nenhum |
|
|
As colunas de destino nas quais gravar, como uma matriz JSON. Exemplo: |
Sim |
Nenhum |
|
|
O modo de conflito de gravação. Para o modo de conflito, defina como |
Não |
|
|
|
Instruções SQL a serem executadas antes do início da tarefa — por exemplo, |
Não |
Nenhum |
|
|
Instruções SQL a serem executadas após a conclusão da tarefa — por exemplo, atualize uma coluna de carimbo de data/hora. Na interface sem código, apenas uma instrução é permitida. O editor de código suporta várias instruções. Transações com várias instruções não são suportadas. |
Não |
Nenhum |
|
|
O número de registros enviados por lote. Um valor maior reduz as requisições de ida e volta na rede e melhora o throughput, mas pode causar estouro de memória se for definido muito alto. |
Não |
|
Modos de gravação
|
Modo |
Valor do script |
Comportamento em caso de conflito |
|
insert into |
|
Se ocorrer um conflito de chave primária ou índice único, a linha conflitante será ignorada e registrada como dados sujos. |
|
replace into |
|
Se não ocorrer nenhum conflito, comporta-se da mesma forma que o |
Configurações no nível do job
|
Parâmetro |
Descrição |
Padrão |
|
|
O número de registros com erro permitidos antes que a tarefa falhe. |
|
|
|
Se deve aplicar um limite de taxa. Para ativar, defina como |
|
|
|
O número de canais simultâneos. |
|
|
|
A taxa máxima de sincronização em Mbps. Controla a pressão de leitura/gravação na origem e no destino. Só entra em vigor quando o |
|