从数据仓库到数据结构:数据架构的演变之路

在上个世纪,从电子商务巨头到医疗服务机构和政府部门,数据已成为每家组织的生命线。有效地收集和管理这些数据可以为组织提供宝贵的洞察力,以帮助决策,然而这是一项艰巨的任务。

尽管数据很重要,但CIOinsight声称,只有10%的组织认为自己擅长数据分析管理。组织认识到数据利用方面的这一重大缺口后,积极采用现代数据架构来缩小缺口。

数据架构是结构化的框架和系统,它们定义了如何在组织内组织、集成和访问数据。架构为数据及其在数据存储系统中的流动明确了蓝图,并确立了指导原则。

本文讨论了数据架构的演变、基本原则以及采用现代数据架构有效管理组织数据的优点。

数据架构的演变

多年来,数据架构不断发展,以适应不断增长的业务需求。下面讨论的一个值得注意的转变是数据架构由逻辑仓库向数据结构(Data Fabrics)转变。

1. 逻辑仓库

逻辑仓库又叫数据仓库,几十年来一直是数据管理的基础。这些数据仓库是中央存储库,旨在存储来自不同来源(比如事务系统、应用程序日志文件或关系数据库等)的数据,从而提供信息的统一视图。

通常,逻辑仓库使用提取、转换和加载(ETL)流程从源系统提取数据,对其进行转换以确保一致性,并加载到仓库中。逻辑仓库仅用于执行查询和分析,常常含有大量的历史数据。

逻辑仓库面临的挑战

虽然逻辑仓库发挥了其作用,但随着数据量增加,它们面临几个挑战。一些主要的限制包括如下:

  • 数据孤岛:逻辑仓库通常会导致数据孤岛,即不同的部门或团队会维护各自孤立的数据集,从而导致不一致和重复。
  • 性能:由于数据必须经过多个流程和阶段才能用于分析,这大大影响了数据仓库的性能。
  • 可扩展性:由于硬件限制,实施数据仓库既复杂又昂贵。它还需要数据建模、ETL流程和数据库管理方面的专业知识,因而更难处理急剧增加的数据。

2. 数据湖

为了应对数据仓库的挑战,数据湖架构在2010年被引入。虽然数据湖架构与数据仓库非常相似,但两者的不同之处在于数据湖还适用于半结构化数据和非结构化数据。

数据湖以自然或原始格式存储大量数据的功能帮助我们:

  • 使用来自多个数据源的数据,不用考虑数据类型(非结构化、半结构化、结构化);
  • 创建数据的重点部分,以满足特定用例的需求;
  • 利用先进的分析和机器学习技术发现新的洞察力,而不受预定义模式的限制。

数据湖面临的挑战

数据湖的这种开放格式特性使其比数据仓库更受欢迎。然而,数据湖带来了挑战,因为没有严格标准化而摄取的数据导致数据库中出现不一致。此外,存储在数据湖中的数据需要大量的转换和集成工作,然后才能用于复杂又耗时的分析。

3. 数据网格

数据网格架构是一种新兴的方法,它为中央数据湖架构提供了另一种选择。数据网格是由Zhamak Dehghani在2019年创造的,这种分散的数据架构按特定的业务领域组织数据。

通过引入面向领域的数据所有权,负责各领域的团队对其数据和产品负责,从而提高数据质量和治理。

传统的数据湖在处理大量数据时常常遇到可扩展性和性能方面的挑战。然而,数据网格架构通过其分散的自助式数据基础设施解决了这些可扩展性问题。

由于每个领域都可以自主地选择最适合其需求的技术和工具,数据网格允许团队独立地扩展其数据存储和处理系统。

4. 数据结构

数据结构是一种自适应、灵活又安全的集成式数据架构。它是一种架构方法和技术框架,通过提供跨各种数据源的统一集成数据视图来解决数据湖挑战。

通过应对数据集成、转换和移动中涉及的技术复杂性,数据结构允许更快速、更有效地访问数据,以便任何人都可以使用它。

现代数据架构原则

据Dataversity声称,数据架构原则指一系列策略,以监管用于收集、集成和管理数据资产的企业数据框架和操作规则。这些原则帮助我们创建一致、可靠又高效的数据架构,使其与组织的目标和目的保持一致。

为了有效地利用数据作为一种有竞争力的资产,以下是需要遵循的几个常见现代数据架构原则:

  • 数据质量(DQ):数据质量对于任何数据架构都必不可少;建立数据质量标准和流程可确保数据的准确性、完整性和可靠性。数据质量原则指导我们实施数据分析、清理和验证技术,以立即识别和纠正数据问题,从而避免低劣的数据质量。有效管理和可靠的数据对于开发准确模型和可靠模式以提取宝贵的洞察力至关重要。
  • 数据治理(DG):Experian数据质量报告表明,全球78%的组织受到数据治理不善的困扰,这导致人们对数据和从数据获得的洞察力产生不信任。数据治理告诉我们,在数据生命周期的任何时候,数据消费者都应该知道数据的位置、格式、使用关系以及与数据相关的任何其他相关信息,以避免数据债务。数据治理与数据质量密切相关,使数据架构能够确保数据完整性,并提高数据质量。
  • 争取确保一致性:这条数据原则强调面对整个组织的所有数据结构、格式和流程,确保一致性。使用标准术语和词汇表可以确保数据在不同系统之间定义一致,从而使开发人员和非开发人员更容易就同一项目进行协作。跨组织数据表示的一致性为团队提供了“事实的单一版本”,从而使数据和数据分析易于被公司内的广泛用户理解。
  • 使数据成为可共享的资产:使数据成为可共享的资产强调我们将数据视为一种有价值的资源,可以在不同的系统之间共享和访问。该原则旨在消除数据孤岛,并鼓励设计有助于高效共享数据的数据架构。这么做确保所有利益相关者全面了解公司及数据,以便于合作和明智的决策。
  • 数据安全和隐私:现代数据架构必须确保数据的机密性和完整性,同时保护敏感信息免遭未经授权的访问、破坏或滥用。

现代数据架构的特点

下面讨论现代数据架构的一些特点:

  • 自动化:现代数据架构使用自动化的流程、工具和技术,以优化与数据相关的任务和操作。与传统系统不同,现代数据架构可以使用基于云的工具在数小时或数天内构建好复杂的流程。
  • 适应性:现代数据架构必须灵活,以响应不断变化的业务需求。它必须支持多种类型的用户、查询操作和部署、数据处理引擎以及管道等。
  • 可扩展性:可扩展性是现代数据架构的一个关键特点,它允许我们在业务需求发生变化时快速且经济地扩展或缩小规模。
  • 具有成本效益:利用可扩展基础设施的现代数据架构使我们得以轻松地适应未来不断增长的需求,无需一开始过度购买硬件。此外,现代数据架构有时采用“按需付费模式”的云计算平台,这样我们只需为实际使用的资源付费。

现代数据架构的好处

在讨论了现代数据架构及其特点之后,下面讨论现代数据架构给企业和组织带来的好处。

  • 提供全面的公司视图:由于数据集成可以实现来自组织内各种数据源和系统的数据无缝集成,因而可以一致地收集和存储数据。这种集成确保了任何时候的数据都能提供公司的全面视图,即“事实的单一来源”。
  • 减少冗余:通过收集和协调不同的数据和数据源,数据集成减少了组织中数据字段的重叠。
  • 改进的数据质量:现代数据架构包含数据清理和验证、数据标准化、数据质量监控和修复等技术,以确保数据可靠性。

结论

数据在组织中越来越重要,这推动了数据架构的发展。从传统的数据仓库到现代的数据网格和数据结构方法,这些架构解决了特定的挑战,带来了新的机遇。

通过采用现代数据架构,组织可以得益于改进的数据质量和全面的数据洞察力,从而全面释放数据的潜力,并在当今世界保持竞争力。

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

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

相关文章

那些年的Java开发经验记录

Java同步锁(浅显易懂,精简讲解) 详细讲解可以看这篇文章Java对象锁和类锁全面解析(多线程synchronized关键字) 精简如下: 1.不管什么锁,都是属于对象锁(类也是一种对象) 2.一个对象只有一个锁 3.锁最大可以锁整个…

【框架类】—Vue3的生命周期

一、生命周期的相关函数 onBeforeMount 页面渲染之前 和 onMounted渲染之后 示例 <template><div class"test"><div ref"el">组件初始化</div></div> </template> <script> //按需引入所需方法 import { ref,…

Redux - Redux在React函数式组件中的基本使用

文章目录 一&#xff0c;简介二&#xff0c;安装三&#xff0c;三大核心概念Store、Action、Reducer3.1 Store3.2 Reducer3.3 Action 四&#xff0c;开始函数式组件中使用4.1&#xff0c;引入store4.1&#xff0c;store.getState()方法4.3&#xff0c;store.dispatch()方法4.4&…

04-4_Qt 5.9 C++开发指南_时间日期与定时器

文章目录 1. 时间日期相关的类2. 源码2.1 可视化UI设计2.2 dialog.h2.3 dialog.cpp 1. 时间日期相关的类 时间日期是经常遇到的数据类型&#xff0c;Qt 中时间日期类型的类如下。 QTime:时间数据类型&#xff0c;仅表示时间&#xff0c;如 15:23:13。 QDate:日期数据类型&…

虹科方案 | 汽车总线协议转换解决方案

汽车总线&#xff1a; 汽车总线是一种用于在车辆电子系统中传输数据和控制信息的通信系统。它允许不同的电子控制单元&#xff08;ECU&#xff09;在车辆中相互通信&#xff0c;协调各个系统的操作&#xff0c;以实现功能的集成和协同工作。 在现代汽车中&#xff0c;综合通信…

微信公众号模板消息推送测试Python版无需服务器-保姆级教程

手上有个项目&#xff0c;是服务器挂着自动化的爬虫的&#xff0c;但我用的那个IP代理商没有用尽报警&#xff0c;导致几次IP用尽&#xff0c;程序爬不到数据&#xff0c;进程死循环了。之前想过发邮箱提醒我&#xff0c;但是邮箱把又不及时&#xff0c;老忘记看&#xff0c;因…

C语言必会题目(1)

W...Y的主页 &#x1f60a; 代码仓库分享❤️ 在学习语言时&#xff0c;最重要的就是练习&#xff0c;光听不练假把式。下面我就推荐一些C语言必会的题。 执行下面程序&#xff0c;正确的输出是&#xff08; &#xff09; int x5,y7; void swap() { int z; zx; xy; yz; } int…

数字孪生三剑客来了!MapGIS Earth for Unreal的自述

嗨&#xff0c;大家好&#xff01;我的名字叫MapGIS Earth for Unreal&#xff0c;是MapGIS数字孪生平台产品家族的一员。提起我&#xff0c;大家可能不熟悉&#xff0c;但是提起数字孪生&#xff0c;想必大家倍感兴趣。 数字孪生是充分利用物理模型、传感器更新、运行历史等数…

【git】解决遇到的问题

目录 一、error: RPC failed; curl 6 OpenSSL SSL_read: Connection was reset, errno 10054 二、error: RPC failed; curl 6 OpenSSL SSL_read: Connection was reset, errno 10054 一、error: RPC failed; curl 6 OpenSSL SSL_read: Connection was reset, errno 10054 报…

2023最新Windows编译ffmpeg详细教程,附msys2详细安装配置教程

安装MSYS2 msys2是一款跨平台编译套件&#xff0c;它模拟linux编译环境&#xff0c;支持整合mingw32和mingw64&#xff0c;能很方便的在windows上对一些开源的linux工程进行编译运行。 类似的跨平台编译套件有&#xff1a;msys&#xff0c;cygwin&#xff0c;mingw 优势&…

MySQL8的特性-MySQL8知识详解

MySQL是一个多用户、多线程的SQL数据库服务器。SQL&#xff08;结构化查询语言&#xff09;是世界上最流行和标准化的数据库语言。下面是MySQL的特性。 1、开源性&#xff1a;MySQL是一个开源的关系型数据库管理系统&#xff0c;可以免费使用和修改。 2、可靠性&#xff1a;M…

DOCKER的容器

1. 什么是Container&#xff08;容器&#xff09; 要有Container首先要有Image&#xff0c;也就是说Container是通过image创建的。 Container是在原先的Image之上新加的一层&#xff0c;称作Container layer&#xff0c;这一层是可读可写的&#xff08;Image是只读的&#xff0…

TOMCAT部署及优化(Tomcat配置文件参数优化,Java虚拟机(JVM)调优)

TOMCAT tomcat &#xff1a;是一个开放源代码的web应用服务器&#xff0c;基于java代码开发的。也可以理解为tomacat就是处理动态请求和基于java代码的页面开发。可以在html当中写入java代码&#xff0c;tomcat可以解析html页面当中的java&#xff0c;执行动态请求&#xff0c;…

Nvm安装与使用

【1】nvm下载地址 https://github.com/coreybutler/nvm-windows/releases 选择的是nvm-setup.exe 【2】安装nvm 打开cmd&#xff0c;输入命令nvm -v 查看nvm版本&#xff0c;出现如下界面说明成功 【3】nodejs 安装与管理 打开CMD命令&#xff0c;以管理员权限运行 1、…

如何维护自己的电脑

目录 1、关于电脑选择的建议 1.1、价格预算 1.2、明确需求 1.3、电脑配置 1.4、分辨率 1.5、续航能力 1.6、品牌选择 1.7、用户评测 1.8、各个电商平台对比 1.9、最后决策 2、我的选择 3、电脑保养 3.1 外部清洁 3.2 安装软件 3.3 优化操作系统 3.4 维护硬件设…

那些年的golang开发经验记录

goland 问题CreateProcess error216, 该版本的 %1 与你运行的 Windows 版本不兼容。请查看计算机的系统信息&#xff0c;然后联系软件发布者 Cannot run program "......" (in directory "D:\project\go\awesomeProject\src\test"): CreateProcess error2…

Linux系列:从0到1用Docker部署springboot项目

目录 1.前提条件 2.编写DockerFile镜像文件 3.打包SpringBoot项目 4.通过软件Xftp进行传输&#xff08;*&#xff09; 1.点击“文件-新建”​编辑 5.操作远程主机 1.docker构建 2.容器运行 6.容器的关闭和删除 1.前提条件 Linux、docker、xftp的安装、一台可以访问的远…

GIL 锁或将在 CPython 中成为可选项

哈喽大家好&#xff0c;我是咸鱼 几天前有媒体报道称&#xff0c;经过多次辩论&#xff0c;Python 指导委员会打算批准通过 PEP 703 提案&#xff0c;让 GIL&#xff08;全局解释器&#xff09;锁在 CPython 中成为一个可选项 PEP 703 提案主要目标是使 GIL 变成可选项&#…

flink如何监听kafka主题配置变更

背景&#xff1a; 从前一篇文章我们知道flink消费kafka主题时是采用的手动assign指定分区的方式&#xff0c;这种消费方式是不处理主题的rebalance操作的&#xff0c;也就是消费者组中即使有消费者退出或者进入也是不会触发消费者所消费的分区的&#xff0c;那么疑问就来了&am…