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
HBase0.94.x,HBase1.1.xeHBase2.x. Tanto a interface visual sem código quanto o editor de código são compatíveis. Use o parâmetrohbaseVersionpara especificar a versão.-
Se sua versão do HBase for
HBase0.94.x, defina hbaseVersion como 094x tanto para o leitor quanto para o gravador."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 gravador.
"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. Compatível apenas com o editor de código.Plugin HBase11xsql: Suporta
HBase1.1.xePhoenix5.x. Compatível apenas com o editor de código. -
O plugin de escrita HBase{xx}xsql oferece uma maneira 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 e gravar 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 suporta os modos normal e multiVersionFixedColumn. Consulte o Guia de mapeamento de campos do HBase para obter instruções de configuração.
-
No modo
normal, o HBase Reader trata a tabela HBase como uma tabela bidimensional padrão (tabela larga) 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 mostra 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. Cada registro retornado consiste em quatro colunas:rowKey,family:qualifier,timestampevalue. Especifique explicitamente as colunas a serem lidas. O valor de cada célula é tratado como um registro. Se existirem 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 suporta a concatenação de vários campos da origem para usar comorowkeyde uma tabela HBase.-
É possível especificar uma versão (timestamp) para a gravação de dados no HBase. As opções disponíveis são:
Usar a hora atual como versão.
Especificar uma coluna de origem como versão.
Definir um horário específico como versão.
Tipos de dados suportados
Leitura em lote
-
Esta tabela apresenta os tipos de dados do HBase suportados e como o HBase Reader os converte.
Categoria
Tipo de coluna do Data Integration
Tipo de dados 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 dados 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 dados configurado para cada coluna deve corresponder ao tipo de dados respectivo na tabela HBase.
Somente os tipos de dados listados na tabela são suportados.
|
Categoria |
Tipo de dados do banco |
|
Inteiro |
INT, LONG e SHORT |
|
Ponto flutuante |
FLOAT e DOUBLE |
|
Booleano |
BOOLEAN |
|
String |
STRING |
Precauções
Se você encontrar o erro "tried to access method com.google.common.base.Stopwatch" ao testar a conectividade, adicione a propriedade hbaseVersion à 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 Gerenciamento de fontes de dados. Consulte as descrições dos parâmetros no console do DataWorks para entender o significado de cada parâmetro ao adicionar uma 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 uma tarefa de sincronização, consulte os guias de configuração a seguir.
Configure sincronização em lote de tabela única
-
Para mais detalhes, visualize Configuração pela interface visual sem código e Configuração em modo de script.
Como o HBase é uma source de dados sem schema, a interface visual sem código 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 modo multiVersionFixedColumn.
A configuração de mapeamento de campos difere para cada modo:
-
Modo normal: Modo padrão. Lê uma tabela HBase como uma tabela bidimensional padrão e recupera a versão mais recente dos dados. Ao usar o HBase como source de dados, configure o mapeamento entre o Source Field e o Target Field. Os campos de origem e destino possuem um mapeamento um para um. Como a tabela de origem não tem campos fixos, os campos são mapeados por sua ordem por padrão. Para alterar o mapeamento, 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 origem são exibidos no formato JSON e incluem as propriedadesnameetype(ambas sãostring).Legacy version
Na configuração de mapeamento de campos, os campos de origem são exibidos no formato
Type|ColumnFamily:ColumnName, incluindostring|rowkey,string|basic:age,string|basic:name,string|score:englishestring|score:math. Estes correspondem aos campos de destinorowkey,age,name,englishemath, respectivamente.A tabela de destino contém campos como rowkey, age, name, english, math e pt. Por 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), e este modo permite ler várias versões de dados. O Source Field é configurado no formato
ColumnFamily:Qualifier, comobasic:age. A tabela de destino possui quatro colunas fixas: row_key, cf, timestamp_col e value. Nenhuma configuração de mapeamento é necessária.New version
Na área de mapeamento de campos, mapeie os campos de origem para os campos de destino. Os campos de origem estão no formato JSON. Exemplos de mapeamentos:
{"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 origem não mapeado{"name":"score:math","type":"string"}. Clique em Edit em qualquer um dos lados para editar os campos de origem e destino, respectivamente.Legacy version
Na área de mapeamento de campos, o source field inclui
string|rowkey,string|basic:age,string|basic:name,string|score:englishestring|score:math. O target field incluirowkey,family,timestampevalue. Os campos de origem e destino são mapeados linha por linha.A tabela de destino contém quatro colunas fixas: row_key, cf, timestamp_col e value. Por exemplo: row_key=s001, cf=basic:age, timestamp_col=1234567890, value=20.
Ao usar o HBase como destino de dados (apenas o modo normal é compatível), configure o Target Field e a rowkey. É possível formar o campo rowkey concatenando vários campos de origem.
-
Para parâmetros e exemplos de script no modo de script, consulte Apêndice: Exemplos de scripts e descrições de parâmetros.
Perguntas frequentes
-
P: Qual é uma configuração de concorrência adequada? Aumentar a concorrência ajuda quando a velocidade de importação está lenta?
R: O tamanho padrão do heap para a Java Virtual Machine (JVM) em um processo de importação de dados é de 2 GB. A concorrência é implementada por meio de multithreading e configurada 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 de 5 a 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 de 2 a 4 MB de dados. Divida esse volume de dados pelo tamanho da linha para determinar obatchSizerecomendado. -
P: Ao ler dados do HBase no modo
multiVersionFixedColumn, recebo um 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 qualificador, comoage, em vez debasic:age. Para resolver, 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 usando o editor de código, configure os parâmetros relacionados no script com base nos requisitos unificados de formato de script. Para mais informações, consulte Configuração em modo de script. As informações a seguir descrevem os parâmetros necessá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 a seguir 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 é convertido em um registro separado. Cada registro consiste em 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"
}
]
}
}
A tabela de destino no MaxCompute deve ser criada antecipadamente. Por 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-se ao cluster HBase, no 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-se 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. Os nomes das 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 uma 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 serem lidas no modo de múltiplas versões. Os valores válidos são |
Obrigatório no modo |
Nenhum |
|
range |
Especifica o intervalo de rowkey a ser lido.
|
Não |
Nenhum |
|
scanCacheSize |
Número de linhas a serem buscadas do HBase em uma única chamada de procedimento remoto (RPC). |
Não |
256 |
|
scanBatchSize |
Número de colunas a serem buscadas do HBase em uma única RPC. Defina como -1 para buscar todas as colunas. Nota
O valor para 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 |
Especifica 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-se a um banco de dados ApsaraDB for HBase, utilize seu endpoint de rede interna. |
Sim |
Nenhum |
|
mode |
Modo para gravar 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 para as colunas nas quais você está gravando dados:
|
Sim |
Nenhum |
|
rowkeyColumn |
Coluna rowkey na tabela HBase onde os dados serão gravados:
O formato é o seguinte.
|
Sim |
Nenhum |
|
versionColumn |
Especifica o timestamp para a operação de escrita. O valor pode vir de uma coluna de origem ou ser uma constante. Se este parâmetro não for configurado, a hora atual do sistema será usada.
Os exemplos a seguir mostram o formato.
|
Não |
Nenhum |
|
nullMode |
Especifica como lidar com valores nulos nos dados de origem:
|
Não |
|
|
walFlag |
Quando um cliente HBase envia dados, ele primeiro grava 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 para o cliente HBase, em bytes. Este parâmetro é usado 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 se conectar a este endpoint. Para passar credenciais de usuário para o ApsaraDB for HBase Performance-enhanced Edition (Lindorm), anexe as propriedades |
Sim |
Nenhum |
|
serialization |
Protocolo de serialização usado 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 serem sincronizadas. 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 |
Quando uma tabela é lida, ela é particionada. 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 de dados inicie tarefas concorrentes e melhora o desempenho. Você pode escolher entre dois métodos diferentes de particionamento. Se o parâmetro splitPoint estiver vazio, a tabela será particionada automaticamente com base no método um por padrão:
|
Sim |
Nenhum |
|
splitPoints |
O particionamento automático baseado nos valores mínimo e máximo da chave de particionamento pode não evitar pontos de acesso (hot spots) de dados. Para obter desempenho ideal, recomendamos definir pontos de particionamento personalizados com base na startkey e na 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 ser adicionada à consulta da tabela. O HBase20xsql Reader constrói uma consulta SQL com base 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 você configurar este parâmetro, o leitor ignorará os parâmetros column, table, where e splitKey. O parâmetro queryServerAddress ainda é 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 |
Nome do plugin. O valor deve ser hbase11xsql. |
Sim |
Nenhum |
|
table |
Nome da tabela de destino. Este parâmetro diferencia maiúsculas de minúsculas. Os nomes das tabelas Phoenix geralmente são em maiúsculas. |
Sim |
Nenhum |
|
column |
Nomes das colunas. Os nomes diferenciam maiúsculas de minúsculas. Os nomes das colunas Phoenix geralmente são em maiúsculas. Nota
|
Sim |
Nenhum |
|
hbaseConfig |
Endpoint do cluster HBase. Você deve especificar o endpoint do ZooKeeper (ZK) no formato ip1,ip2,ip3. Nota
|
Sim |
Nenhum |
|
batchSize |
Número máximo de linhas para uma escrita em lote. |
Não |
256 |
|
nullMode |
Define como lidar com valores nulos dos dados de origem.
|
Não |
skip |