O Data Integration do DataWorks oferece suporte a canais de dados bidirecionais para o Lindorm por meio dos plug-ins Lindorm Reader e Lindorm Writer. Este tópico descreve as capacidades de leitura e gravação de dados do Lindorm fornecidas pelo DataWorks.
Observações de uso
O mecanismo de tabela ampla oferece suporte a Grupos de recursos Serverless (recomendado) e grupos de recursos exclusivos para Data Integration.
O mecanismo de computação oferece suporte apenas a Grupos de recursos Serverless.
O Lindorm é um banco de dados multimodelo. Para mais detalhes, consulte a documentação do Lindorm. Atualmente, o DataWorks oferece suporte apenas ao mecanismo de tabela ampla e ao mecanismo de computação.
Tipos de coluna suportados
O Lindorm Reader e o Lindorm Writer aceitam a maioria dos tipos do Lindorm, mas alguns não têm suporte. Verifique seus tipos de dados com atenção.
A tabela a seguir lista como o Lindorm Reader e o Lindorm Writer mapeiam os tipos de dados do Lindorm.
|
Categoria |
Tipos de dados |
|
Inteiro |
INT, LONG, SHORT |
|
Ponto flutuante |
DOUBLE, FLOAT, DOUBLE |
|
String |
STRING |
|
Data e hora |
DATE |
|
Booleano |
BOOLEAN |
|
Binário |
BINARYSTRING |
Desenvolver uma tarefa 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 guias a seguir.
Sincronização em lote para uma única tabela
Fontes suportadas: todos os tipos de fontes de dados compatíveis com o Data Integration
-
Guia de configuração: Tarefas de sincronização em lote de tabela única
Para a lista completa de parâmetros do modo script e um exemplo de script, consulte Apêndice: Exemplo de script e descrição de parâmetros .
Sincronização em tempo real para uma única tabela
Fontes suportadas: Kafka, LogHub, Hologres
Guia de configuração: Sincronização em tempo real de tabela única
Sincronização em tempo real para um banco de dados inteiro
Fontes suportadas: PostgreSQL
Guia de configuração: Configurar sincronização em tempo real de banco de dados completo
Apêndice: Exemplo de script e descrição de parâmetros
Configure uma tarefa de sincronização em lote usando o editor de código
Para configurar uma tarefa de sincronização em lote com o editor de código, defina os parâmetros relacionados no script conforme os requisitos unificados de formato. Para mais informações, consulte Configuração do modo Script. As informações a seguir descrevem os parâmetros necessários para as fontes de dados ao utilizar o editor de código em tarefas de sincronização em lote.
Exemplo de script do Reader
-
Configure um job que extrai dados de uma tabela SQL do mecanismo de tabela ampla do Lindorm para armazenamento local.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "lindorm", "parameter": { "mode": "FixedColumn", "caching": 128, "column": [ "id", "value" ], "envType": 1, "datasource": "lindorm", "tableMode": "tableService", "table": "lindorm_table" }, "name": "lindormreader", "category": "reader" }, { "stepType": "mysql", "parameter": { "postSql": [], "datasource": "lindorm", "session": [], "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "writeMode": "insert", "batchSize": 1024, "encoding": "UTF-8", "table": "", "preSql": [] }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "errorLimit": { "record": "0" }, "speed": { //Set the transmission speed in byte/s. DataX will try to reach this speed but not exceed it. "byte": 1048576 } //Error limit "errorLimit": { //Upper limit of error records. An error is reported when exceeded. "record": 0, //Upper limit of error record percentage. 1.0 means 100%, 0.02 means 2% "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Configure um job que extrai dados de uma tabela HBaseLike (WideColumn) do mecanismo de tabela ampla do Lindorm para armazenamento local.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "lindorm", "parameter": { "mode": "FixedColumn", "column": [ "STRING|rowkey", "INT|f:a" ], "envType": 1, "datasource": "lindorm", "tableMode": "wideColumn", "table":"lindorm_table" }, "name": "lindormreader", "category": "reader" }, { "stepType": "mysql", "parameter": { "postSql": [], "datasource": "_IDB.TAOBAO", "session": [], "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "guid": "", "writeMode": "insert", "batchSize": 1024, "encoding": "UTF-8", "table": "", "preSql": [] }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "errorLimit": { "record": "0" }, "speed": { //Set the transmission speed in byte/s. DataX will try to reach this speed but not exceed it. "byte": 1048576 } //Error limit "errorLimit": { //Upper limit of error records. An error is reported when exceeded. "record": 0, //Upper limit of error record percentage. 1.0 means 100%, 0.02 means 2%. "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Configure um job que extrai dados de uma tabela do mecanismo de computação para armazenamento local.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "lindorm", "parameter": { "datasource": "lindorm_datasource", "column": [ "id", "value" ], "tableComment": "", "where": "", "session": [], "splitPk": "id", "table": "auto_ob_149912212480" }, "name": "lindormreader", "category": "reader" }, { "stepType": "mysql", "parameter": { "postSql": [], "datasource": "_IDB.TAOBAO", "session": [], "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "guid": "", "writeMode": "insert", "batchSize": 1024, "encoding": "UTF-8", "table": "", "preSql": [] }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "errorLimit": { "record": "0" }, "speed": { //Set the transmission speed in byte/s. DataX will try to reach this speed but not exceed it. "byte": 1048576 } //Error limit "errorLimit": { //Upper limit of error records. An error is reported when exceeded. "record": 0, //Upper limit of error record percentage. 1.0 means 100%, 0.02 means 2%. "percentage": 0.02 } }, "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 mecanismo de tabela ampla. Define o modo de leitura de dados: modo de coluna fixa FixedColumn ou modo de coluna dinâmica DynamicColumn. |
Sim |
FixedColumn |
||||||||||||||||||||
|
tableMode |
Específico do mecanismo de tabela ampla. Oferece suporte ao modo comum de tabela SQL table e ao modo de coluna ampla wideColumn. O padrão é table. Deixe este campo em branco se usar o modo table. |
Não |
Em branco por padrão |
||||||||||||||||||||
|
table |
A tabela do Lindorm a ser lida. Os nomes das tabelas do Lindorm diferenciam maiúsculas de minúsculas. |
Sim |
Nenhum |
||||||||||||||||||||
|
encoding |
Específico do mecanismo de tabela ampla. Formato de codificação: UTF-8 ou GBK. Geralmente usado para converter valores byte[] do Lindorm armazenados em formato binário para String. |
Não |
UTF-8 |
||||||||||||||||||||
|
caching |
Específico do mecanismo de tabela ampla. Número de registros buscados em um único lote. Esse valor reduz significativamente o número de idas e vindas na rede entre o sistema de sincronização de dados e o Lindorm, melhorando o throughput geral. Definir um valor muito alto pode sobrecarregar o servidor Lindorm ou causar erros OOM no processo de sincronização de dados. |
Não |
100 |
||||||||||||||||||||
|
selects |
Específico do mecanismo de tabela ampla. O tipo Table atual não oferece suporte à divisão automática de shards e executa com uma única concorrência por padrão. Portanto, configure manualmente o parâmetro selects para fragmentar os dados. Exemplo:
Limites:
|
Não |
Nenhum |
||||||||||||||||||||
|
session |
Específico do mecanismo de computação. Parâmetros de job no nível de sessão, por exemplo, |
Não |
Nenhum |
||||||||||||||||||||
|
splitPk |
Específico do mecanismo de computação. Chave de divisão usada apenas ao ler tabelas do mecanismo de computação. Se você especificar splitPk, a coluna representada será usada para fragmentar os dados, e a sincronização iniciará tarefas simultâneas para melhorar a eficiência.
|
Não |
Nenhum |
||||||||||||||||||||
|
columns |
Lista de colunas a serem lidas. Há suporte para poda e reordenação de colunas. A poda permite exportar apenas colunas selecionadas; a reordenação permite exportar colunas em uma ordem diferente do esquema da tabela.
|
Sim |
Nenhum |
Exemplo de script do Writer
-
Configure um job que grava dados de uma source MySQL em uma tabela SQL do mecanismo de tabela ampla do Lindorm.
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "checkSlave": true, "datasource": " ", "envType": 1, "column": [ "id", "value" ], "socketTimeout": 3600000, "masterSlave": "slave", "connection": [ { "datasource": " ", "table": [] } ], "where": "", "splitPk": "", "encoding": "UTF-8", "print": true }, "name": "mysqlReader", "category": "reader" }, { "stepType": "lindorm", "parameter": { "nullMode": "skip", "datasource": "lindorm_datasource", "envType": 1, "column": [ "id", "value" ], "dynamicColumn": "false", "table": "lindorm_table", "encoding": "utf8" }, "name": "Writer", "category": "writer" } ], "setting": { "jvmOption": "", "executeMode": null, "speed": { //Set the transmission speed in byte/s. DataX will try to reach this speed but not exceed it. "byte": 1048576 }, //Error limit "errorLimit": { //Upper limit of error records. An error is reported when exceeded. "record": 0, //Upper limit of error record percentage. 1.0 means 100%, 0.02 means 2%. "percentage": 0.02 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Configure um job que grava dados de uma source MySQL em uma tabela HBaseLike (WideColumn) do mecanismo de tabela ampla do Lindorm.
{ "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", "encoding": "utf8", "nullMode": "skip", "dynamicColumn": "false", "caching": 128, "column": [ //Mapped from the source in field order "ROW|STRING", //Row key, fixed configuration. Maps the first field of the source to the row key. For example, in this sample, id is mapped to the row key. "cf:name|STRING" //cf indicates the column family name and can be modified. name indicates the destination column name and can be modified. ] }, "name":"Writer", "category":"writer" } ], "setting": { "jvmOption": "", "errorLimit": { "record": "0" }, "speed": { "concurrent": 3, "throttle": false } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } } -
Configure um job que grava dados de uma source 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 |
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 mecanismo de tabela ampla. Formato de codificação: UTF-8 ou GBK. Geralmente usado para converter valores byte[] do Lindorm armazenados em formato binário para String. |
Não |
UTF-8 |
|
columns |
Lista de colunas a serem gravadas. Há suporte para poda e reordenação de colunas. A poda permite exportar apenas colunas selecionadas; a reordenação permite exportar colunas em uma ordem diferente do esquema da tabela.
|
Sim |
Nenhum |
|
nullMode |
Específico do mecanismo de tabela ampla. Define como o Lindorm Writer trata valores nulos lidos da origem. Configure o parâmetro nullMode com diferentes valores para controlar o comportamento.
|
Não |
EMPTY_BYTES |
|
formatType |
Específico do mecanismo de computação. Formato da tabela de destino. Valores válidos:
|
Não |
Nenhum |