Halodoc的数据平台转型之Lakehouse架构(印尼医疗龙头企业)

科技资讯 投稿 42400 0 评论

Halodoc的数据平台转型之Lakehouse架构(印尼医疗龙头企业)

在这篇博客中,我们将讨论我们的新架构、涉及的组件和不同的策略,以拥有一个可扩展的数据平台。

新架构

1. 数据摄取/提取层

2. 处理层

3. 转换层

4. 报告层

一旦我们将平台实现为不同的层,下一个挑战就是选择能够支持我们大多数下游用例的组件。当我们调研市场上的数据工程工具/产品时,我们可以轻松找到大量工具。我们计划利用 AWS 云和开源项目构建内部解决方案,而不是购买第三方许可工具。

涉及的组件:

1. 管理系统

2. S3 - 原始区域

这还存储从点击流工具或任何其他数据源摄取的数据。原始区域充当处理区域使用数据的基础层。

3. EMR - HUDI + PySpark

4. S3 - 处理区

5. Glue数据目录

6. Athena

7. Redshift

8. MWAA

9. Cloud Watch和EFK

10. Dynamicdb

为什么选择基于 CDC 的方法

在 Halodoc,当我们开始数据工程之旅时,我们采用了基于时间戳的数据迁移。我们依靠修改后的时间戳将数据从源迁移到目标。我们几乎用这个管道服务了 2 年。随着业务的增长,我们的数据集呈指数级增长,这要求我们将迁移实例增加到更大的集群以支持大量数据。

  • 由于源处生成的大量数据导致迁移集群大小增加,因此成本高。

  • 由于某些后端问题,未更新已修改列时的数据质量问题。

  • 架构更改很难在目标中处理。

  • 在基于 CDC 的情况下,我们通过在 MySQL 中启用 binlog(二进制日志)和在 Postgres 中启用 WAL(预写日志)来开始读取事务数据。提取每个事件更改的新文件是一项昂贵的操作,因为会有很多 S3 Put 操作。为了平衡成本,我们将 DMS 二进制日志设置为每 60 秒读取和拉取一次。每 1 分钟,通过 DMS 插入新文件。基于 CDC 还解决了数据量大增长的问题,因为我们开始以最大分钟间隔迁移,而不是每小时间隔数据。

使用Apache Hudi

HUDI 提供内置功能来支持开放数据湖。在我们的平台中加入或集成 HUDI 时,我们面临以下一些挑战并试图解决它们。

保留 HUDI 数据集中的最大提交

确定要分区的表

选择正确的存储类型

MoR 数据集的不同视图

建立在数据湖之上的报告正在查询 _rt 表以获取数据集的最新视图。

HUDI 中的索引

为什么框架驱动

我们之前的大部分实施都是管道驱动的,这意味着我们为每个数据源手动构建管道以服务于业务用例。在 Platform 2.0 中,我们对实现模型进行了细微的更改,并采用了框架驱动的管道。我们开始在每一层上构建一个框架,例如数据摄取框架、数据处理框架和报告框架。每个框架都专用于使用预定义的输入执行某些任务。采用框架驱动减少了冗余代码,以维护和简化数据湖中新表的载入过程。

使用表格格式的控制平面的好处

我们选择 RDS 的原因如下:

  • 轻松在元数据之上执行任何分析,例如活动管道的数量。

  • 易于载入新表或数据模型。

  • 借助 python flask API 轻松构建 API 层。

  • 审计可以很容易地完成。

  • 数据安全

自动化

自动化总是有助于减少构建和维护平台的工程工作量。 在 Platform 2.0 中,我们的大部分流水线都使用 Jenkins 和 API 实现自动化。
我们通过部署烧瓶服务器并使用 boto3 创建资源来自动创建 DMS 资源。

记录、监控和警报

尽管我们的基础设施是健壮的、容错的和高度可扩展的,但有时会出现可能导致基础设施停机的意外错误。为了识别和解决这些问题,我们使用 Cloud watch 和 EFK(Elasticsearch、Fluentbit 和 Kibana)堆栈对我们数据平台中涉及的每个组件启用了监控和警报。

工作流程编排

概括

在这篇博客中,我们查看了 Lake House 架构、构建平台 2.0 所涉及的所有组件,以及我们将 HUDI 用作数据湖的关键要点。由于我们现在已经构建了 Data Platform 2.0 的基础部分,接下来我们计划专注于平台的以下方面:

  • 数据质量 -> 维护整个数据存储的数据检查和数据一致性。

  • 数据血缘 -> 提供数据转换的端到端步骤。

  • BI 团队的自助服务平台 -> 减少对 DE 团队对入职报告表的依赖。

  • 处理迟到的维度:保持我们的数据模型的一致性,并处理从湖到仓库的迟到的维度键。

编程笔记 » Halodoc的数据平台转型之Lakehouse架构(印尼医疗龙头企业)

赞同 (26) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽