HBase
离线同步任务支持HBase数据源,支持该数据源的抽取(Reader)和导入(Writer),当前支持的版本为:1.2.0、1.2.6、1.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写入方式支持PUT和BulkLoad。当写入方式为BulkLoad时,需要配置dfs.nameservices、dfs.namenode.rpc-address:
- dfs.nameservices:HFile所在HDFS的schema
- dfs.namenode.rpc-address:允许输入多个地址,通过换行进行分割