什么是数据仓库?
首先,让我们定义什么是数据仓库,以及为何组织最好使用数据仓库。
数据仓库是一个集中式存储库,用于存储结构化数据(数据库表、Excel 工作表)和半结构化数据(XML 文件、网页),以便进行报告和分析。数据从各种源(如销售点系统、业务应用程序和 关系数据库)流入,通常会在到达仓库之前进行清理和标准化。由于数据仓库可以存储大量信息,因此用户可以轻松访问大量历史数据,这些数据可用于数据挖掘、数据可视化和其他形式的商业智能报告。
数据仓库的优势
可靠数据(尤其是在随着时间推移进行聚合时),可帮助用户做出更智能、更明智的决策以决定其组织运行的方式,正是数据仓库使之成为可能。企业数据仓库优势众多,其中一些影响最大的优势包括:
-
将来自多个源的数据合并到单一可靠源
-
存储和分析跨月份和年份的长期历史数据
-
清理和转换数据,使其在结构和窗体中准确、一致且标准化
-
减少收集数据和处理分析时的查询时间,从而提高系统整体性能
-
高效加载数据,而无需处理部署或基础结构的成本问题
-
保护数据,确保其私密、受保护且安全
-
准备数据以通过数据挖掘、可视化工具和其他形式的高级分析方法进行分析
数据仓库与数据湖
显然,数据仓库对于任何组织的分析操作都是必不可少的。但数据仓库与其他类型的数据存储库(如数据湖)有何区别? 何时应使用其中一个而不是另一个?
作为存储库,数据仓库和数据湖都能存储和处理数据。然而,尽管它们似乎提供了相同的功能,它们各自都有自己的特定用例。正因如此,组织通常会将两者相结合,以形成可以实现各种用途的完整端到端解决方案。
数据仓库在本质上是关系仓库。这意味着数据的结构或架构由预定义的业务和产品需求决定,这些需求针对 SQL 查询操作进行了特选、配合和优化。因此,数据仓库最适合用于存储已出于特定目的处理的数据,例如用于 BI 分析的数据挖掘,或用于查找已标识的业务用例。
与数据仓库一样,数据湖包含结构化和半结构化数据。此外,还能够容纳来自各种非关系型源(包括移动应用、IoT 设备、社交媒体或流式传输)的原始数据和未处理的数据。这是因为数据湖中的结构或架构在数据被读取之前并没有定义。由于数据湖具有灵活、可缩放的性质,通常被用于执行智能形式的数据分析,例如机器学习。
数据湖 | 数据仓库 | |
---|---|---|
类型 | 结构化、半结构化、非结构化 | 结构化 |
架构 | 基于读取的架构 | 基于写入的架构 |
格式 | 原始、未筛选 | 已处理、已审核 |
源 | 大数据、IoT、社交媒体、流数据 | 应用程序、业务、事务数据、批处理报告 |
可伸缩性 | 轻松缩放,成本低 | 完成缩放很困难且成本高昂 |
用户 | 数据科学家、数据工程师 | 数据仓库专业人员、业务分析师 |
用例 | 机器学习、预测分析、实时分析 | 核心报告、BI |
数据仓库体系结构和设计
现在,你已了解为何以及何时应使用数据仓库,接下来让我们通过查看数据仓库设计来深入了解数据仓库的工作原理。数据仓库不仅仅是一个自行操作的接收器。它更是一个高度结构化的、精心构建的系统,由多层组成,这些层以不同的方式与数据交互并彼此交互。通常,这些层包括:
下层
数据由多个源引入,然后进行清理和转换,以便其他应用程序在提取、转换和加载 (ETL) 的进程中使用。下层也是存储和优化数据的位置,这样可以缩短查询时间并提高整体性能。
中间层
这里就是分析引擎,也被称为联机分析处理 (OLAP) 服务器。OLAP 服务器从数据仓库中高速访问大量数据,从而产生快如闪电的结果。
顶层
在顶层,前端接口以可视化形式呈现已处理的数据,分析师可以访问并使用这些数据来满足他们所有的报告和自助式 BI 需求。
如何构建数据仓库
在设计和构建数据仓库时,请务必考虑组织的长期和临时目标,以及数据的性质。要集成多少个数据源? 是否计划自动执行工作流? 如何浏览和分析数据? 具体构建将因需求的复杂性而异,但典型的企业数据库仓库可能由以下部分构成:
- 数据源,负责提取销售点系统、业务应用程序和其他关系数据库中的操作数据
- 暂存区域,其中的数据被清理并转换到仓库或集中式存储库中
- 仓库或集中式存储库,负责存储处理后的操作数据、元数据、摘要数据和原始数据,以便用户访问
- 添加数据市场,即可从集中式存储库中获取数据,并将其以子集的形式提供给所选用户组
- 沙盒,数据科学家可用其在受保护的环境中测试新的数据探索形式
- 各种数据仓库工具、框架和 API,用于集成、存储、性能提升和分析
数据仓库工具、软件和资源
在当今以数据为中心的世界,许多大型软件公司都拥有一系列看似无穷尽的数据仓库软件,每个软件都有其特定用例。这看起来可能令人生畏,但为了构建一个统一的高性能解决方案,就需要投资正确的工具和技术。每个组织的需求各不相同,但下面提供了一些基本数据仓库产品供你查看:
云和混合云数据仓库
基于云的统一数据仓库解决方案(例如 Azure Synapse Analytics),使组织能够以更快的速度和更低的成本进行缩放、计算和存储。
数据集成工具
ETL 管道使用户能够创建、计划和协调其工作流,以实现源数据的自动集成、清理和标准化。
对象存储
对象存储解决方案可以保存大量结构化、半结构化和非结构化数据,因此非常适合在将源数据加载到仓库之前将其暂存。
仓库工具
分布式存储解决方案能在具有列式存储的关系表中保存大量数据。这大大降低了成本,提高了查询性能,并缩短了获取见解的时间。
性能工具
若要提高应用程序的性能,建议整合 Apache Spark,这是一种支持内存中处理的开源并行处理框架。
资源和工作负载管理
资源管理器将计算能力分配给工作负载,以便你可以相应地加载、分析、管理和导出数据。
数据建模
数据建模将多个数据源合并为单个语义模型,从而提供结构化且精简的数据视图。
商业智能工具
商业分析工具可帮助用户以仪表板、报表和其他可视化工具的形式向用户提供见解。
安全和隐私功能
数据加密、用户身份验证和访问监视等安全性和合规性功能可确保数据受到保护。
Azure SQL 数据仓库有什么变化?
与 Azure SQL 数据仓库相关的功能现在是 Azure Synapse Analytics 的一项功能,名为专用 SQL 池。现有 Azure SQL 数据仓库客户可以使用 Azure Synapse Analytics 中的专用 SQL 池功能继续运行其现有的 Azure SQL 数据仓库工作负载,而无需进行任何更改。客户还可以使用 Azure Synapse Analytics 开始管理其现有仓库数据,利用无服务器数据湖探索、集成式 SQL 和 Apache Spark™ 引擎等高级分析功能。
常见问题解答
-
数据仓库是一个集中式存储库,用于保存结构化数据(数据库表、Excel 工作表)和半结构化数据(XML 文件、网页),以便进行报告、分析和其他形式的商业智能。
-
使用数据仓库有诸多好处。例如,数据仓库将多个数据源合并到单一可靠源中,组织即可使用该数据源做出更明智的业务和运营决策。
-
数据仓库存储结构化和半结构化数据,可用于数据挖掘、数据可视化和其他特定 BI 用例。数据湖则会存储各种类型的原始数据,数据科学家随后可将这些原始数据用作各种项目的数据来源。
-
数据仓库通常由多层组成:下层收集和存储数据;中间层分析据;顶层显示数据供用户访问和分析。
-
在设计和构建数据仓库基础结构时,请务必考虑数据的性质以及要如何对其进行转换。典型构建的一些常见元素包括数据源、暂存区域、仓库本身、数据市场、沙盒和各种集成工具。
-
许多大型软件公司现在都拥有多种数据仓库产品。
-
这些功能现在是 Azure Synapse Analytics 的一项功能,名为专用 SQL 池。现有的 Azure SQL 数据仓库客户无需进行任何更改即可继续运行其工作负载。