A source de dados MariaDB conecta o DataWorks ao MariaDB para sincronização offline bidirecional, permitindo leitura e gravação em bancos de dados e views do MariaDB. Este tópico aborda as versões compatíveis, tipos de campos, configure de contas e parâmetros de script para tarefas de sincronização offline.
Antes de começar
Para conectar o DataWorks a um banco de dados MariaDB, conclua as etapas a seguir na ordem indicada:
Versões compatíveis do MariaDB
Versões compatíveis: 5.5.x, 10.0.x, 10.1.x, 10.2.x e 10.3.x.
A sincronização offline também permite leitura de views.
Tipos de campo compatíveis
A tabela a seguir lista os tipos de campo compatíveis com o MariaDB 10.3.x. Para outras versões, consulte a documentação oficial do MariaDB.
|
Tipo de campo |
Leitura offline (MariaDB Reader) |
Gravação offline (MariaDB 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 |
Configure permissões da conta
Crie uma conta dedicada no MariaDB para que o DataWorks acesse a source de dados.
-
Execute a instrução a seguir para verificar a versão do MariaDB:
SELECT VERSION(); (Opcional) Crie uma conta de sincronização. Consulte Criar um usuário do MariaDB.
-
Conceda as permissões necessárias conforme a direção da sincronização:
Leitura offline: A conta precisa da permissão SELECT nas tabelas a sincronizar.
Gravação offline: A conta requer as permissões INSERT, DELETE e UPDATE nas tabelas de destino.
-
Execute o comando a seguir para conceder as permissões. Substitua
sync_accountpelo nome da sua conta.-- CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password'; GRANT SELECT, INSERT, DELETE, UPDATE ON *.* TO 'sync_account'@'%';Como alternativa, conceda diretamente a permissão SUPER.
Adicionar uma source de dados
Adicione a source de dados MariaDB no DataWorks antes de desenvolver uma 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 source de dados.
Desenvolver uma tarefa de sincronização de dados
Sincronização offline para uma única tabela
Para configure a tarefa no editor de código, consulte Configure uma tarefa no editor de código. Para obter todos os parâmetros de script e exemplos, veja a seção Parâmetros de script e exemplos.
Parâmetros de script e exemplos
Todos os exemplos usam o formato do editor de código com "version": "2.0". Configure o script conforme os requisitos de formato unificado descritos em Configure uma tarefa no editor de código.
Reader
Exemplo de script
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "mariadb",
"parameter": {
"column": [
"id"
],
"connection": [
{
"querySql": ["select a,b from join1 c join join2 d on c.id = d.id;"],
"datasource": "",
"table": [
"xxx"
]
}
],
"where": "",
"splitPk": "",
"encoding": "UTF-8"
},
"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 Reader
|
Parâmetro |
Descrição |
Obrigatório |
Padrão |
|
|
Nome da source de dados. Deve corresponder exatamente ao nome da source de dados adicionada no DataWorks. |
Sim |
Nenhum |
|
|
Tabela de origem para leitura. Aceita sintaxe de intervalo para tabelas fragmentadas; por exemplo, |
Sim |
Nenhum |
|
|
Colunas a sincronizar, definidas como um array JSON. O padrão inclui todas as colunas ( |
Sim |
Nenhum |
|
|
Coluna usada para particionar os dados em leituras concorrentes. Use a chave primária para garantir distribuição uniforme. Apenas tipos inteiros são aceitos; tipos incompatíveis revertem para sincronização em canal único. Deixe em branco para operar com um único canal. |
Não |
Nenhum |
|
|
Condição de filtro SQL WHERE, como |
Não |
Nenhum |
|
|
Consulta SQL personalizada que substitui os parâmetros |
Não |
Nenhum |
Writer
Exemplo de script
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "mariadb",
"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 Writer
|
Parâmetro |
Descrição |
Obrigatório |
Padrão |
|
|
Nome da source de dados. Deve corresponder exatamente ao nome da source de dados adicionada no DataWorks. |
Sim |
Nenhum |
|
|
Tabela de destino para gravação. |
Sim |
Nenhum |
|
|
Colunas de destino para gravação, especificadas como um array JSON, por exemplo: |
Sim |
Nenhum |
|
|
Modo de gravação. Três opções estão disponíveis: |
Não |
|
|
|
Colunas a atualizar quando houver conflito de chave primária ou índice único. Aplicável apenas quando |
Não |
Nenhum |
|
|
Instrução SQL executada antes do início da tarefa de sincronização. A interface visual aceita apenas uma instrução; o editor de código permite várias. Exemplo: |
Não |
Nenhum |
|
|
Instrução SQL executada após a conclusão da tarefa de sincronização. A interface visual aceita apenas uma instrução; o editor de código permite várias. Exemplo: |
Não |
Nenhum |
|
|
Quantidade de registros enviados por lote. Valores maiores reduzem as idas e vindas na rede e aumentam o throughput, mas valores excessivamente altos podem provocar erros de falta de memória (OOM). |
Não |
256 |