mysql导入hbase_mysql导入hbase

该博客展示了如何将MySQL中的数据导入到HBase。通过读取`dt.txt`文件中的日期,运行SQL查询从MySQL导出特定日期范围内的数据,并将其格式化为HBase所需的JSON格式,然后使用`imp.py`脚本将这些数据批量写入HBase表中。
摘要由CSDN通过智能技术生成

##########################

cat dt.txt

2015-12-02 42

2015-12-04 1

2015-12-09 2769

2015-12-10 6439

2015-12-11 5966

#########

cat imp.py

# -*- coding: utf-8 -*-

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

import happybase

import json

conn = happybase.Connection('bhasehost')

conn.open()

tab1 = conn.table('star_biz:t_realname_model')

with tab1.batch(batch_size=5) as tab1bat:

with open("/data/dyg/tmp/table_name.csv", "r") as f:

for i in f:

r=json.loads(json.loads(i.encode('utf-8')))

if not tab1.row(r["A:id"]):

tab1bat.put(r["A:id"],r)

#########

for dt in $(cat dt.txt | awk '{print $1;}')

do

echo $dt

mysql -uroot -ppassword -hmysqlhost --default-character-set utf8 db_name -N > table_name.csv <

SELECT CONCAT('"{\\\"A:cardId\\\":\\\"',id_card,'\\\",'

'\\\"A:createTime\\\":\\\"',UNIX_TIMESTAMP(create_time) * 1000,'\\\",',

'\\\"A:id\\\":\\\"',CONCAT(REVERSE(id_card),name), '\\\",',

'\\\"A:msg\\\":\\\"','一致\\\",',

'\\\"A:picture\\\":\\\"',picture,'\\\",',

'\\\"A:realName\\\":\\\"',name,'\\\",',

'\\\"A:status\\\":\\\"','SUCCESS\\\",',

'\\\"A:updateTime\\\":\\\"',UNIX_TIMESTAMP(update_time) * 1000, '\\\"}"')

FROM table_name

where update_time >= '$dt'

and update_time < date_add('$dt', interval +1 day);

EOF

sed -i -e 's/\\\\/\\/g' table_name.csv

python2.7 imp.py

done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值