数据库 频道

晓谈数据工程2-数据存储

这是数据工程概念系列10部分中的第2部分。在这一部分中,我们将讨论数据存储。

内容:

1.数据仓库

2.数据湖

3.数据Lakehouse

4.数据网格

5.数据虚拟化

6.DataFabric

数据工程概念:第1部分,数据建模

什么是数据仓库

数据仓库是指从不同相关来源收集数据并在进行必要的转换以使数据适合分析后将其存储到中央存储库的过程。

数据仓库解决方案:

  • AzureSynapseAnalytics

  • AmazonRedshift

  • GoogleBigQuery

数据仓库的特点

1.历史数据存储

数据库只存储当前数据,那么观察数据随时间变化的趋势是很困难的,因此我们需要将历史数据存储在数据仓库中,我们可以用它来制作数据驱动的业务决策。

示例:在零售业务中,数据仓库可以存储前几年的销售数据,使分析师能够跟踪一段时间内的趋势,并为未来的销售策略做出明智的决策。

2.集成

可以将来自多个来源和格式的数据集成到单一版本的事实中,从而使数据更加明确并具有结构良好的模式。

示例:医疗保健企业可以将电子健康记录、实验室系统和计费系统中的患者数据集成到数据仓库中。这种集成提供了患者信息的全面视图,以改善护理协调和决策。

3.数据质量

数据仓库在应用一定的转换后存储数据,这些转换涉及数据清理、验证和规范化,以使其兼容且易于分析团队访问。

示例:在金融机构中,交易可能以不同的货币进行,因此需要标准化才能进行比较。

4.数据安全

数据仓库的访问仅限于获得授权的人员,并且有多种加密和审核机制来识别任何欺诈活动。

示例:在教育系统中,有关学生表现或SSN号码和个人详细信息的敏感信息需要加密,以防止危害其安全的攻击造成伤害。

有两种非常著名的数据仓库架构:

Inmon数据仓库架构

数据仓库之父BillInmon相信统一的信息源是非冗余的、干净的、结构化的,因此必须以3NF规范化格式存储。

Inmon的方法是一种自上而下的方法,其中数据仓库被分解为代表公司中不同系统(产品、销售、人力资源和财务)的部门数据集市,并且数据根据其特定需求进行划分。

中央数据仓库称为企业数据仓库。这确保了所有系统的数据完整性和一致性。

优点:

1.在创建之前所有部门都同意单一事实来源

2.易于通过规范化进行建模并保留在3NF中,因此无需重新建模

3.由于缺乏重复而存储较少,并且冲突值的风险非常低。

缺点:

1.由于标准化,连接较多,报告和查询速度慢。

2.组织数据并决定在企业数据仓库中应用哪些业务规则的大量前期工作。

3.不同部门的数据整合分析困难。

示例:在制造业中,与库存、工时、销售、产品相关的数据都是相互关联的,因此这里使用Inmon方法的集中式数据存储是有意义的。

Kimball数据仓库架构

这种架构是由RalphKimball提出的,他专注于根据特定的业务需求通过维度数据建模来创建数据集市,然后一旦所有数据都加载到数据集市中,它们就会在数据仓库内进行组合。

它是一种底层方法,首先根据关键业务流程和问题分析数据的关键特征,然后进行相关的ETL并存储到星型或雪花模式中。

优点:

1.快速、增量地构建数据仓库,以便用户参与设计过程,从而快速生成报告。

2、优先选择非规范化版本,提高用户查询效率。

3、星型模式灵活、可扩展,可以适应业务的变化。

缺点:

1.由于非规范化,ETL比较复杂,因此会比较耗时。

2.数据在不同的数据集市中会出现冗余,并且可能存在相互矛盾的事实。

3.由于增量开发工作,维护会很困难。

示例:营销是一个专业领域,需要查看某些信息而不是整体视图,因此在这种情况下,Kimball架构将是合适的。

什么是数据湖

数据湖是一种数据存储,它将所有结构化、半非结构化数据和结构化数据保存在一个集中存储库中,并以其原始格式存储数据,无需任何预处理。需要为数据元素创建唯一的标识符和标签,以便可以查询部分数据以满足您的分析需求。

这些提供了非常好的可扩展性,适合需要使用原始格式并执行分析以获得业务见解的数据科学家和数据工程师。数据湖是模式读取(只需在检索数据时定义模式),并且由于无需转换,因此在存储保质期和快速实施方面更具成本效益。数据仓库可以将历史数据归档到数据湖中,使其查询更快、更优化。

数据湖将支持不同类型的连接器,这些连接器支持数据的批量和流式摄取,并提供控制哪些数据进入数据湖以及如何管理数据的治理功能。

示例:在供应链中,供应商的详细信息可能隐藏在多个系统中,很难发现任何问题或查明问题。如果我们使用数据湖中的数据,从供应商数据、内部订单和托运人数据等内部来源以及天气预报等外部数据源收集信息,那么我们就可以识别延误原因和瓶颈。

数据湖解决方案:

  • AzureDataLake

  • AmazonS3

  • ApacheHadoop

什么是数据湖屋

数据湖屋是数据湖的灵活性和通过事务层促进的数据仓库管理的结合,该事务层负责确保ACID合规性(原子、一致、隔离和持久)以及使用数据格式的并发读取和写入如Parquet、ORC和Avro。ACID合规性支持数据治理和隐私法规以及高效访问。

数据湖屋还提供添加元数据、缓存和索引的功能,从而实现性能、可访问性和可用性的优化。此外,可以通过SparkSQL和其他数据帧API等工具使用数据,以满足构建机器学习管道和BI报告的要求。

示例:一家电子商务公司从其网站、移动应用程序、社交媒体平台、客户支持互动和第三方供应商收集数据。通过数据湖屋架构,公司可以将这些不同的数据集提取到一个集中存储库中,该存储库将数据湖的可扩展性和灵活性与数据仓库的结构化查询和ACID事务结合起来。

通过利用数据湖站,电子商务公司可以获得有关客户行为、产品性能、营销有效性和运营效率的宝贵见解。

数据湖屋解决方案:

  • DeltaLakebyDatabricks

  • ApacheIceBerg

  • ApacheHudi

什么是数据网格

数据网格架构是一种将数据划分为特定领域产品和所有权的范式。每个领域负责自己的产品,并且可以拥有适合其数据的数据模型和基础设施。每个数据产品都应该采用以用户为中心的设计和定义良好的交互界面来构建。

治理分布在各个团队中,每个团队都有责任根据一系列全球政策和行业法规使其数据产品可靠、可互操作和可用。

示例:例如一个拥有多个业务部门的大型零售组织,包括电子商务、营销、供应链和财务。在数据网格架构中,每个业务单元作为一个单独的数据域运行,负责管理自己的数据资产。

通过分散数据所有权和治理,每个领域都可以优化其数据资产,以满足其业务部门的特定需求,同时促进整个组织的数据共享和协作。

数据网格解决方案:

  • GoogleCloudBigQuery

  • AzureSynapseAnalytics

  • AWSS3andAthena

  • dbtandSnowflake

什么是数据虚拟化

传统的数据架构在近三十年中一直表现良好,但随着行业数据量呈指数级增长,需要复制数据的传统方法变得更加困难。

为了解决这个问题,开发了数据虚拟化来允许访问数据源,而无需将它们收集到集中存储中。设计了一个抽象层,使用户能够通过API以及相关元数据和目录获取数据,这将有助于区分特定业务定义的数据。

此外,该中间件提供治理和访问权限,以确保移动数据的安全。

示例:世界领先的制药和生物技术公司辉瑞(Pfizer)使用TIBCO的数据虚拟化软件来加快向其研究人员提供数据的速度。过去,该公司使用传统的ETL数据集成方法,经常导致数据过时。通过数据虚拟化,辉瑞成功地将项目开发时间缩短了50%。除了快速数据检索和传输之外,该公司还标准化产品数据,以确保所有研究和医疗单位的产品信息的一致性。

什么是数据编织

DataFabric是一种架构,旨在创建一个统一的生态系统,涉及将不同数据源、服务和应用程序集成和编排到一个集中存储中。它基于数据虚拟化的概念,具有内置的人工智能和机器学习功能,以推动数据的映射和编目。

元数据是一种由AI/ML算法支持的主动格式,创建知识图是为了找出不同数据元素之间的关系。推荐引擎将使用AI通过分析元数据来预测数据摄取和管理需求,DataOps将根据需要重用数据管道并处理数据。

示例:Domino模型隐含地依赖于来自多个源的多种类型的数据。为了集成和统一分布式数据,Domino实施了数据编织。该数据架构使Domino's能够在整个数据生命周期(从销售点系统到供应链中心以及所有营销工作)中实施端到端跟踪。

0
相关文章