大数据基本概念
大数据工程师工作内容取决于你工作在数据流的哪一个环节。
从数据上游到数据下游,大致可以分为:
数据采集 -> 数据清洗 -> 数据存储 -> 数据分析统计 -> 数据可视化 等几个方面
工作内容当然就是使用工具组件(Spark、Flume、Kafka等)或者代码(Java、Scala等)来实现上面几个方面的功能。
具体说说吧,
数据采集:
业务系统的埋点代码时刻会产生一些分散的原始日志,可以用Flume监控接收这些分散的日志,实现分散日志的聚合,即采集。
数据清洗:
原始的日志,数据是千奇百怪的
- 一些字段可能会有异常取值,即脏数据。为了保证数据下游的"数据分析统计"能拿到比较高质量的数据,需要对这些记录进行过滤或者字段数据回填。
- 一些日志的字段信息可能是多余的,下游不需要使用到这些字段做分析,同时也为了节省存储开销,需要删除这些多余的字段信息。
- 一些日志的字段信息可能包含用户敏感信息,需要做脱敏处理。如用户姓名只保留姓,名字用'*'字符替换。
数据存储:
清洗后的数据可以落地入到数据仓库(Hive),供下游做离线分析。如果下游的"数据分析统计"对实时性要求比较高,则可以把日志记录入到kafka。
数据分析统计:
数据分析是数据流的下游,消费来自上游的数据。其实就是从日志记录里头统计出各种各样的报表数据,简单的报表统计可以用sql在kylin或者hive统计,复杂的报表就需要在代码层面用Spark、Storm做统计分析。一些公司好像会有个叫BI的岗位是专门做这一块的。
数据可视化:
用数据表格、数据图等直观的形式展示上游"数据分析统计"的数据。一般公司的某些决策会参考这些图表里头的数据~
当然,大数据平台(如CDH、FusionInsight等)搭建与维护,也可能是大数据工程师工作内容的一部分喔~