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

文章目录

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

前言

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

在本文中,我将介绍与数据架构、数据平台及其核心组件相关的基本概念,以及数据架构是如何帮助构建数据平台的。然后,我将解释为什么需要像 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.mzph.cn/news/823459.shtml

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

相关文章

Flask框架初探-如何在本机发布一个web服务并通过requests访问自己发布的服务-简易入门版

Flask框架初探 在接触到网络框架之前我其实一直对一个事情有疑惑,跨语言的API在需要传参的情况下究竟应该如何调用,之前做过的项目里,我用python做了一个代码使用一个算法得到一个结果之后我应该怎么给到做前端的同学或者同事,之前…

基于springboot 的医院信管系统

开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven…

SpringBoot新增菜品模块开发(事务管理+批量插入+主键回填)

需求分析与设计 一:产品原型 后台系统中可以管理菜品信息,通过 新增功能来添加一个新的菜品,在添加菜品时需要选择当前菜品所属的菜品分类,并且需要上传菜品图片。 新增菜品原型: 当填写完表单信息, 点击"保存…

【数据分析】AHP层次分析法

博主总结:根据每个方案x各准则因素权重累加结果 对比来选择目标。数据主观性强 简介 AHP层次分析法是一种解决多目标复杂问题的定性和定量相结合进行计算决策权重的研究方法。该方法将定量分析与定性分析结合起来,用决策者的经验判断各衡量目标之间能…

【数字人】AIGC技术引领数字人革命:从制作到应用到全景解析

AIGC技术引领虚拟数字人革命:从制作到应用的全景解析 一、AIGC技术为虚拟数字人注入智能灵魂二、AIGC型虚拟人制作流程实例分析1、采集数据2、建模3、内容生成 三、AIGC在虚拟数字人应用中的案例分析四、总结与展望 在科技的浪潮中,AIGC(人工…

Ubuntu:VSCode中编译运行C++代码

版本:Ubuntu22.04.1 LTS 目录 1 安装VSCode并汉化 2 检查Ubuntu是否已经安装了 GCC 3 在VScode中安装C/C扩展 4 在VSCode中进行C/C配置 1 安装VSCode并汉化 安装VSCode(参考之前博客Ubuntu:安装VSCode_ubuntu vscode-CSDN博客&#xff…

Linux sort/uniq/wc

文章目录 1. sort 排序将线程ID从大到小排序 2.uniq 临近去重3.wc word cnt 统计 1. sort 排序 将线程ID从大到小排序 grep -v是反向筛选,利用USER,排除掉首行 awk是打印第1 2列 sort -n是代码以数值大小做排序,不加的话会以字符排序。 -k是…

Gitee和Git学习笔记

Gitee和Git指令 Gitee提交代码方法1 先将仓库clone到本地,修改后再push到 Gitee 的仓库方法2 本地初始化一个仓库,设置远程仓库地址后再做push 切换分支下载代码通过git clone克隆仓库通过下载 ZIP 的方式下载代码 Git提交指令 解决本地库同时关联GitHub…

(C语言入门)复合类型、内存管理

目录 复合类型(自定义类型) 概述: 结构体变量的定义和初始化: 结构体成员的使用: 结构体做函数参数: 结构体值传参: 结构体地址传参: 共用体(联合体)&…

测试人员如何做好工作量评估和风险把控?

今天想聊一聊关于测试工作量评估及需求进度把控的内容。 我个人觉得有时候评估测试工作量其实也挺难的,比如有的需求没有需求文档,只能靠自己对需求的理解去大概评估,有可能评估的工作量比实际需要的工作量会少点,对于每周进行迭…

【Index to Lectures or Courses】

文章目录 1 Speech / Course2 Material3 Basic knowledge and tools4 职位缩写你知道几个? 1 Speech / Course 《中国文化文概论》(武汉大学)【Paper material】【阅读笔记】【Reading Notes】(1)【Reading Notes】(…

Mybatis-plus中的分页操作

Mybatis-plus中的分页操作 1.导入Mybatis-plus依赖2.创建mybatis配置类3.参数 1.导入Mybatis-plus依赖 因为是一个springboot项目&#xff0c;其中的pom.xml文件内容如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns&q…

用于时空交通数据插补的多注意张量完成网络

用于时空交通数据插补的多注意张量完成网络 摘要:道路传感器在物联网(IoT)中的广泛部署可以实现细粒度的数据集成,这是数据驱动应用程序的基本需求。 由于网络通信不稳定、传感器故障等,不可避免地丢失和实质性异常的传感数据是不可避免的。最近的张量补全研究通过精确捕获…

提高 RAG 应用准确度,时下流行的 Reranker 了解一下?

检索增强生成&#xff08;RAG&#xff09;是一种新兴的 AI 技术栈&#xff0c;通过为大型语言模型&#xff08;LLM&#xff09;提供额外的“最新知识”来增强其能力。 基本的 RAG 应用包括四个关键技术组成部分&#xff1a; Embedding 模型&#xff1a;用于将外部文档和用户查询…

DDoS攻击类型与应对措施详解

攻击与防御简介 SYN Flood攻击 原理&#xff1a; SYN Flood攻击利用的是TCP协议的三次握手机制。在正常的TCP连接建立过程中&#xff0c;客户端发送一个SYN&#xff08;同步序列编号&#xff09;报文给服务器&#xff0c;服务器回应一个SYN-ACK&#xff08;同步和确认&#xf…

【HormonyOS4+NEXT】TypeScript基础语法详解

&#x1f64b;‍ 一日之际在于晨 ⭐本期内容&#xff1a;TypeScript基础语法详解 &#x1f3c6;系列专栏&#xff1a;鸿蒙HarmonyOS4NEXT&#xff1a;探索未来智能生态新纪元 文章目录 前言变量与类型函数类与接口类&#xff08;Class&#xff09;接口&#xff08;Interface&am…

Nginx常用配置,开箱即用

经常遇到Nginx安装和配置的问题。这里笔者将常用配置统统写在下面&#xff0c;方便咱们日常使用。这里本着开箱即用的原则&#xff0c;所以大多数时候不会解释为什么要这样去配置&#xff0c;也不涉及Nginx的安装步骤。下面的所有配置&#xff0c;都可以直接复制后粘贴使用&…

PTA L2-045 堆宝塔 (25 分)

堆宝塔游戏是让小朋友根据抓到的彩虹圈的直径大小&#xff0c;按照从大到小的顺序堆起宝塔。但彩虹圈不一定是按照直径的大小顺序抓到的。聪明宝宝采取的策略如下&#xff1a; 首先准备两根柱子&#xff0c;一根 A 柱串宝塔&#xff0c;一根 B 柱用于临时叠放。把第 1 块彩虹圈…

2024第二十一届五一数学建模A题思路 五一杯建模思路

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

Linux系统的引导过程与服务控制

目录 一、Linux操作系统引导过程 二、Linux系统服务控制 系统初始化进程 三、运行级别切换 *运行级别及切换 Linux系统的运行级别 四、优化开机自动加载服务 五、修复MBR扇区故障 一、Linux操作系统引导过程 主要步骤 开机自检&#xff1a; 检测硬件设备&#…