离线数仓建设,企业大数据的业务驱动与技术实现丨 03 期直播回顾
原文链接:离线数仓建设,企业大数据的业务驱动与技术实现丨03期直播回顾
视频回顾:点击这里
课件获取:点击这里
一、离线数仓建设背景
离线数据是相对实时数据而言的数据产出,不同于实时数据,离线数据一般是 T+1 天处理,也就是说昨天产生的数据至少要今天才能看到计算结果。离线数据一般应用于对数据时效要求不高,需要基于一段时间的历史数据计算才能得到结果的场景,我们大致可以分为离线数据分析及数据应用两类,离线数据计算具备:数据准确度高、吞吐量大、计算成本低等特点。
离线数据应用的场景非常广泛,企业的数据迎来了爆发式的增长,目前企业数据规模巨大、数据类型多样、生成及处理速度极快、数据价值巨大但密度却较低,这些数据增长的场景,带来的是是我们传统的一些数据基础设施建设暴露出来的缺陷,比如自建数仓投入高、周期长、无法弹性扩缩容导致资金和人力成本投入越来越大;传统数仓在存储、搜索和分析挖掘等能力上的瓶颈也越来越突出。传统离线数据建设无法满足数据增长需求,数字化转型迫在眉睫,许多企业已经在转型或者在转型的路上。
但企业在数字化转型过程中并非一帆风顺,还面临着许多问题:
● 数据生产效率低
企业内部数据孤岛现象比较严重,不同部门自行搭建数据仓库,数据重复开发、难以共享,跨部门的数据需求响应周期长。
● 计算存储成本高
数据量增长后计算和存储的资源消耗也越来越大,此时资源利用不合理导致的数据延迟等问题也愈发突出。
● 数据质量问题频繁发生
因开发人员水平参差不齐,数据研发规范不统一等原因导致的质量问题频发且溯源困难。
● 数据安全难以保障
由于数据权限管理粒度粗、数据访问认证欠缺等一系列的问题导致重要数据泄露,数据安全难以保障。
因此在离线数仓数字化转型过程中,我们需要实现以下目标:
● 提升数据生成效率
● 提升数据质量
● 降低计算存储成本
● 保障数据安全
二、离线数仓建设方法论
如何帮助企业建设离线数仓,我们主要从以下五步骤入手:
1、业务调研
企业进行离线数仓建设的第一步是进行业务调研,业务调研的目标是梳理核心的业务流程,包括这个业务流程中涉及到的环节及主要人员,关注的重点数据指标是什么,以及数据来源,和数据量。从企业整体的角度探查数据需求可以帮助架构师进行数据计算存储底座和开发工具的选型。
2、技术选型
第二步技术选型阶段,首先是底座选型,底座选型的目标是确定我们需要把不同来源的数据统一汇集到哪个存储介质里,用什么样的方式进行计算。在工具方面,离线开发比较关注数据同步、数据开发、任务调度相关的一些工具,这些方面无论是开源还是商业版目前市面上都有很多类型的产品可供选择。
3、数仓域划分
第三步是数仓主题域和主题划分,一个主题域对应一个宏观的分析领域,可以理解为一个业务数据大类。主题域的划分方式根据企业内部需要可以按业务系统、需求、部门甚至是行业案例划分。主题域划分完成后可以继续往下划分一级主题二级主题,也就是数据大类下面的小类,直到划分到实体为止,那么整个主题域主题就划分完成了。
4、逻辑建模
第四步是逻辑建模,逻辑建模可分为指标体系梳理、实体关系调研、维度梳理及数仓分层这 4 个部分。
5、物理建模
在上面的四个步骤中我们已经把数仓框架搭建完成了,那么物理建模阶段就是根据业务需求进行数据开发代码编写和上线的过程。
三、离线开发实施流程
分享完离线数仓的建设方法论,接下来来为大家分享离线开发的实施流程。
● 第一步:数据集成(多源异构数据双向读写)
流程中的第一步数据集成,本质上是把来自一些数据库的数据经过数据的解析、转换后写入到相同或者异构的数据库这样一个过程,我们需要重点关注:
1、数据读写性能,关注工具是否能满足数据同步要求的速率;
2、异常恢复,当同步任务出现各种原因的异常中断时,能否从断点处继续进行数据读写,而不必每次出现异常都全部重新开始;
3、同步方式,关注同步工具能否支持全量、增量、批量的同步方式;
4、脏数据监控,如果源头或数据转换过程出现异常,这些异常数据能否进行记录和分析,帮助数据开发追溯数据质量问题来源。
● 第二步:数据开发
1、SQL 数据加工
通过 SQL 代码实现数据加工逻辑,产出表的过程。需要关注的点是工具对于开发任务类型能否满足要求,开发界面是否友好,任务的调试,数据日志下载等基本功能是否满足。图片
2、调度配置:编排任务有序按需执行
上一步完成代码开发后,还需要为开发任务进行调度属性配置,让任务根据设置的依赖关系和计划时间有序地运行。需要关注的重点是:稳定性与兼容性、任务依赖、周期调度。
● 第三步:任务发布
完成代码开发调试和调度配置后,我们就可以把数据开发任务从开发环境发布,也就是拷贝到生产环境中,由生产环境任务周期运行产生的数据就可以给业务方使用了。
一般数据开发会有三种环境模式。
**1、单项目模式,**也就是开发测试都在一个项目内完成,经过测试的任务直接跑生产数据,这种模式开发流程短,需求响应快,适合对数据稳定性和要求不高的场景,但大部分情况下我们不建议这么操作;
**2、双项目模式,**数据开发在开发项目中完成任务开发和测试,通过运维发布到生产环境中运行,开发项目和生产项目存在数据隔离,这种模式对数据安全比较有保障;
**3、三项目模式,**用户有两套网络相互隔离的集群,第一个集群用于数据开发和测试,数据开发在开发环境进行编码和自测,发布到测试环境由测试人员进行用例测试,测试完成的任务打包下载至本地,人工拷贝或传输到生产集群的项目下进行运行,这种模式虽然操作流程上多了一个环节,看起来比较麻烦,但由于网络隔离也最大程度上保证了生产数据的安全和稳定。
● 第四步:运维监控
任务运维就是全局掌控任务的运行,对于一些异常或紧急情况进行处理的过程。
● 第五步:数据安全
最后的数据安全其实贯穿在数据开发的整个流程中,数据安全包含数据权限管理、数据生命周期管理和数据访问认证等内容。
以上就是离线开发建设落地的全过程,那么是否有一款产品能满足上述需求呢?袋鼠云自研的数栈离线开发平台就完美符合这个情景。
**云原生一站式离线数据开发平台(BatchWorks),**具备灵活的多集群、多引擎对接能力,覆盖数据采集、数据开发、周期调度、监控告警等全链路功能。上线 5 年已服务 500+客户,专注于提供数据开发解决方案,帮助企业快速完成数据中台离线数仓建设,加速释放数据价值。
同时产品具备以下特点:
● 一站式可视化智能数据开发
一个平台覆盖完整数据开发流程,减少组件运维成本与流程衔接操作,让用户专注于业务本身。全流程可视化操作附带语法提示,智能调度与监控等多种辅助功能,减少上手成本,让更多用户参与数据使用。
● 多集群多引擎弹性兼容
支持输出自研 Hadoop 集群,同时可对接 CDH、HDP、TDH 等多集群及 Oracle、TiDB 等多引擎;节点资源可根据计算存储需求快速弹性伸缩,业务需求稳定响应。
● 全流程多维安全保障
多租户多项目组织结构实现数据权限隔离的同时支持灵活的申请授权;多角色内置权限点实现功能隔离;数据权限全流程校验,关键操作细粒度审计,最大限度减少生产安全事故。
四、离线数仓建设案例
接下来我们分享两个使用数栈离线开发平台完成数仓建设的实际案例,让大家切实感受产品给客户带来的实际价值。
● 某银行客户
● 某高校客户
版权声明: 本文为 InfoQ 作者【数栈DTinsight】的原创文章。
原文链接:【http://xie.infoq.cn/article/33ac18f0a2fa3a7019f5583bb】。文章转载请联系作者。
评论