构建数据平台架构指导原则与平台核心组件说明

news2024/12/25 8:53:57

文章目录

    • 前言
    • 什么是数据架构?
    • 数据架构如何帮助构建数据平台?
    • 数据平台核心组件
      • 数据源系统
      • 数据加载
      • 数据存储
      • 数据处理和转换
      • 提供使用数据的方式
      • 公共服务

前言

湖仓一体是最近几年非常流行的现代大数据架构,目前它已经成为设计数据平台架构的首要选择。

在本文中,我将介绍与数据架构、数据平台及其核心组件相关的基本概念,以及数据架构是如何帮助构建数据平台的。然后,我将解释为什么需要像 Lakehouse 这样的新架构模式、Lakehouse 基础知识、其特征以及使用 Lakehouse 架构实现数据平台的好处。

数据平台是使用所选技术堆栈实现数据架构的最终结果,是定义我们要构建的系统的蓝图。数据架构定义了核心组件、这些组件之间的相互依赖关系、基本设计原则以及实现数据平台所需的流程。

什么是数据架构?

要理解数据架构,请考虑下现实世界中的类比:商业建筑工地(如任何购物中心或大型住宅区)。

商业地产需要坚固的建筑、创新的设计、经验丰富的建筑师和大批建筑工人。架构起着最关键的作用,确保建筑能够承受所有天气条件,帮助人们轻松进入和穿过各个楼层,并在紧急情况下快速疏散。此类架构基于某些指导原则,这些指导原则定义了构建块的核心设计和布局。无论是建造住宅区、商业区还是体育场馆,基本支柱和核心设计原则都将保持不变。然而,设计模式、内饰、美学和其他符合用户需求的功能会有所不同。

数据架构与任何建筑工地的设计架构一样,在决定平台的用户适应性方面发挥着重要作用。以下部分将介绍数据架构在实现数据平台的整个过程中的重要性。

数据架构如何帮助构建数据平台?

数据平台的架构设计可能是项目最关键的阶段,通常会影响平台用户的使用性、可扩展性、合规性和安全性等关键成果。它可以帮助我们定义构建平台所需的基本内容,以下是这些基本内容的说明:

定义核心组件
核心组件帮助执行日常数据特定活动,例如数据加载、存储、管理、交付以及将其提供给消费者。数据架构可帮助我们定义这些核心组件来构建数据平台,这些核心组件将在下一篇中详细讨论。

定义组件相互依赖关系和数据流
定义核心组件后,还需要确定它们如何交互。数据架构定义了这些依赖关系,并帮助我们可视化数据在生产者和消费者之间的流动方式。它可以帮助我们确定在这些组件之间移动数据时可能面临的任何特定限制或集成挑战。

定义指导原则
作为架构设计过程的一部分,我们还定义了实施平台的指导原则。这有助于使用该平台的各个数据团队之间建立共识,确保每个人都遵循相同的设计方法、通用标准和可重用框架来实施优化、高效和可靠的解决方案。

指导原则可以应用于各种组件,并根据数据架构的功能和限制来决定。例如,如果架构使用不同价位的多个存储层,则应该根据存储价位定义存储冷热数据的指导原则,以优化总体成本。

定义技术栈
该架构蓝图还提供了核心组件的技术覆盖,有助于决定实现平台的技术堆栈。在构建平台时,最终确定所有底层技术可能具有挑战性,因为需要对限制和优势进行详细研究以及概念验证 (PoC),才能最终确定这些技术。数据架构有助于定义做出这些技术选择的关键考虑因素,并定义执行任何 PoC 活动的成功因素。

与总体愿景和数据策略保持一致
最后,也是最重要的,数据架构可以帮助我们与团队的总体愿景和公司定义的数据策略保持一致,从而通过相应地实施数据平台来实现业务目标。

例如,数据治理是任何公司的数据战略不可或缺的一部分,数据架构定义了元数据存储库、数据catalog、访问控制和数据共享原则等组件,以确保数据治理是每个流程的核心,并且平台与整体数据策略保持一致。


说明
数据治理是一个由各种标准、规则和政策组成的保护机制,以确保所有数据流程都遵循正确的方法指导,以确保和提高合规性、数据质量、数据可信度及其价值。
公司应在所有数据管理流程中遵循数据治理策略,以维持消费者对数据的信任并始终合规。数据治理有助于更好地控制数据、轻松发现数据并与消费者安全地共享数据。

了解了数据架构及其重要性后,现在是讨论数据平台核心组件的时候了。

数据平台核心组件

基于数据架构蓝图实现数据平台的核心组件如下图所示:

数据源系统

数据源系统向数据平台提供可用于分析、报表 (BI) 和机器学习 (ML) 用例的数据。这些来源包括公司运营的系统、后端 OLTP 应用程序、物联网设备、点击事件和社交媒体数据源。

内部或外部源系统

  • 内部源是属于公司的一部分并生成内部数据的源应用程序。例如,内部 CRM 系统、事务数据库、机器生成的日志等。
  • 数据平台通常需要来自外部系统的数据来增强其内部数据。比如说使用包括汇率、天气信息、市场研究等外部数据,这些数据有助于增强内部数据,以提供更好的分析能力。

批处理、近实时或流式系统

直到几十年前,大多数源系统只能发送批量数据。他们通常会在一天结束时以每日批处理的方式发送数据。随着对更接近实时的数据分析的需求不断增加,源系统开始以接近实时的方式发送数据。这些系统现在可以以固定间隔(短至几分钟)将数据共享为多个较小的微批次。物联网设备、社交媒体源和点击流等来源以连续流的形式发送数据,应实时加载和处理这些数据,以获得该数据的最大价值。

结构化、半结构化和非结构化数据

传统上,源系统仅生成表或固定结构化文件中的结构化数据。随着数据交换格式的进步,越来越多地采用 XML 和 JSON 文件形式的半结构化数据。随着组织开始实施大数据解决方案,他们开始生成大量非结构化数据。
我们的数据架构应该支持所有类型的源系统,以不同的空间和时间间隔发送不同类型的数据。

数据加载

数据摄取是从源系统提取数据并将其加载到数据平台的过程。如上文所示,基于源系统生成和发送数据的能力,必须实现加载对应的框架来构建批量/近实时或流式加载系统。

批量加载
每天发送一次数据的系统(作为一天结束或一天开始的过程)可以作为批处理过程加载到数据平台中。这是传统仓库架构中用于生成日常管理信息系统 (MIS) 或监管报告的最常见模式。

近实时
对于时间敏感的数据,可以以微批次或近乎实时的方式进行加载。微批量加载间隔可以低至几分钟,而近乎实时的数据可以在几分钟到几秒钟的时间内加载。数据加载工具应该能够根据业务需求满足所需的 SLA。

流式
流式场景对时间极其敏感,需要一种支持实时数据加载的架构,即在数据生成后的几毫秒内。这些数据对时间至关重要,如果不立即加载和处理,可能会迅速失去价值。我们的加载组件应该能够支持低延迟要求,以便在源系统生成数据后立即提供数据。

数据存储

数据被加载后,必须将其存储起来,以便于数据分析。数据存储组件能够有效地存储各种数据类型,数据存储分为两大类:

一般存储
所有数据类型都可以存储在对象存储中,例如 Hadoop 分布式文件系统 (HDFS)、Amazon Simple Storage Service (S3)、Azure Data Lake Storage (ADLS) 或 Google Cloud Storage (GCS)。这些存储支持持久保存结构化、半结构化或非结构化数据。它们提供高可用性和耐用性,并且具有成本低,使它们成为长期存储数据的最佳选择之一。

专用存储
虽然对象存储适合经济高效的长期存储,但我们可能经常需要一个专门构建的存储系统,该系统可以具有快速访问、更快检索、基于键的搜索、列式存储、高并发查询等功能。

有不同的技术和架构模式来实现这些:

  • 支持联机分析处理 (OLAP) 工作当时 - 数据仓库
  • 应用程序后端的在线事务处理 (OLTP) 系统 - 关系数据库 (RDBMS)
  • 更快的数据检索 - 内存数据库
  • 存储连接和关系 - 图形数据库

数据存储组件是数据平台中使用最广泛的组件。从存储长期数据到快速提供数据 - 所有主要活动都是在计算引擎的帮助下通过这些组件进行的。

数据处理和转换

从源系统收集的原始数据必须根据业务需求进行验证、清理、集成和转换。作为数据处理的一部分,需要执行多个步骤,通过执行各种步骤将原始数据转换为更易于使用的最终产品,详细信息如下:

数据校验和清理
从源系统获取的数据是原始形式,在提供给最终用户之前需要校验和清理。这两个步骤对于确保数据准确性存储层间传递不会受到影响非常重要。

校验是输入数据加载后的第一步,这些验证适用于结构化数据,并且在某种程度上适用于报表和数据分析生成的半结构化数据。数据流经各种验证关卡,包括技术和业务验证,如下所列:

  • 技术验证主要涉及数据类型、数据格式和其他检查,这些检查本质上是技术性的,可以跨任何领域/行业应用**。**
  • 业务验证是特定于领域/功能的,并且与属性中的特定值及其准确性或完整性相关。
  • schema 验证是输入数据源应根据规范或数据契约中定义好的 schema 格式进行的验证。

说明
数据契约是一个相对较新的术语,描述数据生产者与其消费者之间的协议。它定义了与所产生的数据相关的各种参数,例如数据的所有者、频率、数据类型和格式,以便数据的生产者和消费者之间有共同的理解。

数据转换
这是将原始数据转化为有用信息的过程。它可以是一系列转换,集成从多个源系统接收的数据并将其转换为下游应用程序、业务用户和其他数据消费者可以根据其需求使用的可用形式。

下边是常见的数转换方式:

  • 数据整合

    由于数据是从多个源系统获取的,因此我们必须将其组合起来以获得集成的数据视图。作为转换过程的一部分,这种集成是在将数据存储到更高层之前完成的。数据集成的数据包括集成来自源系统、内部系统或营销 app 的客户端数据。

  • 数据增强

    我们必须通过使用外部数据来增强数据,使其更有意义。数据增强的示例包括使用第三方应用程序/API 提供的汇率数据来计算每日销售额,以及使用信用评级机构提供的数据来计算信用评分。

  • 数据聚合

最后,需要根据业务需求汇总数据。此过程有助于汇总和存储数据,以便更快地查询和检索。一个示例是根据日期、产品和位置聚合数据以获得销售的汇总视图。


什么是 ETL 和 ELT?
在实施数据仓库和数据湖时,有两种广泛采用的执行数据转换的方法:ETL 和 ELT。
抽取、转换和加载(ETL)

  • ETL 是从源系统中提取数据、执行所需转换并最终将数据加载到数据仓库中的过程。这种方法广泛应用于使用数据仓库方法构建的架构中。

抽取、加载和转换(ELT)

  • ELT 是从源系统中提取数据、将其加载到仓库中,然后使用仓库平台提供的计算能力执行转换的过程。近年来,随着高效、高性能仓库的兴起,ELT 方法非常流行。

数据管理和服务

这是根据业务流程和需求整理数据的过程。使用维度建模等建模方法,根据行业标准数据模型将数据加载到特定的数据层中。这种使用行业特定数据模型的数据排列有助于更快、更轻松地生成分析和报表。筛选过的数据可用于创建数据产品,消费者可以直接使用这些产品来满足其业务需求。


说明
数据产品是一个新术语,用于定义专门为其消费者策划的消费品。数据产品通常由负责数据的领域团队创建。这些产品可以与其他领域团队和下游应用程序共享。数据产品可以是表格、视图、报表、仪表盘,甚至可以是机器学习模型。

提供使用数据的方式

数据消费组件使用户能够访问、分析、查询和消费数据。这些可以是我们的 BI 报表工具,甚至是可用于进行预测和预报的 ML 模型。以下是这些组件支持的各种工作方式的说明:

BI 报表
BI 工具可帮助创建报表和仪表盘来实施 MIS、监管报表、销售仪表盘等用例。这是 RDBMS 等传统技术和使用数据仓库方法构建的架构支持的最早用例之一。

即席查询
业务用户、数据分析师和领导通常需要立即执行查询来进行数据分析或者为会议上突然出现的问题进行查询分析答案。这些组件提供了一个简单的 SQL 接口来执行此类分析。

APIs
下游应用程序需要一种通用的方式与数据平台交互。 API 提供了灵活性,下游系统可以使用它来轻松获取数据。

机器学习
ML 可以帮助支持多种用例,例如预测、预报、建议等。数据平台应该能够为 ML 生命周期提供工具,包括训练、部署和推理模型。
所有这些组件都可以将数据交付给数据消费者,并在提高用户对平台的采用方面发挥着重要作用。这些数据架构组件为用户提供了与平台内驻留的数据进行交互的接口,在设计这些组件时应考虑用户体验。

公共服务

有一些通用服务可以跨各种流程提供通用功能,并在使数据可供消费者轻松发现、可用和安全访问方面发挥着重要作用。以下是这些常见服务的列表:

元数据管理
其中包括帮助我们在整个大数据系统中加载、管理和维护元数据的工具和技术。元数据有助于提高数据的可检索性,以便于用户轻松访问数据。我们可以创建数据目录来组织元数据,其中包含各种表、属性、数据类型、长度、键和其他信息的详细信息。数据目录帮助用户更快地发现数据并有效地利用数据。

数据治理
这些组件有助于部署各种规则和策略来控制数据治理的多个方面,包括访问控制、数据共享、数据质量、管理敏感数据和合规性。

数据安全
数据安全组件可以帮助我们实施正确的安全功能,以保护数据所在的位置或数据在大数据系统内部或外部移动时的安全。数据安全大致可分为以下几类:

  • 静态数据:存储在数据平台内的数据,无论是在云对象存储中还是在任何专用存储系统(如数据仓库或数据库)中,都应始终进行加密和保护。
  • 传输中的数据:每当数据在数据平台内部或外部移动时,都应使用标准加密方法进行保护。例如,用于数据传输的 SSL/TLS 加密。

数据编排
数据编排有助于定义数据管道的计划并添加其上游和下游依赖项。它是跟踪、管理和控制数据管道日常执行的重要组件。

数据监控
随着数据生态系统的发展,管理和监控整个系统的健康状况是强制性的。如果没有监控,生产中的任何故障都可能被忽视,并且重复发生的事件很快就会成为问题。现代数据平台还利用数据可观测性功能来监控整体数据健康状况。


说明
数据可观测性是一个新术语,用于了解大数据生态系统内数据的健康状况。这是一个主动识别与数据质量、准确性、新鲜度和完整性相关问题的过程,以避免任何数据缺失。现代数据平台应提供数据可观测性功能,主要考虑到数据量大且快速的数据加载和处理,其中任何缺失都会严重影响系统。

所有这些组件构成了数据平台并使其用户能够执行各种活动。数据架构提供了构建这些数据平台的架构蓝图和指导原则。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1602286.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaSE-13笔记【集合2(+2024新)】

文章目录 3.Map3.1 Map继承结构3.2 Map接口的常用方法3.3 遍历Map3.4 HashMap集合3.4.1 HashMap集合key的特点3.4.2 HashMap集合的key存储自定义类型3.4.3 哈希表3.4.3.1 哈希表的介绍3.4.3.2 哈希表的存储原理 3.4.4 存放在HashMap和HashSet集合key部分的元素必须同时重写hash…

postman汉化

一、postman历史版本下载:Postman 10.24.16 Download for Windows / Old Versions / FileHorse.comhttps://www.filehorse.com/download-postman/old-versions/ 二、汉化包下载: Releases hlmd/Postman-cn GitHubPostman汉化中文版. Contribute to h…

LeetCode———144—— 二叉树的前序遍历

目录 ​编辑 1.题目 2.解答 1.首先计算二叉树的节点个数: 2.以先序遍历(Preorder Traversal)的方式遍历一个二叉树,并将遍历到的节点的值存储在一个整数数组中 3.最终代码 1.题目 . - 力扣(LeetCode) 给…

浮点数的存储方式、bf16和fp16的区别

目录 1. 小数的二进制转换2. 浮点数的二进制转换3. 浮点数的存储3.1 以fp32为例3.2 规约形式与非规约形式 4. 各种类型的浮点数5. BF16和FP16的区别Ref 1. 小数的二进制转换 十进制小数转换成二进制小数采用「乘2取整,顺序排列」法。具体做法是:用 2 2…

如何协调数据集成和数据质量?

想象一下用腐烂的木头制作的一件漂亮的家具或用劣质面料制成的高级时尚衬衫。材料的质量影响最终产品。那么,为什么数据洞察(贵公司庞大的数据管理工作的主要产品)会有所不同呢? 无论您的数据管理生态系统有多强大,或…

《自动机理论、语言和计算导论》阅读笔记:p139-p171

《自动机理论、语言和计算导论》学习第 7 天,p139-p171总结,总计 33 页。 一、技术总结 1.reversal p139, The reversal of a string a1a2…an is the string written backwards, that is anan-1…a1. 2.homomorphism A string homomorphism is a f…

点云语义分割:使用Cylinder3D训练SemanticKITTI数据集

点云语义分割:使用Cylinder3D训练SemanticKITTI数据集 一、环境二、数据准备3、训练4、测试5、可视化 一、环境 系统:Ubuntu18 Pytorch:1.5.0 GPU:Tesla V100 cuda:10.2 代码: Cylinder3D 二、数据准备 下载semanticKITTI数据集…

32.5k star!发现一个新的 API 调试工具!postman 要被替换了【文末有项目源码】

在软件开发过程中,API(应用程序接口)扮演着至关重要的角色。为了确保 API 的可靠性和性能,开发人员需要一种高效的方式来测试和调试它们。这方面的工具,大家经常用到的应该就是 postman 了。不过,今天想要给…

钡铼IOy系列模块深挖工业场景需求提供丰富多样的I/O解决方案

钡铼IOy系列模块以其灵活性和多样性,在工业场景中提供了丰富多样的I/O解决方案,满足了不同行业、不同应用场景的需求。以下是一些常见的工业场景需求及钡铼IOy系列模块提供的解决方案: 1. 工厂自动化 需求:工厂自动化需要对生产线…

03-JAVA设计模式-迭代器模式

迭代器模式 什么是迭代器模式 迭代器模式(demo1.Iterator Pattern)是Java中一种常用的设计模式,它提供了一种顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示的方法。迭代器模式将遍历逻辑从聚合对象中分离出来…

斯坦福大学2024年人工智能发展和前景全面分析报告

2024 年指数是斯坦福大学迄今为止最全面的指数,恰逢人工智能对社会的影响力达到前所未有的重要时刻。今年,斯坦福大学扩大了研究范围,更广泛地涵盖人工智能的技术进步、公众对该技术的看法以及围绕其发展的地缘政治动态等基本趋势。 完整详细…

C++基本输入输出

C 中的输入和输出( I/O )主要是通过标准库中的输入输出流来实现的。最常用的是 iostream 1. 库,它提供了用于输入和输出的基本流类,包括 cin 、 cout 、 cerr 和 clog 。 1.标准输出流 ( cout ) cout 代表标准输出流&a…

Java 基于微信小程序的医院预约挂号小程序(V3)

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

短信防刷之滑动验证码

前言:最近想写一个滑动验证码,前台的样式虽然很好看,但是并不安全,网上也都是一些demo,不是前后台分离的,然后就自己查资料,自己来完成了 滑动验证码 一、为什么要使用滑动验证码 首先&#x…

C++ 秋招必知必会(数据结构与算法:下)

20. 二叉树的定义与操作 二叉树(binary tree)是一种非线性数据结构,代表着祖先与后代之间的派生关系,体现着“一分为二”的分治逻辑 与链表类似,二叉树的基本单元是节点,每个节点包含:值、左子…

吐血整理102个Python项目,从基础到高级,练完你就牛了!

前言 Python 初学者在迈过安装编程环境和基本语法的门槛,准备大展身手的时候,可能突然就会进入迷茫期: 不知道做些什么、再学些什么。。。 然后对编程的兴趣就会慢慢消退,找不到坚持下去的理由,从而慢慢淡忘之前学会…

JookDB下载安装使用

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【Arduino IDE 环境配置】

目录 Arduino IDE 环境配置 1. 安装方式2. 操作方法(Arduino中文社区) 2.1. 安装Arduino IDE2.2. 下载固件2.3. 修改Arduino IDE语言2.4. 添加开发板管理网址2.5. 运行离线包2.6. 检查安装是否成功 下载Arduino IDE: 如果你还没有安装Arduin…

文件包含漏洞利用技术总结

开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这中文件调用的过程一般被称为文件包含。 allow_url_fopen On(是否允许打开远程文件) allow_url_include On&…

claude3国内能用吗

claude3国内能用吗 如果您在国内无法直接使用Claude模型,可以考虑以下几种解决办法: 镜像站点:和GPT模型相似,使用为国内用户设置的镜像网站可以是一个解决方案。这些镜像站点可能会提供Claude模型的本地化服务,确保…