MySQL to Hbase 数据的抽取
一个简单粗暴的方法从MySQL数据库抽取数据到Hbase实现的过程:
rowKey利用MySQL表的主键ID特性作为HBASE的id
code:
####
#!/usr/bin/env python
#coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import MySQLdb
import datetime,time
sys.path.append('/usr/lib/python2.6/site-packages/hbase')
from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from hbase import Hbase
from hbase.ttypes import *
import csv
from hbase.ttypes import ColumnDescriptor, Mutation, BatchMutation, TRegionInfo
from hbase.ttypes import IOError, AlreadyExists
def client_conn():
transport=TSocket.TSocket("172.16.10.87",9090)
transport=TTransport.TBufferedTransport(transport)
protocol=TBinaryProtocol.TBinaryProtocol(transport)
client=Hbase.Client(protocol)
transport.open()
return client
if __name__=="__main__":
client=client_conn()
conn = MySQLdb.connect(host="172.161.110.10", user="dlan", passwd="root123", port=5029, db='coolqi', charset='utf8')
cur = conn.cursor()
sql="select * from ca_record where ca_time>=STR_TO_DATE('20170720','%Y%m%d')"
print sql
cur.execute(sql)
data=cur.fetchall()
for k in xrange(len(data)):
datalist2=[]
rowKey=data[k][0]
print rowKey
user_id=data[k][1]
ca_result=data[k][2]
ca_time=data[k][3]
real_name=data[k][4]
id_card=data[k][5]
sex=data[k][6]
datalist=[user_id,ca_result,ca_time,real_name,id_card,sex]
datalist1=["user_id","ca_result","ca_time","real_name","id_card","sex"]
for j in range(len(datalist)):
args=str(datalist[j])
#print args
if isinstance(args,str):
mutations="[Mutation(column="+"'"+datalist1[j]+':'+str(j)+"'"+","+"value="+"'"+str(args)+"')"+"]"
datalist2.append(mutations)
#print datalist2
client.mutateRow('ca_record',str(rowKey),[Mutation(column=datalist1[j]+':'+str(j),value=str(args))])
#client.mutateRows('ca_record',datalist2)
###在for k in xrange(len(data)): 可以利用enumerate()函数减少上面的循环 .
转载于:https://blog.51cto.com/dbaspace/1950007
MySQL to Hbase 数据的抽取相关推荐
- 大数据案例——Hive、MySQL、HBase数据互导
本文是基于教程大数据案例--本地文件上传hive数据库,对数据在Hive,MySQL,HBase之间的互导进行进阶版的学习.数据集:淘宝用户点击商品操作数据集,共30万条记录.如果没有安装MySQL, ...
- 从mysql向HBase+Phoenix迁移数据的心得总结
* 转载请注明出处 - yosql473 - 格物致知,经世致用 mysql -> HBase + Phoenix 1.总体方案有哪些? 1)通过Sqoop直接从服务器(JDBC方式)抽取数据到 ...
- 分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储...
http://blog.51cto.com/xpleaf/2093952 1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HB ...
- hbase数据导入到mysql(转载+自己验证整理,目前失败)
本文是对[1]的重新整理. #------------------------------------------------------------------------------------- ...
- HBase实战 | 从MySQL到HBase:数据存储方案转型的演进
作者介绍 杨宏志,知乎首页架构负责人,主要负责首页工程化建设.工程架构优化.性能提升等工作.知乎专栏:https://zhuanlan.zhihu.com/c_195355141 本文转载自dbapl ...
- 分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储
1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HBase等. 基于面向接口的编码思想来开发,因此这个系统具有一定的扩展性,有 ...
- sqoop将hbase数据导入mysql_Sqoop将mysql数据导入hbase的血与泪
Sqoop将mysql数据导入hbase的血与泪(整整搞了大半天) 版权声明:本文为yunshuxueyuan原创文章. 如需转载请标明出处: https://my.oschina.net/yunsh ...
- 从MySQL到HBase:数据存储方案转型的演进
一.集群化方案 1.MySQL应用的演化 MySQL与HBase说到最核心的点,是一种数据存储方案.方案本身没有对错.没有好坏,只有合适与否.相信多数公司都与MySQL有着不解之缘,部分学校的课程甚至 ...
- BigData NoSQL —— ApsaraDB HBase数据存储与分析平台概览
一.引言 时间到了2019年,数据库也发展到了一个新的拐点,有三个明显的趋势: 越来越多的数据库会做云原生(CloudNative),会不断利用新的硬件及云本身的优势打造CloudNative数据库, ...
- HBase 数据导入功能实现方式解释
https://www.ibm.com/developerworks/cn/opensource/os-cn-data-import/index.html 预备知识:启动 HBase 清单 1. 修改 ...
最新文章
- 深入剖析ThreadLocal
- (转)NGUI研究院之三种方式监听NGUI的事件方法
- 移动端300ms延迟解决的几种方法;
- Flex 中的 RSL
- super icon
- ***入门基础知识(超全)
- clientdataset 遍历字段_TClientDataSet[5]: 读取数据
- 最快最新最详细的IT电子书
- 关于递归三要素的理解
- 项目中缺少maven dependencis,或者pom文件报红
- Android项目开发新版本需要注意的事项
- 快手春节活动奖励未到账,被羊毛党投诉上了全国12315平台
- java读取pem格式私钥_openssl生成RSA格式及pkcs1与pkcs8格式互相转换
- Win7中语音识别功能的详细介绍
- python写入xml文件的方法_python写入xml文件的方法
- 玉品游戏java_整蛊游戏N合一(玉品)
- 利用python多个工作簿合并到一个工作簿
- 企业间数据竞争规则研究
- 【安信可首款4G模组CA-01直连阿里物联网平台①】产品创建
- Linux—常用十大命令