本文共 2434 字,大约阅读时间需要 8 分钟。
RDS数据订阅服务主要解决的RDS上的数据同步到HBase,用户可以在HBase上查到RDS的数据,满足大数据查询分析的需求
业务使用MySQL承担交易等关键的在线业务,同时有数据分析的需求,需要做一些复杂查询,但不能影响在线业务。利用BDS异构数据源迁移,把RDS数据实时同步到HBase,可以轻松应对大数据查询需求。
客户自行使用开源的工具完成数据的迁移
HBase版本:1.x、2.x
RDS版本:HDFS HA 的填写例子
集群名:xxxxxHDFS URI:hdfs://100.81.140.116:8025,100.81.140.120:8025HBase在HDFS根目录:/hbasedfs.nameservices: hbase-clusterclusterKey: 100.81.140.116,100.81.140.120,100.81.140.122:2185:/hbaseHDFS 非HA 的填写例子
集群名:xxxxxHDFS URI:hdfs://100.81.140.116:8025HBase在HDFS根目录:/hbasedfs.nameservices:clusterKey: 100.81.140.116,100.81.140.120,100.81.140.122:2185:/hbaseRDS迁移到HBase Mapping例子
[ { "rds_table_name": "hhh_test.phoenix_test", "hbase_table_name": "default:phoenix_test", "config": { "skip_delete": true }, "columns_mapping": [ { "name": "cf1:hhh", "src_columns": [ "id", "title" ], "expression": "{ { concat(title, id) }}" }, { "name": "cf1:*", "src_columns": [ "*" ] } ], "rowkey_mapping": { "src_columns": [ "id" ], "expression": "{ { concat('idg', id) }}" } }]
Mapping说明
参数 | 描述 | 必选 |
---|---|---|
rowkey_mapping | 定义rowkey的计算方式,src_columns指定用源表哪些列计算rowkey,expression是可选的计算表达式,该计算表达式为语法,当用户需要对源表的列进行简单计算得到rowkey时可以用 | 是 |
hbase_table_name | 目的hbase表名 | 是 |
rds_table_name | RDS的表名 | 是 |
columns_mapping | 定义源到目的表的转换映射信息,name为hbase列名,需要注意带上列组名,src_columns为源表的列,和rowkey的定义一样,也支持expression表达式 | 是 |
skip_delete | 是否跳过删除操作,true为跳过,false为不跳过 | 否,默认为true,即跳过删除语句 |
{ "name": "cf1:address", "src_columns": ["address"], "expression": "{ { concat('idg', id) }}" }
{ "name": "cf1:*", "src_columns": ["*"]}
操作 | 支持 | 备注 |
---|---|---|
INSERT | 是 | 对应HBase的PUT |
UPDATE | 是 | 对应HBase的PUT |
DELETE | 是 | 用户可以配置是否同步源端的DELETE,默认不同步 |
操作 | 支持 | 备注 |
---|---|---|
CREATE TABLE | 否 | 用户在MySQL新建表后,如果需要同步到HBase,需自行在HBase建立对应的表 |
DROP TABLE | 否 | |
ALTER TABLE ADD COLUMN | 是 | 同步到默认列组,如果没有默认列组则忽略同步该列 |
ALTER TABLE DROP COLUMN | 否 | |
ALTER TABLE RENAME COLUMN | 是 | 新数据同步到默认列组,如果没有默认列组则忽略同步该列,老数据不变 |
ALTER TABLE MODIFY COLUMN | 是 | HBase无类型,所以源表列类型变更无影响 |
所有索引DDL | 否 |
转载地址:http://tdsnl.baihongyu.com/