晶羽科技-解读点评影视小说作品

微信
手机版

离线模拟炒股(初学者模拟炒股软件)

2021-12-28 02:02 作者:股市韭菜团 围观:

大数据的价值之一就是数据可视化。

大数据(bigdata),看着挺高大上的,其实就是数据量大了,想从中发现商业规律,找到商业价值。从事三年多大数据开发和数据分析工程师,说说平时工作做的数据可视化的事吧。

大数据项目,ETL离线数据,日志分析系统

话说那天风和日丽,某个人突发奇想,创建了个公司,公司成立以后发展不错,拿到了融资。业务越来越大、用户越来越多,产生的数据越来越多。后来美国有个数据科学家说,同志们,数据很重要,数据是21世纪的石油,谁能提前利用、挖掘了数据,谁就能挣钱,就这样红果果、赤裸裸的诱惑你,一夜之间,大数据的概念产生了。

初期,说到大数据,大家首先想到这家公司体量大,发展不错。因为,体量小的公司Excel报表数据分析就可以完美解决问题,能给决策层提供直观的数据支撑。比如,季度销售数据,年度营业数据等等。随着互联网的发展,公司越做越大,数据越来越多,传统Excel、Mysql这些数据分析系统完全hold不住了,新技术应运而生。越来越多的数据分析系统和数据处理软件被开发出来,这些技术全部都是为了公司盈利而发展出来的。不以提升性能、给公司创盈利为目的的技术,肯定不是好技术。

大数据项目,ETL离线数据,日志分析系统

做一个日志处理系统

现在ETL依然是很多公司的选择,当然不必要写代码,可以使用sqoop和kettle工具对数据进行清晰。不过很多情况下,还是需要使用mapredcue和spark做数据处理的,这样B格更高。大数据刚发展之初,是mapreduce的天下,mapreduce非常适合做离线数据分析。后来spark得到发展,越来越多的程序员同学,喜欢使用spark开发。一是内存计算快,二是代码量少,当然还有其他很多因素,具体就不多说了。

//spark版的wordcount,核心代码val sc = new SparkContext(new SparkConf().setAppName("").setMaster(""))sc.textFile("").flatMap(_.split("\t")).map((_,1)).reduceByKey(_+_)

就这么简简单单的几行代码就能实现wordcount单词统计,使用mapreduce需要写一堆代码。有兴趣的可以看下,mapreduce版本的wordcount。下面就让我们来看看mapredcue版的ETL,处理日志系统,这也是我毕业以后转做大数据开发做的第一个项目。

大数据项目,ETL离线数据,日志分析系统

使用mapreduce处理日志数据

那天,我正在工位上悠闲地喝着咖啡,产品经理走到我身边,拍拍我肩膀说:“男神,我们要做个产品,分析日志的产品,走去会议室唠唠嗑”。我一惊,公司果然不会让咱闲着,昨天刚搞完上个项目,现在又来新的需求、新项目了。说走咱就走,我随手拿起了身边的板砖,产品经理惊恐的看着我:“你你你...,你想干嘛”?

从会议室里出来,说干就干,定了需求,咱就撸起袖子加油干。

话说某天一个用户通过web访问我们网站产生了日志,运营部门的男神、女神们要分析用户的行为数据,提前埋点,后端工程师哥哥设置了字段属性,用这些字段分析用户的行为。跟后端开发哥哥们对完数据需求,着手开发。

大数据项目,ETL离线数据,日志分析系统

完整链路的ETL日志处理系统

通过nginx服务器,使用flume收集了一批又一批的日志数据,把这些数据放到HFDS(分布式文件系统)上。

一旁的实习生小王很是不解:“哥,为啥放到HDFS上,不直接存Hive表里”。我意味深长的说:“少年对原始数据备份处理是很必要的。”

存HDFS的同时,建了一张Hive分区表,以天作为分区,分区表放每日产生的日志数据。

如果直接把这些数据给运营人员和老板看,估计第二天办公室里会传来“小明啊,我看你最近表现不错,去财务那里结了工资,明天就别来了。”

为了让数据更直观,运营人员能方面的分析不同维度的日志数据。我使用mapreduce对日志数据进行处理,通宵加班加点搞定,用手抚了抚锃亮的脑门,头猛地一甩,头屑乱飞,发出一阵得意的笑声:“搞定。”

数据清洗完毕,把清洗处理完成有一定格式的日志数据,存入Hive分区表中。Hive是个很强大的数据库,数据存在分布式文件系统HDFS上面,非常适合做数据的离线分析。做数据分析Hive是不二的选择,使用类SQL的HQL语言,会SQL就会用Hive,方便数据分析人员使用的数据库。

第二天早上,运营小姐姐刚到公司,就要看昨天官网日志PV和UV等各维度的指标情况,我噼里啪啦一阵敲,小姐姐满眼小星星的看着,我心里那个美啊!报表页面,半天没数据出来。

纳尼?我用手一拍额头,Hive底层走的mapreduce,直接查hive库那效率真不敢恭维,尤其涉及到复杂HQL语句的时候。暗骂一声,还数据开发分析老鸟呢,阴沟翻船。我对运营小姐姐说:“女神,等会,马上就好。”

我又噼里啪啦一阵敲,把Hive数据库中的数据,根据不用业务维度查询出来以后同步到Oracle数据库,对接上报表系统,完美解决查询太慢的问题,数据分析完成。

一个完整的ETL项目就算完成了,事情总算告一段落。

后来,为了方便运营人员和老板更直观的点点报表系统,看不同维度的运营数据,又对报表系统进行开发,可以让不会SQL的他们,选择不同维度的属性就能出来不一样的结果。

大数据项目,ETL离线数据,日志分析系统

后续

本来打算进一步优化项目,搞得更智能化、效率更高。对有些不合理的地方进行优化,但是公司流计算实时处理系统项目开启了,领导让叫我把后续事情交给实习生来做。后面一门心思在做爬虫和实时系统,就没负责离线数据处理项目了。

日志处理系统,是一个很简单的系统。这是我刚毕业就开始接触的一个系统,当时会的技术不多,考虑的不全,就按照上面程序来做的。之后,使用Oozie替代了LInux自带的Crontab定时调度。定时让mapredcue每天凌晨以后跑任务,设置了任务失败重启检测系统,错误日志分析系统等等。

总结,对大数据来说,数据分析是很重要的一环。通过开发人员,把一串复杂的、抽象化的日志数据,经过清晰处理,最后统计形成直观的报表,展示给运营和决策部门,公司领导层可以根据这些数据决定今后运营的方向。

相关文章