离线同步任务支持HBase数据源,支持该数据源的抽取(Reader)导入(Writer),当前支持的版本为:1.2.01.2.61.4云数据库HBase增强版2.x

使用前提


在使用之前需要在项目中心(新)完成HBase数据源的登记并测试通过。
数据源登记过程中,需要填写如下信息:

  • 数据源名称:HBase数据源的名称
  • 数据源标识:仅允许包含英文小写、数字、下划线,只允许英文小写开头,最大长度为64个字符。平台内唯一,保存数据源后数据标识不可修改
  • 归属项目:由于元数据中心是项目组级别,因此此处支持选择项目组下的项目,默认为当前项目名称
  • 负责人:默认为当前创建人员
  • 协助管理员:同负责人,有该数据源的管理权限,包括编辑、设置“源系统账号映射”。可在安全中心为自己或其他人设置该数据源的使用权限
  • hbase.zookeeper.quorum:用户hbase集群对应zk主机名
  • zookeeper.znode.parent:hbase集群注册至zk中对应namespace
  • 认证方式:支持普通认证和Kerberos认证。当选择Kerberos认证,需要填写上传hbase-site.xml、hdfs-site.xml、core-site.xml、keytab配置文件并完成principal的填写
  • 用户:当认证方式选择普通认证时,需要填写用户,默认用户为appops
  • 自定义属性:支持添加数据源的其它配置
唯一性校验规则:
1)若版本为1.2、1.4,则以hbase.zookeeper.quorum + zookeeper.znode.parent + 用户作为唯一性校验;
2)若版本为阿里云数据库HBase增强版2.x,则以hbase.zookeeper.quorum +hbase.client.username作为唯一性校验。

数据源配置完成后,需点击测试连接按钮进行测试,测试通过后才可使用。

除了数据源需要准备之外,进行离线同步任务创建和数据源的使用都需要在安全中心-功能权限中添加相应的权限(可参考数据传输权限元数据中心权限)。

HBase作为数据来源


HBase to Hive为例,在数据来源端选择HBase数据源类型及数据源名称,选择需要进行读取的NameSpace和表。 支持根据【startRowKey和endRowKey】或【起始时间位点和结束时间位点】确定读取范围。

(1)如果填写起始时间位点和结束时间位点,则会使用时间戳范围过滤条件进行读取HBase表数据。请按照格式:yyyy-MM-dd HH:mm:ss.SSS填写。其中“SSS”可不填,如不填则默认取000,系统执行时会将该值转成timestamp后从HBase中读取相应数据。支持填写系统参数和参数组参数。
(2)如未填写起始时间位点,则默认从最早数据开始读取。如未填写结束时间位点,则默认读取至最新数据。
(3)如果同时填写startRowKey、endRowKey和起始时间位点、结束时间位点,则会读取指定RowKey范围内指定时间戳范围内的数据;如果仅填写startRowKey、endRowKey,则会读取指定RowKey范围内的数据,不限时间戳范围;如果仅填写起始时间位点、结束时间位点,则会读取指定时间戳范围内的数据,不限RowKey范围。
(4)任务配置字段映射时,来源表字段如选取timestamp字段,运行任务时,同一RowKey值对应的多列数据对应的timestamp值不同时,则timestamp字段值取timestamp最新的列对应的timestamp值。

  • 特殊字符替换
    • 不可见字符请使用Unicode编码表示
    • 使用下列字符:|、^、$、.、*、\、?、+、{ 、}、[、 ]、( 、)时,请在字符前添加"\"来表示。示例:"|"字符表示为"\|"
    • 需要替换多个特殊字符时,字符间请使用","分隔。不支持替换","字符

HBase作为数据去向


Hive to HBase为例,当HBase作为数据去向时,需要选择数据源类型、已登记的数据源、NameSpace及表。

HBase写入方式支持PUTBulkLoad。当写入方式为BulkLoad时,需要配置dfs.nameservices、dfs.namenode.rpc-address:

  • dfs.nameservices:HFile所在HDFS的schema
  • dfs.namenode.rpc-address:允许输入多个地址,通过换行进行分割