预计到2025年,全球数据量将增长至180ZB,企业必须处理两个主要问题——在哪里存储数据以及如何使用数据。数据仓库自20世纪80年代以来就已经存在,并且其功能不断扩展,可以帮助应对这两个挑战。然而,根据独立市场研究公司VansonBourne的研究,无论技术成熟度如何,而且数据仓库通常由专家开发,失败项目的比例仍然高居不下。
在本文中,我们将通过概述数据仓库设计和数据仓库开发步骤的两种基本方法来深入探讨数据仓库实现的细节。
什么是数据仓库以及为什么要构建数据仓库?
数据仓库是一个系统,它以适合分析查询和报告的形式整合和存储来自不同来源的企业信息,以支持商业智能和数据分析计划。这种存储库的成功实施能够带来多种好处,包括:
- 以业务发展速度做出的基于事实的决策,因为最终用户可以轻松访问和使用公司的历史信息以及从不同异构系统收集的当前信息。
- 基于高质量信息的决策,因为数据在进入数据仓库之前会经过全面的清洗和转换过程。除此之外,许多数据管理活动变得自动化,这有助于消除容易出错的手动数据聚合。
- 当数据仓库与自助式BI解决方案(例如PowerBI或Tableau)集成时,数据文化自然会在整个公司中采用。
- 由于统一的数据治理方法,除了其他方面意味着数据安全策略的可靠定义和管理之外,数据泄露和泄漏的风险也被最小化。
数据仓库架构的3个核心组件
当创建未来数据仓库的架构时,必须考虑多种因素,例如有多少数据源将连接到数据仓库、每个数据源中的信息量及其性质和复杂性、分析目标、现有技术环境等。然而,说每个架构都是独一无二的是错误的,因为实际上每个架构都具有以下三个组件:
- 源系统——捕获交易的操作数据库、物联网设备流传感器数据、SaaS应用程序、外部数据源等。
- 数据暂存区域–临时托管复制数据的区域和一组流程,可帮助加载到数据仓库之前根据业务定义的规则清理和转换数据。有了暂存区,就可以拥有原始数据的历史记录,以防ETL作业失败。通常,一旦ETL作业成功完成,暂存区中的信息就会被删除。但是,仍可以出于遗留原因将其保存一段时间或存档。如果所有数据转换都发生在数据仓库数据库本身中,则可以省略该区域。
- 数据存储–为特定部门或业务线创建的公司范围信息和数据集市的数据仓库数据库。
除了这些内容之外,企业数据仓库解决方案还包含数据治理和元数据管理组件。扩展数据仓库环境还可以包括OLAP立方体(存储聚合数据以实现交互式查询的多维数据结构)和数据访问层(供最终用户访问和操作所存储信息的工具和应用程序)。然而,这些内容是更大的生态系统(BI架构)的一部分,因此我们不会在这里探讨它们。
使用Itransition构建高性能数据仓库
构建数据仓库的方法
用于构建数据仓库的两种基本设计方法是Inmon(自上而下)和Kimball(自下而上)方法。
Inmon的方法
在Inmon的方法中,首先,根据规范化数据模型设计企业信息的集中存储库,其中原子数据存储在表中,这些表借助联接按主题领域分组在一起。企业数据仓库建成后,存储的数据用于构建数据集市。
当需要执行以下操作时,Inmon的方法更为可取:
- 获取单一事实来源,同时确保数据一致性、准确性和可靠性
- 快速开发数据集市,无需重复从原始来源提取数据、清理等。
然而,该方法的主要限制之一是,与Kimball的方法相比,设置和实施需要更多的时间和资源。
图片
Kimball的方法
Kimball的方法建议首先创建维度数据集市,然后如果需要,公司可以继续创建逻辑企业数据仓库。
这种方法的倡导者指出,由于维度数据集市需要最少的规范化,因此此类数据仓库项目需要更少的时间和资源。另一方面,可能会在表中发现重复数据,并且必须重复ETL活动,因为每个数据集市都是独立创建的。
图片
尽管这两种方法可能看起来相当不同,但它们可以很好地互补,结合两种设计方法原理的替代方法的出现证明了这一点。
构建数据仓库的分步指南
通常的做法是通过全面的准备情况评估来启动数据仓库计划。在评估数据仓库项目的准备情况时,请考虑以下因素:
- 拥有强大的业务支持者——有影响力的管理者,他们可以预见该计划的潜力并帮助推广它。
- 业务动机——数据仓库是否可以帮助解决一些关键业务问题。
- 目前整个公司的数据成熟度——换句话说,最终用户是否意识到数据驱动决策、高数据质量等的重要性。
- IT专家和业务用户协作的能力。
- 现有技术和数据环境的可行性。
在评估了项目的准备情况并希望对其感到满意之后,需要开发一个用于项目规划和管理的框架,然后最终继续进行数据仓库开发,这从业务需求的定义开始。
1.业务需求定义
业务需求几乎影响整个数据仓库开发过程中的每一个决策——从应该提供哪些信息到应该多久访问一次信息。因此,可以从调研业务用户开始定义:
- 公司的总体目标以及特定业务部门、部门等的目标。
- 用于衡量成功的方法和指标
- 企业面临的关键问题
- 公司当前执行的常规数据分析的类型,包括用于分析的数据、分析进行的频率、带来的潜在改进等)。
在采访业务用户时,还应该与关键IT专家(数据库管理员、运营源系统专家等)进行有效的沟通,以确定当前可用的信息是否足以满足以下业务需求:
- 关键操作系统
- 数据更新频率
- 历史数据的可用性
- 设置哪些流程来确保向业务用户交付信息
- 使用哪些工具来访问和分析信息
- 通常会生成哪些类型的见解
- 临时的信息请求是否得到妥善处理等。
2.数据仓库概念化和技术选择
上一步的结果将用作定义未来解决方案范围的基础,因此应仔细分析业务和IT用户的需求和期望并确定优先级,以制定最佳的数据仓库功能集。
之后,必须确定构建数据仓库解决方案的架构方法,评估并为每个架构组件(暂存区域、存储区域等)选择最佳技术。在制定技术堆栈时,请考虑以下因素:
- 当前的技术环境
- 规划的战略技术方向
- 内部IT团队成员的技术能力
- 具体数据安全要求等
此时,还应该定义部署选项-本地、云或混合。部署选项的选择取决于多种因素,例如数据量、数据性质、成本、安全要求、用户数量及其位置以及系统可用性等。
3.数据仓库环境设计
在设计数据仓库之前和期间,需要定义数据源并分析存储在其中的信息-可用的数据类型和结构,每天、每月生成的信息量等,以及其质量、敏感性、刷新率频率。
下一步是逻辑数据建模,或者将公司的数据排列成一系列称为实体(现实世界对象)和属性(定义这些对象的特征)的逻辑关系。实体关系建模用于各种建模技术,包括规范化模式(关系数据库的设计方法)和星型模式(用于维度建模)。
图片
图片
接下来,将这些逻辑数据模型转换为数据库结构,例如将实体转换为表、将属性转换为列、将关系转换为外键约束等。
图片
数据建模完成后,第一步是设计数据暂存区,以便首先为数据仓库提供高质量的聚合数据,并在后续所有数据加载过程中定义和控制源到目标的数据流。
设计步骤还包括创建数据访问和使用策略、建立元数据目录、业务术语表等。
4.数据仓库开发与上线
该步骤从定制和配置所选技术(DW平台、数据转换技术、数据安全软件等)开始。然后,该公司开发ETL管道并引入数据安全性。
引入所有主要组件后,它们必须与现有的数据基础设施(数据源、BI和分析软件、数据湖等)以及彼此集成,以便之后可以迁移数据。
在最终汇总之前,必须确保最终用户能够处理新技术环境,这意味着他们所有人都了解可用的信息、其含义、如何访问这些信息以及使用哪些工具。针对标准用户和高级用户的定制培训以及支持文档将对此有所帮助。除此之外,还需要:
- 测试数据仓库性能、ETL等。
- 验证数据质量(数据易读性、完整性、安全性等)
- 确保用户有权访问数据仓库等。
5.上线后支持与维护
初始部署后,需要关注业务用户并提供持续的支持和培训。随着时间的推移,必须测量数据仓库性能指标和用户满意度评分,因为它将帮助您确保数据仓库的长期健康和增长。
需要可靠的技术合作伙伴来实现您的数据仓库项目吗?
数据仓库项目的关键角色
专案经理
- 定义数据仓库项目及其可交付成果的范围。
- 概述项目计划,包括预算估算、项目资源和时间表。
- 管理日常数据仓库项目任务和活动(资源协调、项目状态跟踪、项目进度和沟通瓶颈等)
业务分析师
- 确定业务用户的需求并确保将其清楚地传达给技术团队。
- 进行采访并记录下来。
- 协助数据建模师和DBA进行数据建模、数据映射活动等。
数据建模师
- 执行详细的数据分析。
- 设计数据仓库的整体技术架构以及具体的每个组件(数据暂存、数据存储、数据模型等)。
- 监督架构开发和实施。
- 就技术堆栈提供建议。
- 记录整个解决方案及其组成部分的范围。
数据仓库数据库管理员(DBA)
- 将逻辑模型转换为物理表结构。
- 确保数据库的操作支持,调整数据库性能以确保数据的可用性和完整性。
- 规划数据备份/恢复计划等。
ETL开发人员
- 规划、开发和设置提取、转化和装载管道。
质量保证工程师
- 制定测试策略以确保数据仓库的正常运行和数据准确性。
- 识别潜在错误并确保其解决。
- 对开发的DW解决方案进行测试。
除了这些关键角色之外,其他专业人员也可能参与该项目,例如解决方案架构师、技术支持专家、DevOps工程师、数据管理员、数据仓库培训师等。值得注意的是,有时个别工作人员可以扮演多种角色。
需要考虑的3种领先数据仓库技术
使用不适当的技术是数据仓库项目失败的原因之一。除了需要正确识别应用场景之外,还需要从市场上众多看似相似的选项中选择最佳的软件。在这里,我们回顾了具有很高客户满意度、在各种市场研究报告中获得高度评价并遵循数据仓库现代化原则的数据仓库服务和平台。但所描述的功能并不详尽:在制定其描述时,我们主要关注其数据集成功能、与分析和商业智能服务的内置连接、可靠性和数据安全性。
AmazonS3
- 提供联合查询功能以及与AmazonS3的内置云数据集成,以跨操作数据库和数据湖查询和分析任何类型、格式和大小的数据。
- 允许使用AWSDataPipeline、AWSDataMigrationServices、AWSGlue和AWSKinesisFirehose在AWS服务内部和外部以流和批次方式提取和转换数据。
- 提供与AWS分析服务(AWSLakeFormation、AmazonEMR、AmazonQuickSight、AmazonSageMaker等)的本机集成。
- 提供内置的容错和灾难恢复功能(自动集群快照、快照复制、持续集群监控和替换等)。
- 通过表的精细权限、多因素用户身份验证、数据加密等保护数据。
- 满足SOC1、SOC2、SOC3、PCIDSSLevel1、HIPAA、ISO27001等合规性要求。
- 允许分离存储和计算资源。
谷歌BigQuery
- 通过CloudFusion提供与150多个数据源的本机数据集成
- 提供多云分析支持(由GoogleBigQuery(Omni)提供),可跨AWS和Azure(即将推出)查询数据,而无需复制数据。
- 与Looker和整个GoogleCloudAnalytics生态系统的本机集成。
- 对冷数据和热数据以及存储和计算资源分别收费。
- 默认情况下,在多个位置免费提供复制存储。
- 提供对数据集、表、视图、多因素用户身份验证、数据加密(默认)等的精细权限。
- 满足HIPAA、ISO27001、PCIDSS、SOC1、SOC2等合规性要求。
Azure
- 通过Azure数据工厂拥有95多个用于本地和云数据源的本机连接器。
- 通过AzureSynapseLink提供对本机HTAP的支持。
- 使用内置的ApacheSpark和Azure流分析事件处理引擎支持大数据和流数据的引入和处理。
- 与PowerBI、Azure机器学习、Azure认知服务、AzureDataLakeStorage等的本机集成。
- 允许单独扩展存储和计算。
- 提供内置的容错和灾难恢复功能(自动快照、异地备份等)。
- 默认数据安全功能(模式、表、视图、单个列、过程等的细化权限、多因素用户身份验证、数据加密等)。
- 满足HIPAA、ISO27001、PCIDSS、SOC1、SOC2等合规性要求。
确保数据仓库项目成功的技巧
进行敏捷数据仓库开发
数据仓库开发项目非常消耗时间和资源,因此选择敏捷方法(这意味着通过增量投资将项目分解为迭代)尽早开始获得投资回报,并最大限度地降低风险并避免大量的前期投资。
确保IT与业务之间的紧密合作
数据仓库的成功是IT和业务专家的共同努力,他们共同负责从收集业务需求到数据仓库部署和发布后支持的计划。
关注最终用户
为最终用户提供可靠的支持文档、培训和自助数据访问工具,确保数据仓库的高采用水平。
考虑专家建议
构建数据仓库通常需要将工作负载迁移到云,这并不容易,因为它需要特定的技能和专业知识。因此,当开始开发项目时,不要忽视向云迁移专家寻求建议。
小结
精心构建的现代数据仓库可以帮助组织实现当前的许多数据管理和分析目标,包括打破数据孤岛、实时分析、交互式报告和受保护的企业数据。