sqoop从关系型数据库导数据到hbase

本文介绍如何使用Sqoop工具将Oracle数据导入HBase,并通过配置实现联合主键字段的冗余存储。提供了具体的sqoop命令示例及配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导入过程中,如果发现表示联合主键,则sqoop会将主键的这几个字段用短下划线拼接成hbase的rowkey,然后将剩余部分作为该行的cell存入hbase中。但是如果我们需要将这些作为主键的字段冗余存入cell,则需要进行简单的配置。 对于这种情况出现的原因是,有时我们会用hive建立外部表与hbase表关联,后续进行LADP。

在$SQOOP_HOME/sqoop-site.xml中加入如下配置项:



方法二:

在sqoop命令行中加入 -D propertyname=propertyvalue来修改配置参数

注意:要将这个写到import后面

例如:

sqoop import -D sqoop.hbase.add.row.key=true \

--connect jdbc:oracle:thin:@10.31.57.57:1521/orcl \
--username csamp \
--password Oracle1234 \
--table COEF_LV_SET \
--hbase-create-table \
--hbase-table coef_lv_set_for_c_pr028 \
--hbase-row-key COEF_CODE,RANGE_START,RANGE_END \
--column-family ci


sqoop import --connect "jdbc:oracle:thin:@10.253.128.202/orcl" 
--username product 
--password product 
--query "select distinct t.pol_code||'~'||t.insur_year||'~'||t.pay_itrvl_code||'~'||t.sex||'~'||t.appl_age||'~'||t.insur_dur||'~'||t.moneyin_dur||'~'||t.ann_draw_age||'~'||t.ann_itrvl||'~'||t.ann_incr_pct||'~'||t.occ_class_no
as NEWKEY,t.* from ipb_l_reserve t  where \$CONDITIONS" 
--hbase-table ipb_l_reserve 
--column-family ci 
--hbase-create-table 
--hbase-row-key NEWKEY 
--split-by pol_code



sqoop import --connect jdbc:oracle:thin:@10.31.57.57:1521/orcl \
--username csamp \
--password Oracle1234 \
--query "select t.COEF_CODE||'~'||t.RANGE_START||'~'||t.RANGE_END as "NEWKEY",t.* from COEF_LV_SET t where \$CONDITIONS" \
--hbase-table gy.cntr_items \
--hbase-create-table \
--hbase-row-key NEWKEY \
--column-family ci \
--m 1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值