
projectCase
BabyFish13
不要急,慢慢来;控制好节奏,奋斗到底!
展开
-
Python自动化拉取Mysql数据并装载到Hive
Mysql的数据表分为普通的表及以键值与256取模分表两种形式;流程顺序是先根据Mysql表结构进行Hive库上的建表,然后从Mysql下载到OS上,最后将数据装载到Hive库中。目前,暂不考虑数据的增量更新;主要考虑目前的数据环境较乱,可以较方便的将数据拉取到大数据平台,然后进行相关的计算。程序调用有并行和串行两种方式,是否用并行调度的那个脚本,取决于服务器的磁盘空间大小及源Mysql库原创 2017-03-21 17:41:02 · 2005 阅读 · 0 评论 -
Python自动化拉取Mysql数据并装载到Hive(V3.0)
相关参考:Python自动化拉取Mysql数据并装载到Hive(V2.0)-->http://blog.youkuaiyun.com/babyfish13/article/details/70792158Python自动化拉取Mysql数据并装载到Hive-->http://blog.youkuaiyun.com/babyfish13/article/details/73618331相较于之前的版本,该版原创 2017-06-29 11:58:04 · 2029 阅读 · 0 评论 -
Python自动化拉取Mysql数据并装载到Hive(V2.0)
上一版本:http://blog.youkuaiyun.com/babyfish13/article/details/70792158相较于之前的版本,主要作了两方面的优化:数据字符回车换行导致装载错误的问题修复及跑批调用参数等方面的优化。此版本,主要考虑了串行调度、全量加载,并行、增量装载将在下一个版本中优化。1、数据装载的表级参数配置文件/Users/nisj/PycharmProject原创 2017-06-23 11:53:37 · 1401 阅读 · 0 评论 -
用Python调度数据在Mysql及Hive间进行计算2例
1、经济商务数据的按周计算可以借鉴之处:当前当年第几周的获取;对应周的周一和周末的日期的获取;mysql文本数据的装载。/Users/nisj/PycharmProjects/BiDataProc/IdfaQuery/ouyjxQuery.py# -*- coding=utf-8 -*-import datetimeimport osimport warningsimpor原创 2017-08-25 10:22:53 · 1047 阅读 · 2 评论 -
用Python调度数据在Mysql及Hive间进行计算2例(续)-idfa与日志比对进行留存充值数据计算
在本例中,所有的函数,如取周的对应周一、周日日期,目标表建表等函数都在一个python脚本中了,没有进行比较系统的按不同文件存放。脚本要实现的功能是,根据所提供的idfa数据,计算其相应用户对应的uid在当周及接下来的三周的充值情况。/Users/nisj/PycharmProjects/BiDataProc/IdfaQuery/idfaQuery-Wangzq.py# -*- coding...原创 2017-09-25 09:30:30 · 501 阅读 · 0 评论 -
Python脚本进行用户信用评分体系计算的案例
项目的目的是根据各影响因子和权重计算出对应用户的信用分值。数据源涉及到库表(Hive&Mysql)的数据、打点的日志数据,数据分别在Hive及Mysql中装载及计算,相对有些复杂。可以借鉴的点:打点日志从oss上获取及日数数据的处理、装载;通过Python在mysql和Hive中进行数据的传输和计算;日期、月份、x天以前日期的获取;数据从hdfs上下载到本地;mysql关联原创 2017-09-25 19:36:25 · 3983 阅读 · 8 评论 -
Python脚本进行主播招募相关数据统计的案例
脚本中主要关注点:1、从不同源中取数据(两个mysql源及Hive源)2、两大List根据关键字进行左连接其实也可以先将match_apply表中数据取到之后先插入到目标表中,然后根据关键字uid再将Hive计算好的指标数据更新到目标表中;在这里是左连接之后再进行一次性插入;并没有考虑mysql多条记录插入的效率,有需要的话可以参考以往脚本进行完善。/Users/nisj/Pycharm...原创 2017-10-20 16:52:17 · 304 阅读 · 0 评论 -
Python脚本进行游戏专区拉新方面的计算案例
由于业务方需求不一致,所以有两个版本。1、业务方最终确定的版本目标表建表:drop table if exists gamezone_bringnew_anchor;CREATE TABLE gamezone_bringnew_anchor ( id int(11) AUTO_INCREMENT COMMENT '自增ID', calc_date date COMMENT '统计...原创 2017-10-13 17:00:05 · 446 阅读 · 0 评论 -
Python进行主播收入统计的脚本
关注点:1、指定日期上一月份的获取2、取两月份间的所有月份清单3、mysql小表数据在hive上的插入装载4、Hive汇总数据向mysql插入1、Hive临时表及mysql目标表的准备Hive临时表:drop table if exists xxx_anchor_bringnew_detail_min;CREATE TABLE xxx_anchor_bringne原创 2017-11-30 11:26:20 · 678 阅读 · 0 评论 -
用Python进行主播次日留存、留存粉丝周及月充值的计算示例
关注点:1、Hive临时表的使用2、Hive执行任务因为自动MapJoin而产生的内存不足情况的调优3、次日留存及周充值的装载和月充值的更新4、传统数据库ifnull功能Hive中coalesce函数的使用5、Mysql小表数据在hive上的装载python代码实现脚本:/Users/nisj/PycharmProjects/BiDataProc/Demand/hadoopStat/anc...原创 2019-09-07 10:00:17 · 1475 阅读 · 0 评论 -
主播游戏专区开播时段范围统计
需求描述:1、对应专区排名有20次及以上保持前20名记录的主播roomid、uid、昵称2、上述拉出的各个专区的主播,在2017-12-08至2018-01-08期间,如果同一个时段被覆盖40分钟超过20次以上,记录为该时段主播问题分析:需求的第一部分可以很方便的拉出,关键是第二部分比较麻烦。涉及到直播时间跨小时及跨天的处理;计算时段内的直播时长,有四个逻辑情况处理;针对跨天的原创 2018-01-11 14:49:21 · 1539 阅读 · 0 评论 -
[Python脚本定时选择性不重复执行示例]一文中主要Python代码的更新
原文链接:http://blog.youkuaiyun.com/babyfish13/article/details/79539697主要更新要点:1、业务规则的更改原先是在一起统一算;业务规则修改之后,是每一天的先算好然后再将多天的汇总。这样无形中,增加了系统的资源开销。2、新增了python中分组汇总部分from itertools import groupbyfrom operator import ...原创 2018-03-16 15:49:37 · 456 阅读 · 0 评论 -
Hive中连续多少天登录问题分析函数lead处理
1、需求描述时段:3月18日~3月24日人群:时段内注册判定为新增用户(新设备新ID&180天回归)的用户人群的如下数据:uid,注册日期,首次发生连续7日不登录的最后登录日期,首次发生7日连续不登录后的首次登录日期2、分析说明涉及到连续多少天登录问题,一般最先想到分析函数lead;然后根据计算出来的间隔天数,计算需求中的内容。分析函数在oracle中用到比较广泛和深入,但在Hive下各方...原创 2018-05-14 19:11:11 · 3568 阅读 · 0 评论 -
用Python进行经验值计算Hive中跑批
1、具体的脚本脚本分三部分:历史经验值的计算、日常经验值的计算与经验汇总计算与等级转换。/Users/nisj/PycharmProjects/BiDataProc/love/HiveRunData-wuyan-score.py# -*- coding=utf-8 -*-import osimport datetimeimport warningswarnings.filterwarni...原创 2018-06-06 09:19:32 · 664 阅读 · 0 评论 -
Python进行Hive处理后数据分别插入到不同的mysql表
数据插入及处理的方式其实并没有什么新花样,主要是hive处理后的数据表,相同的表,不同的字段插入到两个不同的mysql表中。/Users/nisj/PycharmProjects/BiDataProc/love/HiveDataSum2Mysql-0710forZw.py# -*- coding=utf-8 -*-import osimport reimport timeimport da...原创 2018-07-11 17:28:25 · 1162 阅读 · 0 评论 -
Hive数据跑批python一例
看点:月内周的起始结束日期获取;参数的行列转换1、目标表drop table if exists xxyl0703_data_detail;CREATE TABLE `xxyl0703_data_detail`( `uid` string, `first_amount` string, `first_pay_day` string, `first_pay_week_o...原创 2019-07-04 11:18:28 · 486 阅读 · 0 评论 -
Python自动化拉取Mysql数据并装载到Hive
程序调用有并行和串行两种方式,是否用并行调度的那个脚本,取决于服务器的磁盘空间大小及源Mysql库的性能。代码调用的时候(串并行),主要修改两方面:1、如果不存在数据源则在【ParProc.py】重新配置一个;2、在串并行调度的时候,传数据源配置名、表名、表类型参数给调度程序。本次更新修改,主要涉及数据的传参等更为合理一些;实际上,在进行数据传输的时候,还有一个Bug,就是数据传输的文本字原创 2017-04-26 11:36:25 · 1620 阅读 · 0 评论 -
Python将Mysql分表数据按小时增量装载到Hive示例
1、Hive建存储在阿里云OSS上的外部目标表hive> show create table oss_live_history_status;OKCREATE EXTERNAL TABLE `oss_live_history_status`( `id` bigint, `room_id` bigint, `name` string, `live_id` string,原创 2017-05-26 11:32:37 · 978 阅读 · 0 评论 -
Python自动化拉取Mysql数据并装载到Oracle
Mysql的数据表分为普通的表及以键值与256取模分表两种形式,暂时未处理源表是分表的情况;流程顺序是先根据Mysql表结构进行Oracle库上的建表,然后从Mysql将数据直接插入到Oracle数据库中。处理过程中,考虑到每行一提交的效率问题,所以默认设置了1000行提交一次的Oracle数据插入方式。目前,暂不考虑数据的增量更新;主要考虑目前的数据环境较乱,可以较方便的将适用于Orac原创 2017-04-07 16:26:15 · 2100 阅读 · 2 评论 -
Python将Hive汇总数据装载到Mysql
0、Hive里的临时表预计算此部分只是将功能在Hive里实现了,将结果存放在Hive表里;与后面的Python代码程序无关联性。--每个游戏各个房间按平均观看时长(观看总时长/房间内的总观看独立UID)前100名统计,以天为统计粒度drop table if exists xx_view_time_rank_byidentifier;create table xx_view_time_原创 2017-03-29 10:59:05 · 1628 阅读 · 0 评论 -
Python访问Mysql分表数据的方法示例
1、源表、目标表结构show create table user_profile_252;CREATE TABLE `user_profile_252` ( `uid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID', `nickname` varchar(45) CHARACTER SET utf8 NOT NULL COMMEN原创 2017-03-07 11:54:55 · 1380 阅读 · 2 评论 -
Python从阿里云Oss拉数据写入Hive表并进行相关处理
数据的流向是:先从Oss拉取原始日志文件数据,根据Hive分区表建表规范放在HDFS上;然后将数据根据不同的过滤条件分别插入到对应的其他中间表;由于空间有限,原始数据转移处理好之后,立马删除从Oss上拉取下来的日志数据;之后,再分别对各中间表数据利用Hive正则进行切分和提取,并根据需求进行汇总统计及tableau展现。1、Hive目标库建表drop table if exists xx_原创 2017-03-20 12:26:58 · 1745 阅读 · 0 评论 -
Python控制数据(留存及支付信息)按周进行跑批处理
三个版本,最老的版本将数据从Hive上取出来,然后用Python进行处理,现在看来这显然是不合适的,放着强大的Hadoop不用,而使用单机多线程;较老版本dict手工生成代码清单进行周的控制,且是从前往后计算,主要计算过程在hadoop上;新版本充分利用了Python的datetime函数等,根据时段,自动生成日期的列表,然后进行周的控制,从后往前计算,便于代码的利用,数据运算主要在Hadoop上原创 2017-01-05 18:45:18 · 1336 阅读 · 0 评论 -
大数据平台新加接口表(或接口表表结构变更)脚本更新及数据初始化
与大数据平台用于生成数据跑批脚本的脚本(version3.0)对应。1、目录路径[hs@master manual_proc]$ pwd/home/hs/opt/dw-etl/manual_proc[hs@master manual_proc]$ tree -f.├── ./cstab_str+data_update.sh├── ./manual_update_原创 2016-06-24 17:19:42 · 1506 阅读 · 0 评论 -
大数据平台用于生成数据跑批脚本的脚本(version3.0)
一、脚本文件路径[hs@master script_generate]$ pwd/home/hs/opt/dw-etl/script_generate [hs@master script_generate]$ tree -f.├── ./batch_table.list├── ./bigtable-create_allstage_suppertab_int_sc原创 2016-06-24 16:20:43 · 3067 阅读 · 0 评论 -
大数据平台用于生成数据跑批脚本的脚本(version2.0)
一、脚本文件路径[hs@master script_generate]$ pwd/home/hs/opt/dw-etl/script_generate[hs@master script_generate]$ tree -f.├── ./batch_table.list├── ./etl_table_list_update.sh├─原创 2016-06-01 15:46:29 · 17955 阅读 · 0 评论 -
生产系统数据实时同步到rds数据仓库的一个样例
1、环境说明生产系统数据库是阿里云mysql型rds数据库,目标数据仓库也是阿里云mysql型rds数据库。由于数据高效抽取的需要,生产系统表字段timeline定义为记录新增或更新的时间戳,并且此字段需要添加索引。2、存储数据抽取时间的表CREATE TABLE `real_time_maintenance` ( `id` int(11) DEFAULT NULL,原创 2016-04-14 20:23:07 · 3967 阅读 · 0 评论 -
日志数据文件Json字段数据入库处理
本文相当于是:【大数据环境平台日志日常跑批整理 http://blog.youkuaiyun.com/babyfish13/article/details/50974308】的后续整理。1、程序目录路径[hs@master json_col_proc]$ pwd/home/hs/opt/User_Behavior_Log/json_col_proc2、调用python的shell脚原创 2016-04-12 18:42:51 · 2369 阅读 · 0 评论 -
源系统表结构比对跟踪并进行邮件发送
在这里源系统均为mysql数据库,并将每日的表结构信息拉取到目标mysql数据库中;在目标mysql库中通过存储过程代码查询出两日内表结构之间的差异,并通过python脚本使用邮件将相关信息发送给相关人员。1、数据拉取、装载、mysqlsp运算及邮件发送调度的shell脚本路径:/home/hs/opt/dw-etl/tabsrc_strurecord/srctab_stru_pull.s原创 2016-04-01 07:05:56 · 2016 阅读 · 0 评论 -
大数据环境平台日志日常跑批整理
1、日志处理模块文件目录路径/home/spark/opt/User_Behavior_Log│ date.list│ db.py│ dbjson_proc.py│ dbjson_proc_commit_optimalize.py│ json2file.py│ log_batch.sh│ ublog2hive+mysql.sh│ ublog2hi原创 2016-03-24 19:19:15 · 1871 阅读 · 0 评论 -
大数据平台用于生成数据跑批脚本的脚本
1、脚本的目录结构/home/hs/opt/dw-etl/script_generate│ exec_hivessa_create_tab.sh│ exec_rdsssa_create_tab.sh│ rds-increment_tab_should_create_idx_sql.sh│ ssa-create_hive2mysql_increment_int_scrip原创 2016-03-24 14:58:23 · 18613 阅读 · 1 评论 -
Python计算支付留存信息示例
1、目标表结构准备1.1、Hive库目标表hive> show create table xx_paynewuserflag_bymonth;OKCREATE TABLE `xx_paynewuserflag_bymonth`( `uid` string, `isnew_flag` int)PARTITIONED BY ( `pt_month` string)ROW原创 2017-03-24 17:08:37 · 1122 阅读 · 0 评论 -
Python根据AccessLog统计对应Url的点击量2
要实现的需求,跟【Python根据AccessLog统计对应Url的点击量-->http://blog.youkuaiyun.com/babyfish13/article/details/70304308】一文中所描述的需求相同,只是方法各异。前文中是纯shell(cat、grep、wc等)+Python总控调度,采用多线程汇总统计Hdsf中的数据文件;本文是通过先将Hdfs中的文件按照规则拷贝至新目录,原创 2017-04-28 17:06:45 · 1373 阅读 · 0 评论 -
Python根据AccessLog统计对应Url的点击量
1、场景说明AccessLog已经从阿里Oss上拉取到Hdfs上了,数据是按机器名、日期、小时存放的。每天有上千个文件,500G左右的大小。单个文件命名如下所示:/tmp/oss_access/2017-04-16/sz-98-72_localhost_access_log.2017-04-16.08.txt/tmp/oss_access/2017-04-16/sz-jf-serve原创 2017-04-20 20:53:06 · 882 阅读 · 0 评论 -
Hive汇总统计数据自动化传输到Mysql数据库
之前[Python将Hive汇总数据装载到Mysql]-->http://blog.youkuaiyun.com/babyfish13/article/details/68061213,针对具体情况,而不能工具化使用,本文则解决了工具化使用的问题。本代码实现了Hive数据汇总之后,直接在Mysql上建表并进行数据传输。其中,主要传输的参数有:mysqlConfig, srcSelectText, targ原创 2017-05-24 19:40:09 · 1281 阅读 · 0 评论 -
Hive数据跑批python一例
1、目标表drop table if exists xxyl0628_result;CREATE TABLE `xxyl0628_result`( `rn` string, `game_name` string, `active_anchor_cnt` string, `active_uid_cnt` string, `view_time` string, ...原创 2019-07-02 16:53:19 · 428 阅读 · 0 评论