初入datawork生态圈的架构

Posted CesarChoy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初入datawork生态圈的架构相关的知识,希望对你有一定的参考价值。

前文:

          越来越多小公司上云了,这个是大势所趋。现在主流是阿里云和腾讯云,此文通过分享这两个下来的感受让大家接触云平台开发。

一、背景

         相比自建机房,大部分公司上云省时省力,具体上哪个云取决于公司的业务发展,毕竟拉通带宽蛮贵的,腾讯云成本比阿里云便宜一半,但阿里的组件生态圈选择性比较多(其实也没多少预算可以选择...) 如果选择上云,那么你有两种选择,平台开发/EMR模式,取决于人员配置/业务发展,一个人才成本高/一个组件成本高。因为是新建团队,为了响应需求,目前是选择了平台开发快速交付。

二、架构

2.1 主要架构

2.2 数据集成

2.2.1 业务库投递方案

目前所有数据库都在阿里云的数据库上,所以直接使用datawork数据同步工具即可。

2.2.2 实时日志投递方案

 结论:实时链路通过使用datahub一键投递,按需付费更便宜,并可解决数据偏移问题。这里有个小片段,如果没啥实时需求kafka开通了晾在那也蛮贵的,还需要懂 flink 的人员配置。

2.3 开发

2.3.1 离线开发

天/小时级别作业通过datawork开发,写入到 mysql 或 holo 外部表查询。

2.3.2 实时开发

分钟级别作业:基于 datawork 调度每 5/10分钟 调度holo脚本。

实时级别作业:通过 flink 实时计算后 入库。

主要还是看场景,增量/全量场景区分好选型即可;flink实时计算有定制语法帮助实现mysql数据实时同步到holo,满足实时场景,datawork就达不到这种效果。

详情参考:Hologres推荐的数仓分层-数据-场景-实时-实时数仓Hologres-阿里云

2.4 优缺点

2.4.1 优点

(1) 开发:数据地图,协助我们看每张表的血缘地图,并可一键查看该表所有信息。很多公司投入大量研发后基本没有产出。

(2) 调度:基于作业实例调度,当中间某个节点未完成/错误将导致下游所有节点阻塞,重跑该节点后下游节点可自动修复。像使用dolphinscheduler,下游作业要一个一个去重跑极其麻烦。

(3) 告警:一键配置全局作业告警,无需每个作业配置告警。

2.4.2 缺点

(1) 价格昂贵,预算不足,很多组件无法测试/开通。

(2) datawork 无法/微批次 更新贴源层数据,T+1拉取业务库大表对业务库影响较大。虽然有实时同步作业,但是应该是个kpi诞生下的怪胎。业界基本都有hudi、iceberg等解决方案,不知道后续是否有兼容计划,或还是得去用另一个数据湖分析组件。

基于hadoop生态圈的数据仓库实践 —— OLAP与数据可视化

五、Hue、Zeppelin比较
        上一节简单介绍了Hue这种Hadoop生态圈的数据可视化组件,本节讨论另一种类似的产品——Zeppelin。首先介绍一下Zeppelin,然后说明其安装的详细步骤,之后演示如何在Zeppelin中添加MySQL翻译器,最后从功能、架构、使用场景几方面将Hue和Zeppelin做一个比较。
1. Zeppelin简介
        Zeppelin是一个基于Web的软件,用于交互式地数据分析。一开始是Apache软件基金会的孵化项目,2016年5月正式成为一个顶级项目(Top-Level Project,TLP)。Zeppelin描述自己是一个可以进行数据摄取、数据发现、数据分析、数据可视化的笔记本,用以帮助开发者、数据科学家以及相关用户更有效地处理数据,而不必使用复杂的命令行,也不必关心集群的实现细节。Zeppelin的架构图如下所示。