四 项目开发

1 创建数据库db_etl,新建两张表user 和oder。表结构如第一部分图所示。

2 编写python脚本,实现自动向mysql中插入数据。

新建python 项目,目录结构如下图

编写代码如下:

# _*_ coding:UTF- _*_
'''
Created on 2016年12月1日 @author: duking
'''
import MySQLdb
import random,string
import time
import threading
'''
数据库连接
'''
def ConnMysql():
#连接数据库
conn = MySQLdb.connect(host = "192.168.0.154", user = 'root', passwd = '', db = 'db_etl', charset = 'utf8')
cursor = conn.cursor()
return conn,cursor '''
插入user数据
'''
def AddUserInfo(username,passwd): conn,cursor = ConnMysql() sql = "insert into userinfo(username,passwd) values(%s,%s)" param = (username,passwd) cursor.execute(sql,param) conn.commit()
cursor.close()
conn.close() '''
插入order数据
'''
def AddOderInfo(warename,price): conn,cursor = ConnMysql() sql = "insert into oderinfo(warename,price) values(%s,%s)" param = (warename,price) cursor.execute(sql,param) conn.commit()
cursor.close()
conn.close() '''
随机产生字符串
'''
def Random_Str(randomlength):
a = list(string.ascii_letters)
random.shuffle(a)
return ''.join(a[:randomlength]) #随机生成订单信息
def MakeOderInfo(threadname):
while(True):
#随机10~100秒生成一条Oder信息
time.sleep(random.randint(,))
AddOderInfo(Random_Str(random.randint(,)),float(round(random.uniform(,),)))
print threadname + ':a new OderInfo is Maked ' + time.ctime(time.time()) #随机生成用户信息
def MakeUserInfo(threadname):
while(True):
time.sleep(random.randint(,))
AddUserInfo(Random_Str(random.randint(,)),Random_Str(random.randint(,)))
print threadname + ':a new UserInfo is Maked ' +time.ctime(time.time()) #python 模块的入口:main函数
if __name__ == '__main__': #多线程
thread_1 = threading.Thread(target=MakeOderInfo,args=('thread_1', ))
thread_2 = threading.Thread(target=MakeUserInfo,args=('thread_2', )) #启动线程
thread_1.start()
thread_2.start()

注意:python调用mysql需要引入MySQLdb模块,改模块的安装请看另外的教程

最后,将写好的python在linux中运行。

运行后查看数据库就可以看见数据在不断的增长了。

hadoop项目实战--ETL--(二)实现自动向mysql中添加数据的更多相关文章

  1. Hadoop项目实战-用户行为分析之应用概述(二)

    1.概述 本课程的视频教程地址:<项目整体概述> 本节给大家分享的主题如下图所示: 下面我开始为大家分享第二节的内容——<项目整体概述>,下面开始今天的分享内容. 2.内容 从 ...

  2. 【慕课网实战】Spark Streaming实时流处理项目实战笔记二十一之铭文升级版

    铭文一级: DataV功能说明1)点击量分省排名/运营商访问占比 Spark SQL项目实战课程: 通过IP就能解析到省份.城市.运营商 2)浏览器访问占比/操作系统占比 Hadoop项目:userA ...

  3. Hadoop项目实战-用户行为分析之应用概述(三)

    1.概述 本课程的视频教程地址:<项目工程准备> 本节给大家分享的主题如下图所示: 下面我开始为大家分享今天的第三节的内容——<项目工程准备>,接下来开始分享今天的内容. 2. ...

  4. Hadoop项目实战-用户行为分析之应用概述(一)

    1.概述 本课程的视频教程地址:<Hadoop 回顾> 好的,下面就开始本篇教程的内容分享,本篇教程我为大家介绍我们要做一个什么样的Hadoop项目,并且对Hadoop项目的基本特点和其中 ...

  5. Selenium Web 自动化 - 项目实战(二)

    Selenium Web 自动化 - 项目实战(二) 2016-08-08 什么是数据驱动?简答的理解就是测试数据决定了测试结果,这就是所谓数据驱动.数据驱动包含了数据,他就是测试数据,在自动化领域里 ...

  6. (转载)Android项目实战(二十七):数据交互(信息编辑)填写总结

    Android项目实战(二十七):数据交互(信息编辑)填写总结   前言: 项目中必定用到的数据填写需求.比如修改用户名的文字编辑对话框,修改生日的日期选择对话框等等.现总结一下,方便以后使用. 注: ...

  7. (转载)Android项目实战(二十八):Zxing二维码实现及优化

    Android项目实战(二十八):Zxing二维码实现及优化   前言: 多年之前接触过zxing实现二维码,没想到今日项目中再此使用竟然使用的还是zxing,百度之,竟是如此牛的玩意. 当然,项目中 ...

  8. (转载)Android项目实战(二十八):使用Zxing实现二维码及优化实例

    Android项目实战(二十八):使用Zxing实现二维码及优化实例 作者:听着music睡 字体:[增加 减小] 类型:转载 时间:2016-11-21我要评论 这篇文章主要介绍了Android项目 ...

  9. ligerui_实际项目_003:form中添加数据,表格(grid)里面显示,最后将表格(grid)里的数据提交到servlet

    实现效果: "Form"中填写数据,向本页"Grid"中添加数据,转换成Json数据提交,计算总和,Grid文本框可编辑,排序 图片效果: 总结: //disp ...

随机推荐

  1. the age of the TCP connection TCP Slow Start

    w防止网络过载和拥塞 HTTP The Definitive Guide The performance of TCP data transfer also depends on the age of ...

  2. [LeetCode] 9.Palindrome Number - Swift

    Determine whether an integer is a palindrome. Do this without extra space. 题目意思:判断一个整数是否是回文数 例如:1232 ...

  3. 出现unmapped spring configuration files found

    intell idea启动出现unmapped spring configuration files found提示. 把spring里面的内容都打勾.

  4. MetaClass

    它的作用主要是 指定由谁来创建类,默认是type #python3 class Foo(metaclass=MyType): pass #python2 class Foo(object): __me ...

  5. Android实现按两次back键退出应用

    重写onKeyDown()方法 System.currentTimeMillis():该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0 ...

  6. 【我的Android进阶之旅】Android 混淆文件资源分类整理

    之前将所有的混淆都配置在一个 proguard-rules.pro 这个Android Studio新建项目时自动生成的文件里面,而随着项目功能迭代越来越多,代码量越来越多,引用的第二方库.第三方库都 ...

  7. POJ 3171

    题目大意:        给定一个区间范围[M,E],接下来有n行输入.每行输入三个数值:T1,T2,S,表示覆盖区间[T1,T2] 的代价为S,要求你求出覆盖区间[M,E]的最小代价,假设不能覆盖, ...

  8. Yarn架构

    jobtracker存在单点故障问题 jobtracker只支持mapreduce,计算框架不具有可扩展性 jobtracker是性能瓶颈 yarn可以整合不同的计算框架,提高资源利用率 yarn的基 ...

  9. 2、css

    web 前端2 CSS   CSS CSS是Cascading Style Sheets的简称,中文称为层叠样式表,用来控制网页数据的表现,可以使网页的表现与数据内容分离. 一 css的四种引入方式 ...

  10. Element 中表单非必填数据项 必须为数字的验证问题

    Element-ui 的el-form组建中,自带基本的验证功能,比如某些项必填的验证,直接加入rules 规则中即可,如下实例: 在页面中书写如下: <el-form-item label=& ...