使用 InfluxDB 进行基础设施监控 | 现场演示
数据仓库
数据仓库是一种数据管理系统,支持商业智能,例如数据分析。数据仓库可帮助您对业务做出更明智的决策。
什么是数据仓库?
数据仓库是一种数据管理系统,支持商业智能,例如数据分析。数据仓库可帮助您对业务做出更明智的决策。
假设您想分析电子商务企业中的客户数据。您可以将该数据移动到仓库系统,然后通过商业智能工具运行它。
数据仓库流程可帮助您分析组织中所有系统和软件工具中存在的数据,例如
数据仓库用例
数据仓库有很多企业可以使用的用途。一般来说,它们可以被认为非常适合任何涉及 OLAP 风格工作负载 的情况。以下是数据仓库如何使用的一些具体示例。
数据可视化
数据可视化是数据仓库的常见用例,用于有效地创建数据随时间变化的视觉表示。任何想要促进数据探索和综合以生成有意义的商业洞察的数据仓库,都应该明智地将数据可视化作为其战略的一部分。
通过利用数据可视化的力量,数据仓库可以揭示以前不易见的数据趋势、异常和关系。这使企业不仅可以确定其洞察力所在,还可以立即使用这些洞察力来做出明智的决策并制定长期战略。数据可视化帮助数据仓库将原始数据转化为有价值的结论,从而提高绩效、盈利能力和整体成功率。
预测
数据仓库也用于创建 预测,以帮助进行长期规划。它们可以帮助商业领袖对其公司的未来做出明智的决策。例如,数据仓库可以提供对客户趋势和其他市场指标的洞察,这些洞察可用于创建有效的营销活动或为战略投资提供信息。另一个例子可能是帮助根据历史应用程序指标预测数据中心硬件需求。
数据分析
数据分析是数据仓库的另一种常见用途。数据分析工具用于从数据仓库中获取洞察。通过应用分析技术,可以发现可用于改进运营或识别机会领域的模式、相关性和其他趋势。数据分析师使用各种方法(例如统计分析、预测建模和机器学习)从数据中提取洞察。
数据仓库架构
数据仓库架构是指使数据仓库成为可能的技术和框架。
数据仓库架构可以包含以下组件
- 数据仓库是一个数据库,用于存储来自组织中不同数据源的信息。一些广泛使用的数据仓库包括 Amazon Redshift、Azure Synapse Analytics、Google BigQuery 和 IBM Db2 Warehouse。数据仓库可以自行管理在您自己的基础设施上,也可以使用云提供的托管解决方案 (DBaaS)。与所有数据库系统一样,可以通过 CAP 定理 的视角查看数据仓库性能,并且需要做出相应的权衡。
- ETL 工具从源中提取数据,将其转换为正确的分析格式,然后将其上传到仓库数据库。这些工具消除了构建手动大数据管道以将数据推送到仓库系统的需要。
- 元数据提供有关已移动到仓库的数据的描述,帮助您更有效地管理该数据。
虽然商业智能工具存在于仓库架构之外,但它们是数据仓库流程的关键组件。这些工具使您可以识别已移动到仓库的数据中的模式和趋势。商业智能工具的示例包括 Tableau、Looker 和 Microsoft Power BI。
数据仓库如何工作?
数据仓库的工作方式是将来自多个来源的数据存储和组织在中心位置,从而允许用户在单个统一位置跨整个数据集执行查询。通过抽象出来自多个不同位置的数据的复杂性,用户可以更有效率并从数据中获得更多价值。
以下是数据仓库如何工作以及数据在系统中移动的一般生命周期的高级概述。
数据摄取
数据仓库流程的第一步是从各种来源收集数据并将其加载到数据仓库中。这可能涉及从数据库、平面文件或其他来源提取数据,并将其转换为适合在数据仓库中存储的格式。ETL 部分将在下面更深入地介绍此过程。
数据存储
数据摄取后,将其存储在数据仓库中。数据仓库通常设计为存储大量数据,因此它们可能使用专门的存储技术,例如 列式数据库,以优化性能和可扩展性。它们通常利用 Apache Parquet 等存储格式来压缩数据并降低存储成本。Apache Arrow 也越来越被接受为一种有效处理存储在数据仓库中的分析数据的方式。
组织数据
数据仓库中的数据通常以易于查询和分析的方式组织。这可能涉及创建表和表之间的关系,以及定义索引和物化视图以提高查询性能。
查询数据
用户可以使用 SQL 或各种其他查询语言对数据仓库中存储的数据执行查询。数据仓库处理查询并将结果返回给用户。
数据分析
查询结果可以使用数据可视化工具进一步分析,或使用 Python 等编程语言进一步处理,以构建机器学习模型等。
数据仓库中的 ETL 是什么?
数据仓库是一个存储数据以进行报告和分析的系统。数据仓库通常用于存储来自多个来源的数据,包括运营数据库、事务系统和其他外部数据源。将数据加载到数据仓库的过程称为 ETL(提取、转换、加载)。数据仓库摄取是指将数据从这些各种来源移动到数据仓库的过程。
ETL 是一个三步过程
-
提取:ETL 的第一步是从源系统中提取数据。此数据通常存储在平面文件或关系数据库中。
-
转换:下一步是转换数据。这可能涉及清理数据、将其与其他数据集成以及对数据执行计算。
-
加载:ETL 的最后一步是将转换后的数据加载到目标系统,目标系统通常是关系数据库。
ETL 过程对于使用报告和分析所需的数据填充数据仓库至关重要。它是数据仓库架构的基础,使组织能够访问、转换和存储来自多个来源的大量数据。
使用数据仓库的优势
单一数据源
数据仓库为组织中的所有数据提供单一数据源。您无需在不同的系统和软件工具之间切换以查找数据,而是可以将其集中在仓库中以便于访问。因此,数据集成是仓库最流行的用例之一。
历史数据分析
通过商业智能工具运行仓库数据,您可以执行历史数据分析。例如,您可以研究一段时间内的市场或客户行为,并学习产生销售额和增加收入的新方法。
数据挖掘
数据仓库使您可以分析大量运营数据,以发现有益于企业的有价值信息。例如,您可以识别来自 时间序列数据库 的数据中的关系和相关性,从而改善组织问题并预测未来的业务成果。
改进的性能和成本效益
数据仓库针对海量数据上的分析工作负载进行了优化。这意味着它们不仅会提供您需要的性能,而且与尝试使用非专用工具相比,还可以为您节省资金。
分层存储是优化的一个示例,它允许快速回答查询,同时在可能的情况下通过对不经常请求的数据使用更便宜的存储来节省资金。
数据仓库中通常有三个存储层
- 热存储 - 热存储用于经常访问且需要快速查询的数据。这可能包括用于实时分析的数据或用于日常业务运营的数据。热存储使用高性能存储,例如固态驱动器 (SSD) 或 RAM。
- 温存储 - 温存储用于访问频率低于热存储数据但仍需要随时可用于查询的数据。这可能包括用于报告的数据或每周或每月访问的数据。温存储可以使用更快的存储介质(例如硬盘驱动器)来实现。通常,当从温存储中提取数据时,它将保留在热存储中,直到在一段时间未使用后被逐出。
- 冷存储 - 冷存储用于不经常访问且不需要立即用于查询的数据。这可能包括用于长期保留的数据或不经常用于临时分析的数据。冷存储可以使用成本较低的存储介质(例如磁带或对象存储)来实现。
数据仓库与数据湖:主要区别
数据仓库 | 数据湖 |
数据仓库包含结构化数据(以严格定义的字段格式化的数据,例如关系数据库中的数据),这些数据已从 CRM 系统和运营数据库等数据源中提取,并转换为数据分析的正确格式。 | 数据湖包含原始非结构化数据(未按照预设架构或模型排列的数据,例如音频、视频和图像),这些数据已从数据源中提取,但不一定已转换为分析的正确格式。(数据转换发生在数据湖内。) |
数据仓库通常存储较小的预格式化数据集。 | 数据湖可以处理大量原始数据集。 |
ETL 是最适合数据仓库的数据集成过程。 | ELT 是最适合数据湖的数据集成过程。 |
数据仓库与数据库:主要区别
数据仓库 | 数据库 |
数据仓库收集数据,允许用户执行数据分析。 | 数据库是为方便访问、存储和管理而收集的数据集合。 |
数据仓库包含来自多个数据源的数据。 | 数据库充当单一数据源。 |
数据仓库按列组织和存储数据。 | 数据库按行收集和存储数据。 |
数据仓库与数据集市
数据仓库 | 数据集市 |
数据仓库是一种从多个来源编译数据的数据管理系统。 | 数据集市是数据仓库的一种类型。 |
数据仓库通常大于 100GB。 | 数据集市通常小于 100GB。 |
数据仓库为整个企业服务。 | 数据集市为单个用户组(例如销售代表)服务。 |
数据仓库的类型
云数据仓库
云数据仓库是一种软件即服务 (SaaS) 产品,无需物理硬件或架构。您可以将数据移动到公共云,而不是将其保留在本地。
云数据仓库的一些优势包括增加数据存储容量、降低拥有成本、提高速度和增强性能。此外,这些仓库针对数据分析进行了优化,帮助您生成关于您组织的洞察。
最流行的云数据仓库包括 Amazon Redshift、Google BigQuery、Microsoft Azure 和 Snowflake。
数据仓库一体机
数据仓库一体机 (DWA) 是一种包含硬件和软件工具的打包系统,用于数据分析。您可以使用 DWA 构建本地数据仓库。这些系统可能包括数据库、服务器和操作系统。Teradata 和 Oracle Exadata 是 DWA 的示例。
随着数据驱动型企业转向公共云,DWA 变得越来越不常见。与 DWA 相比,基于云的数据仓库可以提供更高的可扩展性和性能,使其成为仓库架构的首选。
数据仓库的潜在挑战
当使用得当时,数据仓库提供了本文中已涵盖的许多优势,但这并不意味着它们是完美的。在本节中,我们将了解企业在实施和使用数据仓库时面临的一些常见挑战。
数据摄取
实施数据仓库的最大挑战之一是存储通常来自许多不同位置的数据。这可能是一个复杂的过程,因为数据可能以不同的格式和结构存储,并且在加载到数据仓库之前可能需要转换和清理。
数据质量
确保数据仓库中数据的质量和完整性也是一个重大挑战。这可能涉及识别和纠正数据中的错误和不一致之处,以及实施流程以确保数据保持准确和最新。
过去,数据仓库通常不是实时更新的,而是使用批处理定期更新仓库,这意味着陈旧数据可能成为问题,具体取决于用例。现代数据仓库通常可以处理流数据,因此这已不再是一个大问题。
可扩展性
随着数据仓库中数据量的增长,扩展数据仓库以满足不断增长的数据处理和存储需求可能变得具有挑战性。这可能需要投资额外的硬件或优化数据仓库的设计和配置以提高性能。理想情况下,您选择的数据仓库应开箱即用地支持分布式部署和横向扩展。
扩展问题可能是由于大量新数据写入或来自最终用户的查询数量过多造成的。许多现代数据仓库采用了计算与存储分离的架构,这有助于缓解此问题。
安全性
确保数据仓库的安全性至关重要,因为将大量数据全部存储在一个地方使其成为有价值的目标。一些潜在的安全策略包括实施数据加密、访问控制和监控等措施,以保护数据免受未经授权的访问或滥用。通过监控查询和数据访问模式进行异常检测等策略可以帮助尽早预防重大数据泄露。
用户采纳
另一个挑战可能是让用户采纳并有效地使用数据仓库。这可能涉及提供培训和支持,以帮助用户了解如何使用数据仓库并从数据中提取洞察。确保您的数据仓库轻松地与最终用户已在使用的工具集成对于获得采纳和减少摩擦至关重要。
正确地实施和使用数据仓库可能是一个复杂且耗时的过程,需要仔细的规划和管理以确保成功。重要的是仔细考虑您组织的具体需求和要求,并为项目分配足够的资源,以确保其成功。
数据仓库工具
下面我们将介绍一些可以用作数据仓库的项目,以及一些其他工具,这些工具可以用来帮助将数据移动到仓库中,并查询数据以进行分析。
Apache Hadoop
Apache Hadoop 是一个用于存储和处理大数据的开源软件框架。它旨在处理大量数据,包括结构化和非结构化数据。Hadoop 是可扩展的,这意味着它可以在小型或大型计算机集群上使用。Hadoop 可以用作数据仓库系统的组件。
Apache Presto
Presto 是一个开源 SQL 查询引擎,专为大型数据集上的交互式分析而设计。Presto 支持各种数据源,包括关系数据库、NoSQL 数据库和 HDFS。
Apache Spark
Apache Spark 是一个快速且灵活的数据处理引擎,用于大规模数据处理。它可以用于对存储在数据仓库中的数据执行数据转换和分析。Spark 通常用于 ETL 类型的工作负载,并与许多存储后端集成。
Superset
Apache Superset 是一个开源数据可视化和商业智能工具,允许用户根据数据仓库中的数据创建仪表板和交互式报告。它提供了一系列功能,例如 SQL 实验室和数据探索,使其适用于数据分析师和开发人员。
PowerBI
Power BI 是 Microsoft 的数据可视化和商业智能工具,允许用户根据数据仓库中的数据创建交互式仪表板和报告。它提供了一系列功能,例如数据建模和预测分析,使其适用于高级分析任务。
Metabase
Metabase 是一个开源数据可视化和商业智能工具,允许用户根据数据仓库中的数据创建交互式仪表板和报告。它易于使用,并提供一系列自定义选项,使其适用于业务用户和数据分析师。
Tableau
Tableau 是一个流行的数据可视化工具,允许用户根据数据仓库中的数据创建交互式图表、图形和仪表板。它提供了一系列自定义选项,可用于创建信息丰富且视觉上吸引人的可视化效果。
常见问题解答
数据仓库是 SQL 还是 NoSQL?
数据仓库可以是 SQL 数据库,也可以是 NoSQL 数据库,具体取决于用于实施它们的特定技术。应使用哪种数据库取决于使用它们的组织的具体需求和要求。一些组织可能会同时使用 SQL 和 NoSQL 数据仓库来存储和分析不同类型的数据。
SQL 数据仓库使用传统的、基于表格的关系数据库管理系统 (RDBMS) 来存储数据。这意味着数据被组织成带有行和列的表格,并且使用 SQL 编写查询来检索和操作数据。SQL 数据仓库通常用于结构化数据,例如来自事务系统的数据或遵循明确定义的模式的数据。
NoSQL 数据仓库使用非关系数据库管理系统来存储数据。NoSQL 数据库可以以各种格式存储数据,包括文档、键值对和图形。它们通常用于非结构化数据,例如来自社交媒体平台或传感器网络的数据。
数据湖仓与数据仓库
数据湖仓是一种混合数据管理系统,它结合了数据湖和数据仓库的功能。数据湖是一个集中式存储库,允许用户大规模存储和处理大量结构化和非结构化数据。数据仓库是一个专门为快速查询和分析大型数据集而设计的数据库。
数据仓库针对存储和查询结构化数据进行了优化,通常用于报告和商业智能任务。它通常使用传统的关系数据库管理系统 (RDBMS) 实现,并针对快速查询和分析结构化数据进行了优化。
数据湖仓和数据仓库之间的主要区别在于,数据湖仓旨在处理结构化和非结构化数据,而数据仓库通常用于存储和分析结构化数据。数据湖仓可以摄取和存储各种数据类型,包括日志文件、社交媒体数据和传感器数据,以及传统的结构化数据。这使其成为需要存储和分析各种数据类型的组织的理想选择。