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

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

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

sqoop从关系型数据库导数据到hbase_第1张图片


方法二:

在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


你可能感兴趣的:(sqoop)