发布时间:2023-11-20 09:00
工作了快一个月了,今天简单说一下大数据开发的整个流程。假设就以自己这个公众号为例,这样不会抽象,比较直观。
前端会对用户行为进行埋点,并上报后端服务器。埋点会记录一些信息,比如:
selecct count(distinct uid) from table_name where date >= t1 and date <= t2
,比如我的公众号阅读人数就是 UV,次数是 PV。上面只是简单举例,前端埋点的字段还有很多。
这里可以看大数据之路对应的章节。
日志采集
刚刚提到的埋点日志数据,以及数据库中的业务数据到 Hive 中成为 ods 层。即:
用到的同步技术很多,这里可以看大数据之路对应的章节。
数据同步
公共层一般是可以复用的指标,构建 dwd 和 dws 层。存一些各种用户都需要用到的明细指标和聚合指标。
用到的技术主要是 Hive 和 Spark SQL。可以看大数据之路对应的章节。
应用层主要是 dm、app 层,这里的表格主要存不同用户关心的数据不同,是一些不太通用的个性化指标。数据的用户可能是公司的分析师,分析公司的经营状况。也可能是客户,比如我上面截图的微信公众号后台,就是给用户看的。
刚刚说了应用层的数据主要是客户关心的数据,聚合了一些最近 7 天、最近 30 天的数据。但是 Hive 表查询很慢,用户从前端页面请求取数,请求发到后端,后端是不会直接到 Hive 表中查询的,这样太慢了。说以 Hive 产出的 app 层数据会推送到 Elasticsearch 中,后端去查 ES,直接从 ES 中拿到数据计算的结果,这样速度会很快。这里可以看 ES 的文章。
还有一种情况,用户选择的不是直接计算好的结果,比如最近 7 天或最近 30 天,而是自定义时间区间,如下图所示。显然,每一个时间组合计算出一张表数据量太大,是不可承受的。这样就要用到即席查询。用户选择了时间再去计算,所以点击下面的自定义会比较卡,过了几秒钟才出现结果。这里就需要即席查询,可能是 ClickHouse 等工具。
当然不止 Elasticsearch 和 ClickHouse,还有其他如 Kylin、presto、Impala 等工具。后面将进行学习。
以上就是大数据开发的全流程。再次推荐大家阅读阿里的《大数据之路》。关注下方公众号回复 802 获取 pdf。
《大数据之路》