【数仓】大数据开发全流程 - 实习总结
1.数据源
前端会对用户行为进行埋点,并上报后端服务器。埋点会记录一些信息,比如:
上面只是简单举例,前端埋点的字段还有很多。
这里可以看大数据之路对应的章节。
2.ods 层
刚刚提到的埋点日志数据,以及数据库中的业务数据到 Hive 中成为 ods 层。即:
-
MySQL → ods 日志 → ods
用到的同步技术很多,这里可以看大数据之路对应的章节。
3.公共层
公共层一般是可以复用的指标,构建 dwd 和 dws 层。存一些各种用户都需要用到的明细指标和聚合指标。
用到的技术主要是 Hive 和 Spark SQL。可以看大数据之路对应的章节。
4.应用层
5.OLAP
刚刚说了应用层的数据主要是客户关心的数据,聚合了一些最近 7 天、最近 30 天的数据。但是 Hive 表查询很慢,用户从前端页面请求取数,请求发到后端,后端是不会直接到 Hive 表中查询的,这样太慢了。说以 Hive 产出的 app 层数据会推送到 Elasticsearch 中,后端去查 ES,直接从 ES 中拿到数据计算的结果,这样速度会很快。这里可以看 ES 的文章。
还有一种情况,用户选择的不是直接计算好的结果,比如最近 7 天或最近 30 天,而是自定义时间区间,如下图所示。显然,每一个时间组合计算出一张表数据量太大,是不可承受的。这样就要用到即席查询。用户选择了时间再去计算,所以点击下面的自定义会比较卡,过了几秒钟才出现结果。这里就需要即席查询,可能是 ClickHouse 等工具。
当然不止 Elasticsearch 和 ClickHouse,还有其他如 Kylin、presto、Impala 等工具。后面将进行学习。
