谈谈基于事件驱动的数据架构

简介: 在数字化时代,我们一直在处理数据,我相信大家已经看到了数据领域的一些结构性变化。

在数字化时代,我们一直在处理数据,我相信大家已经看到了数据领域的一些结构性变化。不仅与架构相关,如今其大部分基于云而且还与团队和实施中涉及的某些角色相关。

从架构的角度来看实际的实现,我们可以有几种方法,但是我们越来越多地看到事件驱动的架构出现了!这些架构基于微服务和 API 驱动的实现,符合实时或近实时摄取和处理的目的。

下图可以说明使用微服务实时摄取数据并利用半结构化数据功能使其可用于 Data LakeHouse 或 Data Lake 的想法。

eeac6a896a60ee93d587a92b3fb5efde.png

微服务层和事件队列

大多数新的源系统都是 API 驱动的,这意味着它们可以在推/拉逻辑下工作:■推送逻辑使用流式 API 工作,这些 API 在事件发生时导出事件(通常以 JSON 格式)。

■拉取逻辑的工作方式与我们所说的“批处理”非常相似,数据管道负责从源系统请求信息,使用参数来减少通过数据管道(增量)移动的数据量。

主要关注推送逻辑,微服务(可以用多种语言构建,例如 Python、.NET、Java 等)将负责订阅端点/webhook 并将事件传递到定义的主题。这些主题特定于每个事件,并且需要具有唯一的命名约定或定义。对于这些部分,一些技术可以保证队列、复制和分区,例如 Apache Kafka、Confluent 或 Cloud Pub/Sub。


Data Lake / LakeHouse

数据湖是用于存储大量原始格式数据的存储库。组织和个人使用数据湖来存储不同类型的大数据,包括结构化、非结构化和半结构化数据。

数据湖使用平面架构,没有文件或文件夹层次结构。每条数据都与一组元数据相关联,并与一个唯一标识符相关联。它们使用各种各样的数据源,包括移动应用程序、物联网产品、网站和工业应用程序。

数据湖具有功能性、可扩展性和低成本的优势:

■作为功能,它具有与机器学习工具、人工智能算法、高级实时数据分析和预测模型配合良好的优势;

■在可扩展性范围内,它们用于管理大量数据,这些数据根据数据输入而增长和变化;

■该工具的低成本在于它允许使用开源技术。

另一方面,数据湖可能会变成数据沼泽,数据完整性和安全性较差,存在一定的劣势,包括:

■由于数据的大小,数据的复杂性意味着只有工程师和数据科学家才能导航和利用数据进行可能的分析。

■浏览数据湖可能很耗时,因为它们需要定期组织和维护数据完整性以避免数据质量问题。如果没有这些预防措施,数据湖最终会变成一个数据沼泽,其中包含杂乱无章且无法使用的数据。

■在数据湖中粗心会带来安全风险。由于存储了如此多的数据,安全和访问风险可能会增加。如果没有必要的预防措施,某些敏感数据最终可能会“存在”在数据湖中,并可供任何有权访问数据湖的人使用。

Data Lakehouse旨在接收结构化或非结构化数据。使用这种方法,企业可以从处理非结构化数据中受益,这些数据只需要存储库,而不需要像湖这样的仓库基础设施。

由于新的系统设计,Lakehouses 有可能被创建,为低成本开放格式的数据仓库实施类似的数据结构和数据操作工具。

作为 Data Lakehouse 应用程序的功能,可以实现以下能力:

■有利用价值的数据存储

■支持所有文件格式的所有类型的数据

■通过数据管理机制支持模式

■同时写入和读取数据

■优化对数据科学和机器学习工具的访问

■一个系统可帮助数据团队更高效、更快速地移动数据,而无需访问多个系统■可以应用 ACID 事务,它允许同时读取和写入数据

■数据科学、机器学习和数据分析项目的实时分析

■可扩展性和灵活性

■成为开源的所有优势这种方法的优点可以是:

■简化模式

■更好地处理和分析数据

■减少数据流量和冗余

■更快、更有效地利用团队时间

这种方法还可以利用无服务器处理在青铜层、白银层和黄金层之间移动数据。通常,黄金层随后在数据仓库中用于洞察力计算,并且所有现有数据都已通过数据质量检查、ETL 或使用文件/表连接的数据处理进行管理。

18b2ab66b67d0035eebe2e2c2bf8972e.png

数据仓库

数据仓库是以结构化格式存储的大量业务数据,可帮助组织获取知识。在数据仓库中写入数据之前,有必要知道它的模式。它从各种来源获取数据并将其格式化以匹配定义的模式。

数据仓库经过优化,可以以高效的查询方式处理和存储。此外,它提供了良好的数据质量并快速获得查询结果。

数据仓库无法处理原始数据或非结构化数据。由于数据不断增长,它的维护非常昂贵。此外,它不是处理复杂数据(例如使用机器学习或预测分析)的最佳解决方案。

主要挑战:

■高成本

■不灵活的架构

■高复杂性和冗余

■性能缓慢且性能下降


机器学习与数据科学

机器学习和数据科学对于某些企业寻找用于预测客户行为或参与、欺诈、产品定制或简单推荐的模型非常有用。

在这个领域还有很多需要讨论和探索的方面,但在这一点上,机器学习工程师将需要数据,而这正是让数据工程师发挥作用的地方。为了向他们提供需要的数据,在这背后使用一个简单的存储库(Data Lake/ Lakehouse)或结构化数据(Data Warehouse)。


洞察力和 KPI

洞察力和 KPI 是每项业务的一些主要驱动力。它们代表历史或实时信息,对于跟踪模式、了解当前状态以及根据准确、非冗余和提供方向的数据做出明智的决策非常有用。

还有一些与数据质量相关的 KPI,这些 KPI 展示了需要在源系统上更正的信息或一些缺少关键洞察力的信息。该层通常使用数据仓库和更传统的方式或关系模型,使用 3N 范式和数据建模的几种方法之一(Kimball、Inmon、Data Vault 等)来提供数据。

相关文章
|
1月前
|
消息中间件 存储 缓存
十万订单每秒热点数据架构优化实践深度解析
【11月更文挑战第20天】随着互联网技术的飞速发展,电子商务平台在高峰时段需要处理海量订单,这对系统的性能、稳定性和扩展性提出了极高的要求。尤其是在“双十一”、“618”等大型促销活动中,每秒需要处理数万甚至数十万笔订单,这对系统的热点数据处理能力构成了严峻挑战。本文将深入探讨如何优化架构以应对每秒十万订单级别的热点数据处理,从历史背景、功能点、业务场景、底层原理以及使用Java模拟示例等多个维度进行剖析。
55 8
|
1月前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
307 7
|
1月前
|
数据采集 搜索推荐 数据管理
数据架构 CDP 是什么?
数据架构 CDP 是什么?
52 2
|
4月前
|
机器学习/深度学习 数据采集 人工智能
揭秘!47页文档拆解苹果智能,从架构、数据到训练和优化
【8月更文挑战第23天】苹果公司发布了一份47页的研究文档,深入解析了其在智能基础语言模型领域的探索与突破。文档揭示了苹果在此领域的雄厚实力,并分享了其独特的混合架构设计,该设计融合了Transformer与RNN的优势,显著提高了模型处理序列数据的效能与表现力。然而,这种架构也带来了诸如权重平衡与资源消耗等挑战。苹果利用海量、多样的高质量数据集训练模型,但确保数据质量及处理噪声仍需克服。此外,苹果采取了自监督与无监督学习相结合的高效训练策略,以增强模型的泛化与稳健性,但仍需解决预训练任务选择及超参数调优等问题。
160 66
|
2月前
|
消息中间件 监控 测试技术
事件驱动架构是一种编程范式
【10月更文挑战第7天】事件驱动架构是一种编程范式
115 65
|
2月前
|
存储 消息中间件 人工智能
ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
本文整理自2024年云栖大会阿里云智能集团高级技术专家金吉祥的演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》。
|
2月前
|
存储 设计模式 监控
事件驱动架构的实现方式?
【10月更文挑战第7天】事件驱动架构的实现方式?
58 7
|
3月前
|
存储 搜索推荐 数据库
MarkLogic在微服务架构中的应用:提供服务间通信和数据共享的机制
随着微服务架构的发展,服务间通信和数据共享成为关键挑战。本文介绍MarkLogic数据库在微服务架构中的应用,阐述其多模型支持、索引搜索、事务处理及高可用性等优势,以及如何利用MarkLogic实现数据共享、服务间通信、事件驱动架构和数据分析,提升系统的可伸缩性和可靠性。
56 5
|
2月前
|
存储 大数据 数据处理
洞察未来:数据治理中的数据架构新思维
数据治理中的数据架构新思维对于应对未来挑战、提高数据处理效率、加强数据安全与隐私保护以及促进数据驱动的业务创新具有重要意义。企业需要紧跟时代步伐,不断探索和实践新型数据架构,以洞察未来发展趋势,为企业的长远发展奠定坚实基础。
|
3月前
|
设计模式 开发框架 前端开发
在开发框架中实现事件驱动架构
【9月更文挑战第2天】事件驱动架构(EDA)通过事件机制让组件间解耦交互,适用于动态扩展和高响应性的系统。本文提供一个基于Beego框架实现事件驱动的示例,通过事件管理器注册和触发事件,实现用户注册和登录时的不同处理逻辑,展示了其在Web应用中的灵活性和高效性。
92 5