尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

DataWarehouse实战:如何建设实时数仓?从建设目的到场景选型的完整方案

DataWarehouse实战:如何建设实时数仓?从建设目的到场景选型的完整方案 DataWarehouse实战如何建设实时数仓从建设目的到场景选型的完整方案【免费下载链接】DataWarehouse从数据仓库到用户画像从数据建设到数据应用项目地址: https://gitcode.com/gh_mirrors/da/DataWarehouseDataWarehouse从数据仓库到用户画像的学习资料库系统总结了实时数仓的完整建设方法论实时数仓的建设目的、四大应用场景、整体架构设计、分层策略、存储选型与数据质量验证。本文将带你避开常见陷阱从 0 到 1 理解如何快速建设一套可用的实时数仓。 实时数仓的建设目的只为解决时效性问题实时数仓不是要替代离线数仓而是解决传统数据仓库数据时效性无法覆盖的问题。在立项之前先明确两条原则原则说明离线能解决的实时不解决比如上个月的历史统计不需要用实时数仓建设数仓本身不适合的实时也不解决业务性很强的需求、或对时效性要求极高的需求不建议走数仓路线数据保留策略离线数仓保存历史累积数据而实时数仓只保留上一次批处理到当前的数据。实践中通常保留约 3 天的数据保证批处理还没处理完昨天数据的间隙依然能提供完整的数据服务。 实时数仓的四大应用场景实时数仓最适合支撑以下四类业务场景实时 OLAP 分析把数仓的时效性能力提升原有 OLAP 分析工具几乎不用改造就能分析实时数据实时数据看板例如双 11 实时大屏滚动展示核心数据支撑市场人员与领导层决策实时特征通过汇总指标运算给用户打上特征标记如多次购买判定为优质用户支撑实时精准推广实时业务监控对核心业务指标实时监控线上故障导致指标下降时尽早发现、减少损失。️ 实时数仓整体架构Lambda 分层模型实时数仓的数据架构与离线数仓非常相似同样有 ODS 层、明细层、汇总层、应用层整体遵循 Lambda 架构的思路数据链路为数据源业务库/日志→ 消息队列Kafka→ ODS 层 → DWD 层 → OLAP 数据应用。 离线数仓到实时数仓的概念映射理解实时数仓最快的方式是把离线数仓的每个概念翻译成实时版的对应物层面离线数仓实时数仓编程方式Hive SQL UDFSpark SQL / Flink SQL UDF作业执行MapReduce / Spark Job持续运行的 Spark Streaming / Flink 作业数仓对象Hive 表Stream Table流表物理存储HDFS大数据量存 Kudu小数据量存 Kafka 分层设计层次越少越好实时数仓与离线数仓最大的区别是层次更少原因有二每多一层延迟必然增加实时数据每经过一层计算都会产生额外延迟汇总层要尽量少建最好不超过两层为了保证数据准确汇总往往要人为等待数据到齐比如等到 10:00:05 再统计 10:00 前的数据层次越多这种人为延迟叠加越严重。另外实时数仓的应用层其实已经不在仓库内部——APP 层的应用表本质上已经同步到了应用系统的数据库里。 物理存储如何选型实时数仓的一个特点是同一份数仓不同层可以用不同的存储方式。明细 / 汇总数据数据量大存Kudu兼顾高吞吐与低延迟支持 update/delete数据量小的中间数据用Kafka这类消息队列维度数据存HBase这类 KV 存储。Kudu 专为快速变化的数据被快速分析的场景设计数据到达后马上可被终端用户访问是实时数仓物理层的高频选择详见 docs/kudu.md。✅ ODS 层建设三大要点ODS 层是实时数仓的地基主流实时数据源是Kafka数据来源以binlog、SDK 数据、埋点日志为主。建设时有三点必须强调数据源尽可能统一实时数据源自身要统一交易数据要么从 binlog 接要么从 SDK 发不能两边都发实时与离线要统一计算逻辑和数据来源完全一致避免使用方对数据产生误解。用分区保证数据局部有序同一实体的数据可能因乱序导致后发生的状态先被消费利用 Kafka 分区局部有序的机制即可解决。流式写 HDFS 的小文件问题微批次处理会不断产生小文件必须有程序异步合并小文件并移动到表中注意避开正在写入的文件否则会导致实时任务失败。 DWD 层模型规范化与数据漂移DWD 层负责消除原始数据的噪声和不规范形成统一的数据源。为什么实时数仓特别强调模型规范化因为实时作业是24 小时运行的离线数仓改了上游表一天内把下游改完即可而实时数仓只要改了上游表结构下游作业必须能正确解析上游数据才能变更。再加上 Kafka 本身无元数据概念事后治理的代价非常大——务必在建设之初就把命名、类型等规范落地。数据漂移怎么处理由于小文件按物理时间异步合并昨天临近 24 点的业务数据可能漂到今天。解决方式在 DWD 层解析逻辑上扩大分区范围按业务时间过滤即可把漂移数据排除。 数据质量验证用离线数据持续验证实时数据实时数仓上线初期数据到底准不准人工每天去查库对数太累且耗时。更优方案是将实时中间层的表写入 Hive利用离线数据丰富的质量验证工具持续对比离线 vs 实时同一模型的数据差异再根据设定的阈值进行监控报警。该方案虽不能秒级发现问题但能帮助你在上线前了解实时模型的准确程度并通过任务改造不断提高准确率——同时它还能反向检验离线数据的准确性。 建设清单上手前过一遍确认场景属于离线时效性满足不了的问题看板 / 实时 OLAP / 实时特征 / 业务监控实时与离线的数据来源、计算逻辑保持完全一致分层做减法汇总层不超过两层物理存储分层选型大数据量 Kudu、小数据量 Kafka、维度 HBase模型命名与类型规范在建设之初落地部署小文件异步合并 数据漂移过滤逻辑建立离线验证实时的质量报警闭环⚠️ 最后提醒数仓建设的成败最终取决于业务是否买账。选型前建议先阅读 docs/数仓建设的十大陷阱.md避免过度迷恋技术、忘了业务目标这个最常见陷阱。 延伸阅读实时数仓完整笔记docs/实时数仓.mdOLAP 引擎分类与选型MOLAP/ROLAP/HOLAPdocs/olap.mdKudu 存储引擎深入docs/kudu.md维度建模基础docs/数据模型.mdPresto、Impala 与 Hive 对比docs/presto_impala_hive.md【免费下载链接】DataWarehouse从数据仓库到用户画像从数据建设到数据应用项目地址: https://gitcode.com/gh_mirrors/da/DataWarehouse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表