一个简单粗暴的方法从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 数据的抽取相关推荐

  1. 大数据案例——Hive、MySQL、HBase数据互导

    本文是基于教程大数据案例--本地文件上传hive数据库,对数据在Hive,MySQL,HBase之间的互导进行进阶版的学习.数据集:淘宝用户点击商品操作数据集,共30万条记录.如果没有安装MySQL, ...

  2. 从mysql向HBase+Phoenix迁移数据的心得总结

    * 转载请注明出处 - yosql473 - 格物致知,经世致用 mysql -> HBase + Phoenix 1.总体方案有哪些? 1)通过Sqoop直接从服务器(JDBC方式)抽取数据到 ...

  3. 分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储...

    http://blog.51cto.com/xpleaf/2093952 1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HB ...

  4. hbase数据导入到mysql(转载+自己验证整理,目前失败)

    本文是对[1]的重新整理. #------------------------------------------------------------------------------------- ...

  5. HBase实战 | 从MySQL到HBase:数据存储方案转型的演进

    作者介绍 杨宏志,知乎首页架构负责人,主要负责首页工程化建设.工程架构优化.性能提升等工作.知乎专栏:https://zhuanlan.zhihu.com/c_195355141 本文转载自dbapl ...

  6. 分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储

    1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HBase等. 基于面向接口的编码思想来开发,因此这个系统具有一定的扩展性,有 ...

  7. sqoop将hbase数据导入mysql_Sqoop将mysql数据导入hbase的血与泪

    Sqoop将mysql数据导入hbase的血与泪(整整搞了大半天) 版权声明:本文为yunshuxueyuan原创文章. 如需转载请标明出处: https://my.oschina.net/yunsh ...

  8. 从MySQL到HBase:数据存储方案转型的演进

    一.集群化方案 1.MySQL应用的演化 MySQL与HBase说到最核心的点,是一种数据存储方案.方案本身没有对错.没有好坏,只有合适与否.相信多数公司都与MySQL有着不解之缘,部分学校的课程甚至 ...

  9. BigData NoSQL —— ApsaraDB HBase数据存储与分析平台概览

    一.引言 时间到了2019年,数据库也发展到了一个新的拐点,有三个明显的趋势: 越来越多的数据库会做云原生(CloudNative),会不断利用新的硬件及云本身的优势打造CloudNative数据库, ...

  10. HBase 数据导入功能实现方式解释

    https://www.ibm.com/developerworks/cn/opensource/os-cn-data-import/index.html 预备知识:启动 HBase 清单 1. 修改 ...

最新文章

  1. 深入剖析ThreadLocal
  2. (转)NGUI研究院之三种方式监听NGUI的事件方法
  3. 移动端300ms延迟解决的几种方法;
  4. Flex 中的 RSL
  5. super icon
  6. ***入门基础知识(超全)
  7. clientdataset 遍历字段_TClientDataSet[5]: 读取数据
  8. 最快最新最详细的IT电子书
  9. 关于递归三要素的理解
  10. 项目中缺少maven dependencis,或者pom文件报红
  11. Android项目开发新版本需要注意的事项
  12. 快手春节活动奖励未到账,被羊毛党投诉上了全国12315平台
  13. java读取pem格式私钥_openssl生成RSA格式及pkcs1与pkcs8格式互相转换
  14. Win7中语音识别功能的详细介绍
  15. python写入xml文件的方法_python写入xml文件的方法
  16. 玉品游戏java_整蛊游戏N合一(玉品)
  17. 利用python多个工作簿合并到一个工作簿
  18. 企业间数据竞争规则研究
  19. 【安信可首款4G模组CA-01直连阿里物联网平台①】产品创建
  20. Linux—常用十大命令

热门文章

  1. 模拟支付宝服务窗环境
  2. 设计一个简易的有道词典
  3. VS2012写的程序在VS2010打开时显示当前版本不兼容
  4. ORACLE JOB间隔时间参考
  5. 如何使用预览在 Mac 上将 HEIC 文件更改为 JPEG
  6. PDF Expert mac使用教程:压缩pdf文件大小
  7. Mac 上删除用户或群组教程
  8. 高德正式开放海外LBS服务,助力开发者出海
  9. mysql零碎问题合集
  10. 中国域名商域名注册保有量28强:美橙互联夺回第八