O Data Integration do DataWorks oferece suporte à transferência bidirecional de dados por meio dos plug-ins Lindorm Reader e Lindorm Writer. Este tópico descreve como o DataWorks lê dados do Lindorm e grava dados nele.
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "mysql",
"parameter": {
"envType": 0,
"datasource": " ",
"column": [
"id",
"value"
],
"connection": [
{
"datasource": " ",
"table": []
}
],
"where": "",
"splitPk": "",
"encoding": "UTF-8"
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "lindorm",
"parameter": {
"datasource": "lindorm_datasource",
"table": "xxxxxx",
"column": [
"id",
"value"
],
"formatType": "ICEBERG"
},
"name":"Writer",
"category":"writer"
}
],
"setting": {
"jvmOption": "",
"errorLimit": {
"record": "0"
},
"speed": {
"concurrent": 3,
"throttle": false
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Escopo
O mecanismo de wide table oferece suporte a {{XREF_0}} e {{XREF_1}}.
O mecanismo de computação oferece suporte apenas a {{XREF_2}}.
O Lindorm é um banco de dados multimodal. Para mais informações, consulte {{XREF_3}}. Atualmente, o DataWorks oferece suporte apenas ao wide table engine e ao mecanismo de computação.
Tipos de campo suportados
O Lindorm Reader e o Lindorm Writer suportam a maioria dos tipos de dados do Lindorm, mas alguns tipos não são suportados. Verifique seus tipos de dados antes do uso.
A tabela a seguir lista os mapeamentos de tipos do Lindorm para o Lindorm Reader e o Lindorm Writer.
|
Categoria de tipo |
Tipo de dado |
|
Inteiro |
INT, LONG, SHORT |
|
Ponto flutuante |
DOUBLE, FLOAT, DOUBLE |
|
String |
STRING |
|
Data e hora |
DATE |
|
Booleano |
BOOLEAN |
|
Binário |
BINARYSTRING |
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "mysql",
"parameter": {
"envType": 0,
"datasource": " ",
"column": [
"id",
"value"
],
"connection": [
{
"datasource": " ",
"table": []
}
],
"where": "",
"splitPk": "",
"encoding": "UTF-8"
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "lindorm",
"parameter": {
"datasource": "lindorm_datasource",
"table": "xxxxxx",
"column": [
"id",
"value"
],
"formatType": "ICEBERG"
},
"name":"Writer",
"category":"writer"
}
],
"setting": {
"jvmOption": "",
"errorLimit": {
"record": "0"
},
"speed": {
"concurrent": 3,
"throttle": false
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
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 seguintes guias de configuração.
Sincronização em lote de tabela única
Fontes de dados suportadas: Todos os tipos de fonte suportados pelo módulo Data Integration
-
Guia de configuração: {{XREF_4}}
Para todos os parâmetros do modo de script e scripts de exemplo, consulte {{XREF_5}} .
Sincronização em tempo real de tabela única
Fontes de dados suportadas: Kafka, LogHub e Hologres
Guia de configuração: {{XREF_6}}
Sincronização em tempo real de banco de dados completo
Fonte de dados suportada: PostgreSQL
Guia de configuração: {{XREF_7}}
Apêndice: Scripts de exemplo e parâmetros
Configurar uma tarefa de sincronização em lote usando o editor de código
Para configurar uma tarefa de sincronização em lote usando o editor de código, configure os parâmetros relacionados no script com base nos requisitos de formato de script unificado. Para mais informações, consulte {{XREF_8}}. As informações a seguir descrevem os parâmetros que você deve configurar para as fontes de dados ao configurar uma tarefa de sincronização em lote usando o editor de código.
Scripts de exemplo do Reader
-
Configure um job que extraia dados de uma Lindorm SQL Table no wide table engine para o armazenamento local.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "datasource": " ", "column": [ "id", "value" ], "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "table": "xxxxxx", "column": [ "id", "value" ], "formatType": "ICEBERG" }, "name":"Writer", "category":"writer" } ], "setting": { "jvmOption": "", "errorLimit": { "record": "0" }, "speed": { "concurrent": 3, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Configure um job que extraia dados de uma tabela Lindorm HBaseLike (WideColumn) no wide table engine para o armazenamento local.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "datasource": " ", "column": [ "id", "value" ], "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "table": "xxxxxx", "column": [ "id", "value" ], "formatType": "ICEBERG" }, "name":"Writer", "category":"writer" } ], "setting": { "jvmOption": "", "errorLimit": { "record": "0" }, "speed": { "concurrent": 3, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Configure um job que extraia dados de uma tabela do mecanismo de computação para o armazenamento local.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "datasource": " ", "column": [ "id", "value" ], "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "table": "xxxxxx", "column": [ "id", "value" ], "formatType": "ICEBERG" }, "name":"Writer", "category":"writer" } ], "setting": { "jvmOption": "", "errorLimit": { "record": "0" }, "speed": { "concurrent": 3, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
Parâmetros do script do Reader
Parâmetro | Descrição | Obrigatório | Valor padrão | ||||||||||||||||||||
mode | Específico do wide table engine. Especifique o modo de leitura de dados: modo de coluna fixa FixedColumn ou modo de coluna dinâmica DynamicColumn. | Sim | FixedColumn | ||||||||||||||||||||
tableMode | Específico do wide table engine. Especifique o modo SQL de tabela padrão table ou o modo de coluna larga wideColumn. O padrão é table. Caso selecione o modo table, deixe este parâmetro vazio. | Não | Vazio por padrão | ||||||||||||||||||||
table | O nome da tabela do Lindorm a ser lida. Os nomes das tabelas do Lindorm diferenciam maiúsculas de minúsculas. | Sim | Nenhum | ||||||||||||||||||||
encoding | Específico do wide table engine. O formato de codificação, UTF-8 ou GBK. Geralmente usado para converter o tipo byte[] do Lindorm armazenado como dados binários para String. | Não | UTF-8 | ||||||||||||||||||||
caching | Específico do wide table engine. O número de registros recuperados em cada lote. Isso pode reduzir significativamente as interações de rede entre o sistema de sincronização de dados e o Lindorm, além de aumentar o throughput geral. Um valor excessivamente grande pode sobrecarregar o servidor Lindorm ou causar um erro de falta de memória (OOM) no processo de sincronização. | Não | 100 | ||||||||||||||||||||
selects | Específico do wide table engine. Atualmente, os dados do tipo tabela não suportam a divisão automática de shard e são executados com uma tarefa simultânea por padrão. Portanto, configure selects para dividir os dados manualmente. Exemplo: Limites:
| Não | Nenhum | ||||||||||||||||||||
session | Específico do mecanismo de computação. Parâmetros de job no nível de sessão, como | Não | Nenhum | ||||||||||||||||||||
splitPk | Específico do mecanismo de computação. A chave de divisão para leitura de uma tabela do mecanismo de computação. Se especificado, o splitPk identifica o campo usado para dividir os dados, e a sincronização de dados inicia tarefas simultâneas para melhorar a eficiência.
| Não | Nenhum | ||||||||||||||||||||
columns | A lista de campos a serem lidos. Selecione um subconjunto de colunas e reordene-as. A seleção de colunas exporta apenas as colunas selecionadas; a reordenação exporta as colunas em uma ordem diferente do esquema da tabela.
| Sim | Nenhum |
Scripts de exemplo do Writer
-
Configure um job que grave dados do MySQL em uma Lindorm SQL Table no wide table engine.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "datasource": " ", "column": [ "id", "value" ], "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "table": "xxxxxx", "column": [ "id", "value" ], "formatType": "ICEBERG" }, "name":"Writer", "category":"writer" } ], "setting": { "jvmOption": "", "errorLimit": { "record": "0" }, "speed": { "concurrent": 3, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Configure um job que grave dados do MySQL em uma tabela Lindorm HBaseLike (WideColumn) no wide table engine.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "datasource": " ", "column": [ "id", "value" ], "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "table": "xxxxxx", "column": [ "id", "value" ], "formatType": "ICEBERG" }, "name":"Writer", "category":"writer" } ], "setting": { "jvmOption": "", "errorLimit": { "record": "0" }, "speed": { "concurrent": 3, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Configure um job que grave dados do MySQL em uma tabela do mecanismo de computação.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "datasource": " ", "column": [ "id", "value" ], "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "table": "xxxxxx", "column": [ "id", "value" ], "formatType": "ICEBERG" }, "name":"Writer", "category":"writer" } ], "setting": { "jvmOption": "", "errorLimit": { "record": "0" }, "speed": { "concurrent": 3, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
Parâmetros do script do Writer
Parâmetro | Descrição | Obrigatório | Valor padrão |
table | O nome da tabela do Lindorm onde os dados serão gravados. Os nomes das tabelas do Lindorm diferenciam maiúsculas de minúsculas. | Sim | Nenhum |
encoding | Específico do wide table engine. O formato de codificação, UTF-8 ou GBK. Geralmente usado para converter o tipo byte[] do Lindorm armazenado como dados binários para String. | Não | UTF-8 |
columns | A lista de campos a serem gravados. Selecione um subconjunto de colunas e reordene-as. A seleção de colunas exporta apenas as colunas selecionadas; a reordenação exporta as colunas em uma ordem diferente do esquema da tabela.
| Sim | Nenhum |
nullMode | Específico do wide table engine. Quando um valor lido da origem for nulo, defina o parâmetro nullMode do Lindorm Writer e especifique como lidar com ele.
| Não | EMPTY_BYTES |
formatType | Específico do mecanismo de computação. Especifique o tipo da tabela a ser sincronizada. Valores válidos:
| Não | Nenhum |