在一个有138MB的csv文件(580万行数据)里统计每天每家公司的利润等等信息。。。。。
用mysql多半会爆掉,mysql一张表最多可处理的数据量为 千万 级的(每秒数据库并发量在几千,也就是说可以同时支持最多一千个人在线)
只能用”大数据“的力量,hadoop+hive+sqoop ,hadoop将本地csv文件导入集群,然后用hive跑mr任务,最后sqoop把元数据导入mysql。
需求:
样表(sales_sample_20170310)字段说明:
day_id 日期编号;
sale_nbr 卖出方代码;
buy_nbr 买入方代码;
cnt 数量
round 金额
字段说明
day_id,sale_nbr,buy_nbr,cnt,round
日期编号,卖出方代码,买入方代码,数量,金额
卖出方和买入方又分为3种类型:
以'C'开头的表示类型为C,代表“航空公司”,只可以卖出,不可以买入;
以'O'开头的表示类型为O,代表“代理人”,既可以卖出,也可以买入,并且允许自己卖给自己(简单来讲:每个“代理人”代码可能对应多个售票点,售票点之前有交换票的情况,所以体现为自己卖给了自己);
'PAX'表示类型为PAX,代表“旅客”,只可以买入,不可以卖出。
(1)统计每天各个机场的销售数量和销售金额。
要求的输出字段
day_id,sale_nbr,,cnt,round
日期编号,卖出方代码,数量,金额
(2)统计每天各个代理商的销售数量和销售金额。
要求的输出字段
day_id,sale_nbr,,cnt,round
日期编号,卖出方代码,数量,金额
(3)统计每天各个代理商的销售活跃度。
要求的输出字段
day_id,sale_nbr, sale_number
日期编号,卖出方代码,交易次数(买入或者卖出均算交易次数)
(4)汇总统计10月1日到10月15日之间各个代理商的销售利润。
编号,卖出方代码,买入数量,买入金额,卖出数量,卖出金额,销售利润(卖出金额-买入金额)
(5)设计分析代理商的市场地位根据市场交易次数、交易对象个数、销售机票数量、销售利润等。
要求将上述结果数据保存到mysql数据库中
相关数据量:
-
原始数据量:
-
执行查询
select day_id,sale_nbr,count(cnt),count(round) from test0 where sale_nbr like 'C%' group by day_id, sale_nbr; select day_id,sale_nbr,count(cnt),count(round) from test0 where sale_nbr like 'O%' group by day_id, sale_nbr;
导入到mysql:
标签:nbr,sale,hive,day,使用,卖出,id,round From: https://www.cnblogs.com/zhuangzhongxu/p/16768555.html