A fonte de dados HBase permite ler e gravar dados no HBase. Este tópico descreve os recursos de sincronização de dados dessa source no DataWorks.
Versões suportadas
Existem dois tipos de plugins para HBase: o plugin HBase e o plugin HBase{xx}xsql. O plugin HBase{xx}xsql requer tanto o HBase quanto o Phoenix.
-
Plugin HBase:
Suporta as versões
HBase0.94.x,HBase1.1.xeHBase2.x. Tanto a interface visual (Codeless UI) quanto o editor de código são suportados. Utilize o parâmetrohbaseVersionpara especificar a versão.-
Caso sua versão do HBase seja
HBase0.94.x, defina hbaseVersion como 094x tanto para o leitor quanto para o escritor."reader": { "hbaseVersion": "094x" }"writer": { "hbaseVersion": "094x" } -
Se a versão do HBase for HBase1.1.x ou HBase2.x, configure hbaseVersion como 11x no leitor e no escritor.
"reader": { "hbaseVersion": "11x" }"writer": { "hbaseVersion": "11x" }O plugin HBase1.1.x é compatível com o HBase 2.0.
-
-
Plugin HBase{xx}xsql
-
Plugin HBase20xsql: Suporta
HBase2.xePhoenix5.x. Apenas o editor de código é suportado.Plugin HBase11xsql: Suporta
HBase1.1.xePhoenix5.x. Apenas o editor de código é suportado. -
O plugin escritor HBase{xx}xsql oferece uma forma simples de importar dados em lote para tabelas SQL (Phoenix) no HBase. O Phoenix codifica a rowkey. A escrita de dados via API do HBase exige conversão manual, um processo complexo e propenso a erros.
NotaO plugin utiliza o driver JDBC do Phoenix para executar instruções UPSERT, gravando dados na tabela em lotes. Sua interface de alto nível também permite atualizações síncronas nas tabelas de índice.
-
Limitações
|
HBase Reader |
HBase20xsql Reader |
HBase11xsql Writer |
|
|
|
Recursos
HBase Reader
O HBase Reader opera nos modos normal e multiVersionFixedColumn. Consulte HBase field mapping guide para obter instruções de configuração.
-
No modo
normal, o HBase Reader trata a tabela HBase como uma tabela bidimensional padrão (wide table) e lê a versão mais recente dos dados.hbase:007:0> scan 'student' ROW COLUMN+CELL s001 column=basic:age, timestamp=2026-03-09T14:41:40.240, value=20 s001 column=basic:name, timestamp=2026-03-09T14:41:40.214, value=Tom s001 column=score:english, timestamp=2026-03-09T14:41:40.333, value=90 s001 column=score:math, timestamp=2026-03-09T14:41:40.277, value=85 1 row(s) in 0.0580 secondsA tabela a seguir apresenta os dados de saída.
Row key
basic:age
basic:name
score:english
score:math
s001
20
Tom
90
85
-
Modo
multiVersionFixedColumn: Lê a tabela HBase como uma tabela estreita (narrow table). Cada registro retornado contém quatro colunas:rowKey,family:qualifier,timestampevalue. Especifique explicitamente as colunas a serem lidas. O valor de cada célula é tratado como um registro individual; caso existam múltiplas versões, vários registros serão retornados.hbase:007:0> scan 'student',{VERSIONS=>5} ROW COLUMN+CELL s001 column=basic:age, timestamp=2026-03-09T14:41:40.240, value=20 s001 column=basic:age, timestamp=2026-03-09T14:30:00.100, value=19 s001 column=basic:name, timestamp=2026-03-09T14:41:40.214, value=Tom s001 column=score:english, timestamp=2026-03-09T14:41:40.333, value=90 s001 column=score:math, timestamp=2026-03-09T14:41:40.277, value=85 1 row(s) in 0.0260 seconds }Row key
family:qualifier
Timestamp
Value
s001
basic:age
2026-03-09T14:41:40.240
20
s001
basic:age
2026-03-09T14:30:00.100
19
s001
basic:name
2026-03-09T14:41:40.214
Tom
s001
score:english
2026-03-09T14:41:40.333
90
s001
score:math
2026-03-09T14:41:40.277
85
HBase Writer
Regra de geração de
rowkey: Atualmente, o HBase Writer permite concatenar diversos campos da source para compor arowkeyda tabela HBase.-
É possível definir uma versão (timestamp) para a gravação de dados no HBase. As opções disponíveis incluem:
Utilizar a hora atual como versão.
Indicar uma coluna de source como versão.
Especificar um horário fixo como versão.
Tipos de dados suportados
Leitura em lote
-
Esta tabela exibe os tipos de dados do HBase suportados e como o HBase Reader realiza suas conversões.
Categoria
Tipo de coluna do Data Integration
Tipo de dado do banco
Inteiro
long
short, int e long
Ponto flutuante
double
float e double
String
string
binary_string e string
Data e hora
date
date
Byte
bytes
bytes
Booleano
boolean
boolean
O HBase20xsql Reader suporta a maioria dos tipos de dados do Phoenix, mas não todos. Verifique se seus tipos de dados são compatíveis.
-
A tabela abaixo ilustra como o HBase20xsql Reader mapeia os tipos de dados do Phoenix para os tipos internos do DataX.
Tipo interno do DataX
Tipo de dado do Phoenix
long
INTEGER, TINYINT, SMALLINT, BIGINT
double
FLOAT, DECIMAL, DOUBLE
string
CHAR, VARCHAR
date
DATE, TIME, TIMESTAMP
bytes
BINARY, VARBINARY
boolean
BOOLEAN
Escrita em lote
A tabela a seguir lista os tipos de dados suportados pelo HBase Writer.
O tipo de dado configurado para cada coluna deve corresponder ao tipo respectivo na tabela HBase.
Somente os tipos listados na tabela possuem suporte.
|
Categoria |
Tipo de dado do banco |
|
Inteiro |
INT, LONG e SHORT |
|
Ponto flutuante |
FLOAT e DOUBLE |
|
Booleano |
BOOLEAN |
|
String |
STRING |
Precauções
Ao testar a conectividade, caso encontre o erro "tried to access method com.google.common.base.Stopwatch", adicione a propriedade hbaseVersion na configuração da source de dados para especificar a versão do HBase.
Adicionar uma source de dados
Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione a source de dados necessária seguindo as instruções em Data source configuration. Consulte as descrições dos parâmetros no console do DataWorks para compreender o significado de cada campo durante a adição da source de dados.
Desenvolver uma tarefa de sincronização de dados
Para informações sobre o ponto de entrada e o procedimento de configuração de tarefas de sincronização, consulte os guias abaixo.
Configure sincronização em lote de tabela única
-
Para mais detalhes, visualize Codeless UI configuration e script mode configuration.
Como o HBase é uma source de dados sem schema, a Interface Visual (Codeless UI) não exibe mapeamentos de campos por padrão. Configure-os manualmente.
Ao usar o HBase como source de dados, selecione primeiro um Output Mode: modo normal ou multiVersionFixedColumn.
A configuração de mapeamento de campos varia conforme o modo escolhido:
-
Modo normal: Trata-se do modo padrão. Ele lê a tabela HBase como uma tabela bidimensional convencional e recupera a versão mais recente dos dados. Ao utilizar o HBase como source, configure o mapeamento entre o Source Field e o Target Field. Os campos de source e destino possuem mapeamento um para um. Visto que a tabela de source não tem campos fixos, o sistema os mapeia pela ordem padrão. Para alterar esse comportamento, edite manualmente a ordem dos campos.
New version
Na configuração de mapeamento de campos, os mapeamentos são:
rowkey→rowkey,basic:age→age,basic:name→name,score:english→englishescore:math→math. Os campos de source aparecem em formato JSON e incluem as propriedadesnameetype(ambas comostring).Legacy version
Na área de mapeamento, os campos de source exibem-se no formato
Type|ColumnFamily:ColumnName, incluindostring|rowkey,string|basic:age,string|basic:name,string|score:englishestring|score:math. Estes correspondem, respectivamente, aos campos de destinorowkey,age,name,englishemath.A tabela de destino contém campos como rowkey, age, name, english, math e pt. Exemplo: rowkey=s001, age=20, name=Tom, english=90, math=85, pt=222222.
-
Modo multiVersionFixedColumn: Cada registro de saída consiste em quatro colunas (rowKey, family:qualifier, timestamp e value), permitindo a leitura de múltiplas versões de dados. O Source Field configura-se no formato
ColumnFamily:Qualifier, comobasic:age. A tabela de destino possui quatro colunas fixas: row_key, cf, timestamp_col e value. Nenhuma configuração adicional de mapeamento é necessária.New version
Na área de mapeamento de campos, associe os campos de source aos de destino. Os campos de source estão em formato JSON. Exemplos de mapeamento:
{"name":"rowkey","type":"string"}mapeia para o campo de destino rowkey;{"name":"basic:age","type":"string"}mapeia para family;{"name":"basic:name","type":"string"}mapeia para timestamp; e{"name":"score:english","type":"string"}mapeia para value. O sistema não sincroniza o campo de source não mapeado{"name":"score:math","type":"string"}. Clique em no botão Edit em qualquer lado para editar os campos de source ou destino, respectivamente.Legacy version
Na área de mapeamento, o source field inclui
string|rowkey,string|basic:age,string|basic:name,string|score:englishestring|score:math. O target field compreenderowkey,family,timestampevalue. O mapeamento entre campos de source e destino ocorre linha a linha.A tabela de destino contém quatro colunas fixas: row_key, cf, timestamp_col e value. Exemplo: row_key=s001, cf=basic:age, timestamp_col=1234567890, value=20.
Ao utilizar o HBase como destino de dados (apenas o modo normal é suportado), configure o Target Field e a rowkey. Você pode formar o campo rowkey concatenando vários campos de source.
-
Para parâmetros e exemplos de script no modo de script, consulte Appendix: Script examples and parameter descriptions.
Perguntas frequentes
-
P: Qual é a configuração adequada de concorrência? Aumentar a concorrência ajuda quando a velocidade de importação está lenta?
R: O tamanho padrão do heap da Java Virtual Machine (JVM) em um processo de importação de dados é de 2 GB. A concorrência implementa-se via multithreading e configura-se pelo número de canais. Threads em excesso podem degradar o desempenho sem melhorar a velocidade de importação devido à coleta de lixo frequente. Recomendamos usar entre 5 e 10 threads concorrentes (canais).
-
P: Qual é o valor ideal para
batchSize?R: O valor padrão é 256. Calcule o
batchSizeideal com base no tamanho da linha. Um único lote deve conter tipicamente entre 2 e 4 MB de dados. Divida esse volume pelo tamanho da linha para determinar obatchSizerecomendado. -
P: Ao ler dados do HBase no modo
multiVersionFixedColumn, recebo o errojava.lang.StringIndexOutOfBoundsException: String index out of range: -1. Como resolver isso?R: Esse erro geralmente ocorre porque o campo
namena configuração da coluna não segue o formatocolumnFamily:qualifier(columnFamily:qualifier). Por exemplo, você pode ter especificado apenas o qualifier, comoage, em vez debasic:age. Para corrigir, garanta que onamede todas as colunas, excetorowkey, esteja formatado comocolumnFamily:qualifier.
Apêndice: Script de exemplo e 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 via editor de código, defina os parâmetros relevantes no script conforme os requisitos unificados de formato. Para mais informações, visualize Script mode configuration. As informações a seguir descrevem os parâmetros obrigatórios para fontes de dados ao utilizar o editor de código.
Exemplo do HBase Reader
{
"type":"job",
"version":"2.0",// The version number.
"steps":[
{
"stepType":"hbase",// The plugin name.
"parameter":{
"mode":"normal",// Specifies the mode for reading data from HBase. Valid values: `normal` and `multiVersionFixedColumn`.
"scanCacheSize":"256",// Specifies the number of rows to fetch from the server per RPC.
"scanBatchSize":"100",// Specifies the number of columns to fetch from the server per RPC.
"hbaseVersion":"094x/11x",// The HBase version.
"column":[// The fields to read.
{
"name":"rowkey",// The field name.
"type":"string"// The data type.
},
{
"name":"basic:age",
"type":"string"
},
{
"name":"basic:name",
"type":"string"
},
{
"name":"score:english",
"type":"string"
},
{
"name":"score:math",
"type":"string"
}
],
"range":{// Specifies the rowkey range to read.
"endRowkey":"",// The end rowkey.
"isBinaryRowkey":true,// Specifies whether to use binary conversion for startRowkey and endRowkey. The default value is false.
"startRowkey":""// The start rowkey.
},
"maxVersion":"",// Specifies the number of versions to read in multi-version mode.
"encoding":"UTF-8",// The encoding format.
"table":"student",// The table name.
"hbaseConfig":{// The connection configuration for the HBase cluster, in JSON format.
"hbase.zookeeper.quorum":"hostname",
"hbase.rootdir":"hdfs://ip:port/database",
"hbase.cluster.distributed":"true"
}
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"odps",// The plugin name for the destination. This example uses MaxCompute. You can replace it with another Writer plugin.
"parameter":{
"partition":"",// Partition information for the destination table. Not required for non-partitioned tables.
"truncate":true,// Specifies whether to clear the destination table or partition before writing data.
"datasource":"odps_datasource",// The MaxCompute data source name.
"column":[// The destination fields.
"rowkey",
"basic_age",
"basic_name",
"score_english",
"score_math"
],
"table":"student_target"// The name of the destination MaxCompute table.
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// The maximum number of error records to allow before the job fails.
},
"speed":{
"throttle":true,// Specifies whether to enable rate limiting. If set to false, the mbps parameter is ignored.
"concurrent":1,// The number of concurrent jobs.
"mbps":"12"// The rate limit in megabytes per second (MB/s).
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Script do HBase Reader (modo multiVersionFixedColumn)
O exemplo abaixo mostra um script completo para ler dados do HBase no modo multiVersionFixedColumn e gravá-los no MaxCompute. Nesse modo, o valor de cada célula no HBase converte-se em um registro separado. Cada registro compõe-se de quatro colunas: rowkey, family:qualifier, timestamp e value.
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"hbase",// Plugin name.
"parameter":{
"mode":"multiVersionFixedColumn",// The mode for reading data from HBase. This example uses multiVersionFixedColumn mode.
"scanCacheSize":"256",// The number of rows that the HBase client reads from the server in each remote procedure call (RPC).
"scanBatchSize":"100",// The number of columns that the HBase client reads from the server in each RPC.
"hbaseVersion":"20x",// HBase version.
"datasource":"hbase_datasource",// HBase data source name.
"column":[// The columns to read. The first column must be rowkey. The names of other columns must be in the "column family:qualifier" format.
{
"name":"rowkey",// The rowkey column.
"type":"string"
},
{
"name":"basic:age",// The age column in the basic column family.
"type":"string"
},
{
"name":"basic:name",// The name column in the basic column family.
"type":"string"
},
{
"name":"score:english",// The english column in the score column family.
"type":"string"
},
{
"name":"score:math",// The math column in the score column family.
"type":"string"
}
],
"range":{
"isBinaryRowkey":false
},
"maxVersion":"-1",// The maximum number of versions to read. This parameter is required in multiVersionFixedColumn mode. A value of -1 specifies that all versions are read.
"encoding":"UTF-8",// Encoding format.
"table":"student"// HBase table name.
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"odps",// The name of the destination plugin. This example uses MaxCompute.
"parameter":{
"partition":"",// The partition of the destination table. This parameter is not required for non-partitioned tables.
"truncate":true,// If set to true, this clears the destination table or partition before writing data.
"datasource":"odps_datasource",// MaxCompute data source name.
"column":[// The destination has four fixed columns that correspond to the rowkey, family:qualifier, timestamp, and value from the source, respectively.
"row_key",
"cf",
"timestamp_col",
"value"
],
"table":"hbase_multiversion_target"// The name of the destination MaxCompute table.
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// The maximum number of error records allowed.
},
"speed":{
"throttle":false,// No rate limiting.
"concurrent":2// Job concurrency.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Crie previamente a tabela de destino no MaxCompute. Exemplo: CREATE TABLE IF NOT EXISTS hbase_multiversion_target (row_key STRING, cf STRING, timestamp_col STRING, value STRING);
Parâmetros do script do HBase Reader
|
Parâmetro |
Descrição |
Obrigatório |
Padrão |
|
haveKerberos |
Se haveKerberos for verdadeiro, o cluster HBase exige autenticação Kerberos. Nota
|
Não |
false |
|
hbaseConfig |
Configuração necessária para conectar ao cluster HBase, em formato JSON. O parâmetro hbase.zookeeper.quorum, que especifica o endpoint do ZooKeeper para o HBase, é obrigatório. Adicione outras configurações de cliente HBase, como cache de varredura e definições de lote, para otimizar a interação com o servidor. Nota
Para conectar a uma instância do ApsaraDB for HBase, utilize seu endpoint de rede interna. |
Sim |
Nenhum |
|
mode |
Os modos de leitura suportados para o HBase são normal e multiVersionFixedColumn. |
Sim |
Nenhum |
|
table |
Nome da tabela HBase a ser lida. Nomes de tabelas diferenciam maiúsculas de minúsculas. |
Sim |
Nenhum |
|
encoding |
Formato de codificação, como UTF-8 ou GBK, usado para converter um valor binário HBase byte[] em String. |
Não |
utf-8 |
|
column |
Campo do HBase a ser lido. Este parâmetro é obrigatório nos modos normal e multiVersionFixedColumn.
|
Sim |
Nenhum |
|
maxVersion |
Número máximo de versões de células a ler no modo multiversão. Valores válidos são |
Obrigatório no modo |
Nenhum |
|
range |
Define o intervalo de rowkey a ser lido.
|
Não |
Nenhum |
|
scanCacheSize |
Quantidade de linhas a buscar do HBase em uma única chamada de procedimento remoto (RPC). |
Não |
256 |
|
scanBatchSize |
Número de colunas a buscar do HBase em uma única RPC. Defina como -1 para buscar todas as colunas. Nota
O valor de scanBatchSize deve ser maior que o número real de colunas para evitar riscos à qualidade dos dados. |
Não |
100 |
Script do HBase Writer
{
"type":"job",
"version":"2.0",// The version number.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"hbase",// The plugin name.
"parameter":{
"mode":"normal",// The write mode for HBase.
"walFlag":"false",// Set to `false` to disable write-ahead logging (WAL).
"hbaseVersion":"094x",// The HBase version.
"rowkeyColumn":[// The columns that form the HBase rowkey.
{
"index":"0",// The index of the source data column.
"type":"string"// The data type for this part of the rowkey.
},
{
"index":"-1",
"type":"string",
"value":"_"
}
],
"nullMode":"skip",// Specifies how to handle null values from the source.
"column":[// The destination columns in the HBase table.
{
"name":"columnFamilyName1:columnName1",// The column name, in `family:qualifier` format.
"index":"0",// The index of the source data column.
"type":"string"// The data type of the column value.
},
{
"name":"columnFamilyName2:columnName2",
"index":"1",
"type":"string"
},
{
"name":"columnFamilyName3:columnName3",
"index":"2",
"type":"string"
}
],
"encoding":"utf-8",// The character encoding.
"table":"",// The name of the destination HBase table.
"hbaseConfig":{// Configuration for the HBase cluster connection, in JSON format.
"hbase.zookeeper.quorum":"hostname",
"hbase.rootdir":"hdfs: //ip:port/database",
"hbase.cluster.distributed":"true"
}
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// The maximum number of allowed error records.
},
"speed":{
"throttle":true,// Enables (`true`) or disables (`false`) rate limiting. If `true`, the rate is defined by the `mbps` parameter.
"concurrent":1, // The number of concurrent write tasks.
"mbps":"12"// The maximum transfer rate in megabytes per second (MB/s).
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Parâmetros do script do HBase Writer
|
Parâmetro |
Descrição |
Obrigatório |
Padrão |
|
haveKerberos |
Indica se o cluster HBase requer autenticação Kerberos. Defina este parâmetro como Nota
|
Não |
|
|
hbaseConfig |
Configuração JSON para conexão com o cluster HBase. O parâmetro Nota
Para conectar a um banco de dados ApsaraDB for HBase, utilize seu endpoint de rede interna. |
Sim |
Nenhum |
|
mode |
Modo para escrita de dados no HBase. Atualmente, apenas o modo |
Sim |
Nenhum |
|
table |
Nome da tabela HBase onde os dados serão gravados. Este parâmetro diferencia maiúsculas de minúsculas. |
Sim |
Nenhum |
|
encoding |
Formato de codificação para converter dados STRING em |
Não |
|
|
column |
Configuração das colunas nas quais os dados serão gravados:
|
Sim |
Nenhum |
|
rowkeyColumn |
Coluna rowkey na tabela HBase de destino:
O formato é o seguinte:
|
Sim |
Nenhum |
|
versionColumn |
Especifica o timestamp para a operação de escrita. O valor pode vir de uma coluna de source ou ser uma constante. Caso não configurado, utiliza-se a hora atual do sistema.
Os exemplos a seguir mostram o formato:
|
Não |
Nenhum |
|
nullMode |
Define como tratar valores nulos nos dados de source:
|
Não |
|
|
walFlag |
Quando um cliente HBase envia dados, ele primeiro escreve as operações em um log de pré-escrita (WAL) antes de gravar no MemStore. Esse processo garante a durabilidade dos dados. Para melhorar o desempenho de escrita, desabilite o WAL definindo este parâmetro como |
Não |
|
|
writeBufferSize |
Tamanho do buffer de escrita do cliente HBase, em bytes. Este parâmetro funciona em conjunto com
|
Não |
8 MB |
|
fileSystemUsername |
Para resolver problemas de permissão do Ranger durante uma tarefa de sincronização, converta a tarefa baseada em assistente para o modo de script. Em seguida, defina o parâmetro |
Não |
Nenhum |
Demonstração do HBase20xsql Reader
{
"type":"job",
"version":"2.0",// Version number.
"steps":[
{
"stepType":"hbase20xsql",// Plugin name.
"parameter":{
"queryServerAddress": "http://127.0.0.1:8765", // Phoenix QueryServer endpoint.
"serialization": "PROTOBUF", // QueryServer serialization format.
"table": "TEST", // Table to read.
"column": ["ID", "NAME"], // Columns to read.
"splitKey": "ID" // Sharding key, which must be the primary key of the table.
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Maximum allowed error records.
},
"speed":{
"throttle":true,// Toggles rate limiting. If true, the rate is limited by the mbps parameter.
"concurrent":1,// Number of concurrent jobs.
"mbps":"12"// Rate limit in MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Parâmetros do HBase20xsql Reader
|
Parâmetro |
Descrição |
Obrigatório |
Padrão |
|
queryServerAddress |
Endpoint do Phoenix QueryServer. O plugin HBase20xsql Reader usa um cliente leve para conectar-se a este endpoint. Para passar credenciais de usuário do ApsaraDB for HBase Performance-enhanced Edition (Lindorm), anexe as propriedades |
Sim |
Nenhum |
|
serialization |
Protocolo de serialização utilizado pelo Phoenix QueryServer. |
Não |
PROTOBUF |
|
table |
Nome da tabela a ser lida. O nome diferencia maiúsculas de minúsculas. |
Sim |
Nenhum |
|
schema |
Schema que contém a tabela. |
Não |
Nenhum |
|
column |
Colunas a sincronizar. Use um array JSON para definir os nomes das colunas. Se você não especificar este parâmetro ou deixá-lo vazio, o leitor lerá todas as colunas. |
Não |
Todas as colunas |
|
splitKey |
Durante a leitura de uma tabela, ocorre o particionamento. Se você especificar o parâmetro splitKey, o campo representado por splitKey será usado para o particionamento de dados. Isso permite que a sincronização inicie tarefas concorrentes e melhora o desempenho. Existem dois métodos de particionamento disponíveis. Se o parâmetro splitPoint estiver vazio, a tabela será particionada automaticamente pelo método um por padrão:
|
Sim |
Nenhum |
|
splitPoints |
O particionamento automático baseado nos valores mínimo e máximo da chave pode não prevenir pontos críticos (hot spots) de dados. Para melhor desempenho, recomendamos definir pontos de particionamento personalizados com base na startkey e endkey das suas Regions do HBase. Isso garante que cada tarefa concorrente consulte uma única Region. |
Não |
Nenhum |
|
where |
Condição de filtro a adicionar à consulta da tabela. O HBase20xsql Reader constrói uma consulta SQL baseada nos parâmetros column, table e where para extrair dados. |
Não |
Nenhum |
|
querySql |
Para cenários de filtragem complexa onde o parâmetro where é insuficiente, forneça uma consulta SQL personalizada. Se configurar este parâmetro, o leitor ignorará os parâmetros column, table, where e splitKey. O parâmetro queryServerAddress continua sendo obrigatório. |
Não |
Nenhum |
Exemplo do HBase11xsql Writer
{
"type": "job",
"version": "1.0",
"configuration": {
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle":true,// Enables rate limiting. If set to false, the mbps parameter is ignored.
"concurrent":1, // The number of concurrent jobs.
"mbps":"1"// Rate limit in MB/s.
}
},
"reader": {
"plugin": "odps",
"parameter": {
"datasource": "",
"table": "",
"column": [],
"partition": ""
}
},
"plugin": "hbase11xsql",
"parameter": {
"table": "The name of the destination HBase table. The name is case-sensitive.",
"hbaseConfig": {
"hbase.zookeeper.quorum": "The ZooKeeper endpoint of the destination HBase cluster.",
"zookeeper.znode.parent": "The znode of the destination HBase cluster."
},
"column": [
"columnName"
],
"batchSize": 256,
"nullMode": "skip"
}
}
}
Parâmetros do HBase11xsql Writer
|
Parâmetro |
Descrição |
Obrigatório |
Padrão |
|
plugin |
Especifica o nome do plugin. O valor deve ser hbase11xsql. |
Sim |
Nenhum |
|
table |
Especifica o nome da tabela de destino. Este parâmetro diferencia maiúsculas de minúsculas. Nomes de tabelas Phoenix costumam ser em maiúsculas. |
Sim |
Nenhum |
|
column |
Especifica os nomes das colunas. Os nomes diferenciam maiúsculas de minúsculas. Nomes de colunas Phoenix geralmente são em maiúsculas. Nota
|
Sim |
Nenhum |
|
hbaseConfig |
Especifica o endpoint do cluster HBase. Defina o endpoint do ZooKeeper (ZK) no formato ip1,ip2,ip3. Nota
|
Sim |
Nenhum |
|
batchSize |
Define o número máximo de linhas para escrita em lote. |
Não |
256 |
|
nullMode |
Define como lidar com valores nulos dos dados de source.
|
Não |
skip |