基于 DataWorks + MaxCompute 构建大数据平台

1,067 阅读5分钟

公众号名片 作者名片

简介:

DataWorks 是阿里云重要的 PaaS 平台产品,提供数据集成、数据开发、数据地图、数据质量和数据服务等全方位的产品服务,一站式开发管理的界面,帮助企业专注于数据价值的挖掘和探索。

MaxCompute 是适用于数据分析场景的企业级 SaaS 模式云数据仓库,以 Serverless 架构提供快速、全托管的在线数据仓库服务,消除了传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,可以经济并高效地分析处理海量数据。

数据架构选型:

随着业务的快速发展,我们开始探索新的解决方案来帮助我们实现大数据平台的发展,因涉及到运维、人力资源的投入,我们更倾向于采用一站式数据开发平台,基于 DataWorks + MaxCompute 框架体系。如图是我司现有大数据平台架构图:

阿里云现有服务流程2

MaxCompute 数仓规范:

数据模型规范:

  • 层次数据划分:
    • ODS :数据引入层,离线、实时数据区,存放原始数据,非结构化数据进行结构化处理
    • CDM:数据公共层
      • DIM:公共维度层,建立企业一致性维度
      • DWD:明细粒度事实层,以业务过程建模
      • DWS:公共汇总事实层,以分析主题对象建模 ​ * ADS:数据应用层,定制化统计指标数据
  • 数据流程、空间命名:以业务分类、业务过程、数据域划分
  • 设计原则:
    • 任务流程、任务节点、表命名清洗易理解
    • 数据模型高内聚、低耦合
    • 公共基础逻辑下沉

层次开发规范:

  • 数据引入层表(ODS):

    • 命名规范:
      • 表名:ods_{源系统表名}_{delta/保留位}
      • 字段名:默认原系统表名/与关键字重名 + col
      • 任务命名:与输出表名一致
    • 其他规范:
      • 系统源表只允许同步一次
      • 表名后缀明确同步方式(全量/增量)
      • 表数据的生命周期
  • 明细粒度事实层(DWD):

    • 命名规范:
      • 表名:dwd_{项目名称}{数据域缩写}{自定义表名}_{刷新周期标识}
      • 任务命名:与输出表名一致
      • 存储及生命周期管理:以天为分区,根据访问跨度,设置生命周期
  • 公共汇总粒度事实层(DWS)

    • 命名规范:
      • 表名:dws_{项目名称}{数据域缩写}{自定义表名}_{刷新周期标识}{统计时间周期范围缩写}
      • 任务命名:与输出表名一致
      • 存储及生命周期管理:以天为分区,根据访问跨度,设置生命周期
  • 数据应用层(ADS):

    • 命名规范:
      • 表名:ads_{项目名称}_{自定义表名}{后缀}
      • 数据报表、数据分析等后缀为 bi,数据产品等后缀为 app

公共开发规范:

  • 层次调用规范:数仓层次调用时,应用层数据不允许直接调用 ODS 层数据,必须存在中间层 CDM 数据;DWS 数据汇总层应优先调用 DWD 明细层数据;数据计算处理任务只允许一个输出表;DWD 明细层累计快照事实表优先调用 DWD 事务型事实表,保证数据的一致性产出。

  • 空值处理原则:指标类的空值填充为0,维度空值填写默认值

基于 DataWork 的数据治理:

  • 数据集成:用于离线(批量)数据同步。完成多数据源统一管理,打通多种第三方数据库,API等方式,消除数据孤岛的存在。采用两种开发模式:

    • 向导模式:该方式为现有大部分数据集成所采用的方式

    向导模式图

    • 脚本模式:通过编写 json 脚本完成数据同步开发,配置管理更加精细化

    脚本模式图

  • 数据开发:数据开发基于业务流程下对应的节点进行开发操作,在业务流程面板下新建一个或多个业务流程,每个业务流程根据不同的引擎类型进行分组,每个引擎分组下再对数据开发类型节点、表、资源、函数进行一步分组,即一类业务使用的组件(节点、表、资源、函数)统筹在一个业务流程中,业务流程下仅展示当前业务流程中使用的组件:

    • 在 DataWorks 上,具体的数据开发工作是基于业务流程开展的,需要先新建业务流程,再进行后续的开发工作。
    • 所有生产环境调度节点的代码变更都需要在数据开发界面修改完成后走发布流程进行发布。

studio

  • 数据运维:我们在开发环境完成节点开发,并提交和发布至生产环境后,可以到生产环境的运维中心对任务进行运维操作,包括周期调度任务的自动调度与手动运行、任务运行详情查看、任务运行状态监控、任务运行使用的资源监控与自动运维;实时任务的执行管控、运行详情查看与监控报警配置;调度任务运维大屏以及数据集成离线同步与实时同步任务运维专页,针对任务运维关键指标的查看。

    运维中心

小结:

信息是重要的财富,信息几乎总是用作两个目的:操作型记录的保存和分析型决策的制定。操作型系统保存数据,而 DW / BI 系统使用数据。本文仅简单介绍了 DataWorks + MaxComplute 框架的使用,有兴趣的朋友可以到官网去查看!

更多精彩请关注我们的公众号「百瓶技术」,有不定期福利呦!