A fonte de dados KingbaseES permite a sincronização bidirecional de dados entre o KingbaseES e o DataWorks Data Integration. Use-a para ler dados do KingbaseES em seu pipeline ou gravar dados processados de volta no KingbaseES.
Limites
Grupos de recursos compatíveis: Apenas grupos de recursos Serverless (recomendado) e grupos de recursos exclusivos para Data Integration.
Permissão necessária: A tarefa de sincronização exige permissões de
insert/replace into. Verifique os parâmetrospreSqlepostSqlpara determinar se outras permissões são necessárias.
Tipos de campo compatíveis
A tabela a seguir lista os tipos de dados compatíveis com o KingbaseES Reader. Tipos não listados não são suportados.
|
Categoria |
Tipos de dados |
Observações |
|
Inteiro |
INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT |
|
|
Ponto flutuante |
FLOAT, DOUBLE, DECIMAL |
|
|
String |
VARCHAR, CHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT |
|
|
Data e hora |
DATE, DATETIME, TIMESTAMP, TIME, YEAR |
|
|
Booleano |
BIT, BOOL |
|
|
Binário |
TINYBLOB, MEDIUMBLOB, BLOB, LONGBLOB, VARBINARY |
Adicionar uma fonte de dados
Antes de desenvolver uma tarefa de sincronização, adicione a fonte de dados KingbaseES no DataWorks. Para obter instruções, consulte Gerenciamento de fontes de dados. As descrições dos parâmetros estão disponíveis no console do DataWorks ao adicionar a fonte de dados.
Desenvolver uma tarefa de sincronização
Configure uma tarefa de sincronização offline para uma única tabela
Use um dos métodos a seguir para configurar uma tarefa de sincronização offline:
Interface sem código: Configurar uma tarefa na interface sem código
Editor de código: Configurar uma tarefa no editor de código
Para ver todos os parâmetros e um script de exemplo para o editor de código, consulte Apêndice: Exemplo de script e descrições de parâmetros.
Apêndice: Exemplo de script e descrições de parâmetros
Para configurar uma tarefa de sincronização em lote com o editor de código, defina os parâmetros necessários no script seguindo o formato unificado. Para mais informações, consulte Configurar uma tarefa no editor de código.
Exemplo de script do Reader
Banco de dados único e tabela única
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "kingbasees",
"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"
}
]
}
}
Bancos de dados e tabelas fragmentados
Ao usar tabelas fragmentadas, todas as tabelas KingbaseES selecionadas devem ter o mesmo schema.
{
"type": "job",
"version": "1.0",
"configuration": {
"reader": {
"plugin": "kingbasees",
"parameter": {
"connection": [
{
"table": ["tbl1", "tbl2", "tbl3"],
"datasource": "datasourceName1"
},
{
"table": ["tbl4", "tbl5", "tbl6"],
"datasource": "datasourceName2"
}
],
"singleOrMulti": "multi",
"splitPk": "db_id",
"column": ["id", "name", "age"],
"where": "1 < id and id < 100"
}
},
"writer": {}
}
}
Parâmetros do Reader
|
Parâmetro |
Descrição |
Obrigatório |
Padrão |
|
|
Nome de usuário para conexão com o KingbaseES. |
Não |
Nenhum |
|
|
Senha para conexão com o KingbaseES. |
Não |
Nenhum |
|
|
Campos a sincronizar. Use |
Não |
Nenhum |
|
|
Nome da tabela a sincronizar. Use o formato de array mesmo para uma única tabela: |
Não |
Nenhum |
|
|
URL JDBC (Java Database Connectivity) para conexão com o KingbaseES. Exemplo: |
Não |
Nenhum |
|
|
Consulta SQL personalizada para filtrar dados. Quando especificada, o Reader ignora |
Não |
Nenhum |
|
|
Condição de filtro aplicada à tabela. Ignorada quando |
Não |
Nenhum |
|
|
Campo numérico inteiro na tabela KingbaseES usado como chave de divisão para permitir sincronização de alta concorrência. Deixe em branco se esse campo não existir. |
Não |
Nenhum |
|
|
Formato de codificação dos dados. |
Não |
|
Exemplo de script do Writer
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "kingbasees",
"parameter": {
"postSql": [],
"datasource": "",
"column": ["id", "value"],
"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 fonte de dados. Deve corresponder ao nome da fonte de dados adicionada no DataWorks. |
Sim |
Nenhum |
|
|
Nome da tabela de destino. |
Sim |
Nenhum |
|
|
Campos da tabela de destino onde os dados serão gravados. Separe vários campos por vírgulas. Exemplo: |
Sim |
Nenhum |
|
|
Instrução SQL executada antes do início da tarefa de sincronização. Use para preparar a tabela de destino — por exemplo: |
Não |
Nenhum |
|
|
Instrução SQL executada após a conclusão da tarefa de sincronização. Por exemplo: |
Não |
Nenhum |
|
|
Quantidade de registros enviados em um único lote. Valores maiores reduzem idas e vindas na rede e melhoram o throughput, mas valores excessivos podem causar erros de falta de memória (OOM). |
Não |
|