本文档主要介绍数据如何导入Serverless实例。

大量数据从HBase集群导入Serverless

由于Serverless实例的写入受到购买CU数的限制,如果大量的数据直接通过API写入Serverless实例可能会花费过多时间和消耗过多CU(根据购买CU量的多少,几十GB,几百GB,或者上TB的数据可以定义为大量数据)。因此需要使用LTS

注意事项

  • 仅支持HBase1.x以上版本数据导入(包括自建HBase和云HBase)。
  • Serverless实例空间不足会导致数据导入中断。原始集群的表大小是压缩后的大小,而Serverless实例空间计费是按照KV原始大小计算,请注意预留足够空间,关于空间计费请参考Serverless 计费

操作步骤

  1. 购买BDS实例,购买指南参见开通LTS。由于数据导入需要OSS做为中转,购买过程中请勾选购买冷存储,并选择合适的空间大小。基本信息
    说明
    • 实例必须和源HBase集群(数据导出的集群)在同一个VPC内,否则需要做网络打通。
    • 如果数据导入是临时行为,可以采用按量付费的方式,在数据导入完成后可以立刻释放BDS实例。
    • 如果您在之前已经购买过LTS,则注意BDS版本需要升级到2.5.4或者以上版本,如果您的LTS不在此版本以上,请重新购买或者联系云HBase答疑钉钉号和提工单升级。
  2. 将源HBase集群信息关联到LTS中:

    如果源HBase集群是云HBase集群,可以直接在LTS的控制台页面单击添加,如果是自建HBase集群,需要手工添加数据源,请参见HBase数据源

  3. 在BDS WebUI中给源集群中需要导入的表创建备份(将数据导入Serverless的原理是将源表进行备份,再将备份数据bulkload到Serverless集群)。
    1. 进入BDS系统UI入口。数据库连接
    2. 创建备份恢复计划,勾选需要备份的表(即需要导出的表)创建备份计划备份计划
    3. 进行数据备份数据备份
    4. 备份完成后可以获取备份计划ID和备份记录ID备份计划ID
  4. 将备份的数据导入Serverless集群
    1. 在Serverless实例的控制台界面将SrcBDSInstanceID(即BDS ID,在BDS控制台界面获得),BackplanID(即刚才备份计划ID),BackupRecordID(即刚才获得的备份记录ID),需要恢复的表(需要恢复的表用namespace:tablename 格式填入, 如果有多个用换行符隔开)填入界面。备份计划
    2. 备份计划ID,备份记录ID 可以在BDS系统UI中获取获取备份ID
    3. 单击创建进行恢复。创建恢复
      说明 无需事先在Serverless实例中建表,系统会根据源表属性进行自动建表。

少量数据从HBase/MySQL(RDS)导入Serverless集群

如果导入的数据量较少,或者有RDS/HBase数据需要实时同步到Serverless集群,可以采用此种方式。此种方式采用HBase API将数据写入Serverless集群,会受到购买的CU数量限制。比如购买了100CU,则意味着每秒只能写入100CU的数据,计费指南请参见Serverless 计费

准备工作

  1. 购买BDS集群,参见购买指南参见开通LTS
  2. 在BDS中添加Serverless数据源。HBase数据源Serverless数据源数据源基本信息
  3. 在BDS中添加导出数据的实例,如HBase,RDS的数据源,添加HBase的数据源见HBase数据源

从其他HBase集群全量导入

参见BDS说明文档RDS全增量同步

从其他HBase集群实时同步

参见BDS说明文档RDS全增量同步

从MySQL/RDS全量数据导入

参见BDS说明文档RDS全增量同步

从MySQL/RDS增量实时同步

从RDS增量导入需要购买DTS服务器,详情参见BDS说明文档RDS全增量同步

有数据需要从其他系统导入Serverless集群

如果您有数据在其他异构系统中,如MongoDB,ElasticSearch,TableStore等,或者您不想购买BDS实例,可以采用DataX的方式导入。DataX支持的数据源参见DataX官方文档

准备工作

目前DataX开源代码和阿里云DataWorks中集成的DataX版本还不支持HBase Serverless(相应的兼容代码已经提交,等待版本发布,如果有进展我们会在文档说明),需要下载已经集成HBase Serverless插件的DataX版,点击此处下载

使用方法

在DataX中写入HBase Serverless的所用插件为hbase11xwriter,此插件的具体配置可参见hbase11xwriter的帮助文档
{   
 "job": {        
     "content": [             
           {                
           "reader": {                    
                "name": "hbase11xreader",                     
                "parameter": {                        
                        "encoding": "utf-8",                       
                          "hbaseConfig": {                            
                                "hbase.client.connection.impl" : "com.alibaba.hbase.client.AliHBaseUEConnection",  
                                "hbase.zookeeper.quorum" : "ld-xxxx-proxy-hbaseue-pub.hbaseue.rds.aliyuncs.com:30020"
,                              "hbase.client.username" : "xxx",                            
                                "hbase.client.password" : "xxx"                       
                               },                        
                                    "mode": "normal",                       
                                     "column": [                            
                                        {                               
                                          "name": "rowkey",                                
                                           "type": "string"                            
                                                          },                            
                                        {                               
                                           "name": "f:f0",                               
                                           "type": "string"                            
                                                          }                        
                                       ],                        
                                       "range": {                            
                                                 "endRowkey": "",                            
                                                 "isBinaryRowkey": true,                           
                                                  "startRowkey": ""                        
                                                 },                      
                                              "table": "table1"                    
                                                             }                
                                        },              
                                              "writer": {                    
                                               "name": "hbase11xwriter",                   
                                               "parameter": {                       
                                                 "column": [                            
                                           {                               
                                                  "index":1,                               
                                                  "name": "f:f0",                               
                                                  "type": "string"                            
                                            }                        
                                            ],                       
                                             "encoding": "utf-8",                        
                                            "writeBufferSize" : 1048576,                        
                                     "hbaseConfig": {                            
                                     "hbase.client.connection.impl" : "com.alibaba.hbase.client.AliHBaseUEConnection",                            
                                     "hbase.zookeeper.quorum" : "https://sh-xxxx-hbase-serverless.hbase.rds.aliyuncs.com:443",                        
                                     "hbase.client.username" : "AK名",                           
                                      "hbase.client.password" : "Ak密码",                            
                                      "hbase.client.cu.limit" : "5"                       
                                                    },                       
                                      "mode": "normal",                       
                                       "rowkeyColumn": [                            
                                       {                                
                                            "index":0,                               
                                             "name": "rowkey",                               
                                             "type": "string"                            
                                         }                        
                                         ],                       
                                          "table": "table1",                        
                                           "versionColumn": {                            
                                           "index": "-1",                           
                                           "value": "123456789"                       
                                                 }                   
                                       }               
                              }           
                     }        
             ],        
                                      "setting": {            
                                                  "speed": {                
                                                    "channel": "1"           
                                                 }       
                                          }    
                       }
}
上述json文件是从HBase增强版中将table1这张表的数据全量导入到Serverless的一个示例配置。用户主要需要关注writer部分的这几个配置:
配置名 说明
hbase.client.connection.impl 固定为com.alibaba.hbase.client.AliHBaseUEConnection
hbase.zookeeper.quorum 填写Serverless示例的连接地址,注意VPC网络和外网地址,地址以https://开头。
hbase.client.username AK名,详见获取Serverless HBase用户名和密码
hbase.client.password AK密码,详见获取Serverless HBase用户名和密码
hbase.client.cu.limit 限制的CU数量,可根据购买数量设置。注意由于DataX每个线程都会起一个HBase客户端,而CU的限制是客户端级别的,所以这个值需要和channel 设置配合。比如想要限制写入不超过100CU,但开了5个线程,则hbase.client.cu.limit 要设置为20。
writeBufferSize 写入时每个batch的大小,由于Serverless限制了每个batch的大小,这里设置不要超过1048576 (1MB)。
channel 线程并发数。
说明

如果有任何疑问,请钉钉咨询云HBase答疑或者提工单