• 【数仓】大数据开发全流程 - 实习总结


      工作了快一个月了,今天简单说一下大数据开发的整个流程。假设就以自己这个公众号为例,这样不会抽象,比较直观。

    1.数据源

    前端会对用户行为进行埋点,并上报后端服务器。埋点会记录一些信息,比如:

    • 用户 id:标记一个用户,后面可以根据这个算一段时间的 UV(独立访客),也就是 selecct count(distinct uid) from table_name where date >= t1 and date <= t2,比如我的公众号阅读人数就是 UV,次数是 PV。

    在这里插入图片描述

    • 渠道来源、用户入口等信息:记录来源可以分析各个渠道的用户数或阅读数,可能广告比较关注,比如别人付费了,想要知道我付费之后从这个付费渠道来源有多少人,比如我在墨迹天气投了广告,用户点击跳转到淘宝的宝贝,这个来源也是会记录的。或者我写公众号,在别的地方贴了二维码,多少人是扫码关注的?又有多少人是通过别人分享关注的?

    在这里插入图片描述

    上面只是简单举例,前端埋点的字段还有很多。

    这里可以看大数据之路对应的章节。

    日志采集

    2.ods 层

    刚刚提到的埋点日志数据,以及数据库中的业务数据到 Hive 中成为 ods 层。即:

    • MySQL → ods
    • 日志 → ods

    用到的同步技术很多,这里可以看大数据之路对应的章节。

    数据同步

    3.公共层

    公共层一般是可以复用的指标,构建 dwd 和 dws 层。存一些各种用户都需要用到的明细指标和聚合指标。

    用到的技术主要是 Hive 和 Spark SQL。可以看大数据之路对应的章节。

    4.应用层

    应用层主要是 dm、app 层,这里的表格主要存不同用户关心的数据不同,是一些不太通用的个性化指标。数据的用户可能是公司的分析师,分析公司的经营状况。也可能是客户,比如我上面截图的微信公众号后台,就是给用户看的。

    5.OLAP

    刚刚说了应用层的数据主要是客户关心的数据,聚合了一些最近 7 天、最近 30 天的数据。但是 Hive 表查询很慢,用户从前端页面请求取数,请求发到后端,后端是不会直接到 Hive 表中查询的,这样太慢了。说以 Hive 产出的 app 层数据会推送到 Elasticsearch 中,后端去查 ES,直接从 ES 中拿到数据计算的结果,这样速度会很快。这里可以看 ES 的文章。

    还有一种情况,用户选择的不是直接计算好的结果,比如最近 7 天或最近 30 天,而是自定义时间区间,如下图所示。显然,每一个时间组合计算出一张表数据量太大,是不可承受的。这样就要用到即席查询。用户选择了时间再去计算,所以点击下面的自定义会比较卡,过了几秒钟才出现结果。这里就需要即席查询,可能是 ClickHouse 等工具。

    在这里插入图片描述

    当然不止 Elasticsearch 和 ClickHouse,还有其他如 Kylin、presto、Impala 等工具。后面将进行学习。

    以上就是大数据开发的全流程。再次推荐大家阅读阿里的《大数据之路》。关注下方公众号回复 802 获取 pdf。
    《大数据之路》

  • 相关阅读:
    关闭windows防火墙命令
    使用人工神经网络训练手写数字识别模型
    [C++随想录] 二叉搜索树
    人工智能知识全面讲解:感知机原理
    【Qt】【Audio】-音频播放时-定时器和线程问题-QThread和QTimer
    SqlServer函数,存储过程的创建和使用
    嵌入式Linux应用开发基础知识(七)——通用Makefile使用
    it运维监控主要做什么
    艾美捷C1q天然蛋白化学性质和相关研究方案
    如何为你的项目选择LoRa模块?
  • 原文地址:https://blog.csdn.net/weixin_45545090/article/details/124954787