IBM-数据工程-IX-笔记-全-

IBM 数据工程 IX 笔记(全)

001:数据仓库概述

在本节课中,我们将要学习数据仓库的基本概念。我们将定义什么是数据仓库,了解其典型应用场景,并列举使用数据仓库为组织带来的主要好处。

🏗️ 什么是数据仓库?

数据仓库是一个系统,它将来自一个或多个来源的数据聚合到一个单一的、集中的、一致的数据存储中,以支持各种数据分析需求。

其核心公式可以概括为:
数据仓库 = 数据聚合 + 数据存储 + 数据分析支持

🔍 数据仓库支持的分析类型

上一节我们定义了数据仓库,本节中我们来看看数据仓库具体支持哪些类型的分析活动。

数据仓库系统支持多种高级分析功能:

  • 数据挖掘:包括应用人工智能(AI)和机器学习(ML)技术从数据中发现模式和知识。
  • 前端报告:在ETL(提取、转换、加载)过程中进行的数据转换,可以加速前端报告生成,从而快速交付关键信息。
  • 在线分析处理(OLAP):数据仓库支持OLAP,为商业智能和决策支持应用提供快速、灵活的多维数据分析。

📈 数据仓库的演进历程

了解了数据仓库的功能后,我们来看看它的部署方式是如何随着技术发展而演变的。

以下是数据仓库部署模式的主要发展阶段:

  • 本地部署:传统上,数据仓库部署在企业数据中心的本地服务器上,最初是大型机,后来是Unix、Windows和Linux系统。
  • 数据仓库一体机:随着21世纪初数据量的增长,出现了数据仓库一体机。它由预先集成的专用硬件和优化的数据仓库软件捆绑而成,降低了大规模数据仓库的管理开销。
  • 云数据仓库:在过去十年左右,随着海量数据在云中生成和存储,云数据仓库(CDW)日益流行。组织无需购买硬件或安装仓库软件,而是可以按需使用可扩展的、按使用量付费的服务。

🏢 数据仓库的应用行业

现在我们已经了解了数据仓库是什么及其部署方式,接下来让我们看看哪些类型的组织会使用数据仓库。

数据仓库的应用几乎遍及所有行业,包括电子商务、交通运输、医疗、银行与金融科技、社交媒体以及政府机构。

以下是这些行业使用数据仓库的具体原因:

  • 零售与电子商务:用于分析和报告销售业绩,并应用机器学习辅助购物,通过人工智能为购物者提供相关推荐以推动额外销售。
  • 医疗保健:通过对患者数据应用人工智能,医疗保健提供者可以获取最新洞察,并利用这些信息更准确地进行诊断和治疗。
  • 交通运输:商业智能能力使运输提供商能够优化路线、行程时间、设备需求和人员配置要求。
  • 金融科技与银行业:应用数据分析来评估风险、检测欺诈和交叉销售服务。
  • 社交媒体:需要能够快速衡量不断变化的客户情绪并预测产品销售的分析能力。
  • 政府机构:应用商业智能来分析和评估以公民为中心的项目,并协助政策变更决策。

✅ 数据仓库的核心优势

在探讨了广泛的应用场景后,我们来总结一下数据仓库能为组织带来的具体好处。

使用数据仓库主要能带来以下几方面优势:

  • 数据集中化:能够将来自不同数据源(如事务处理系统、操作型数据库和平面文件)的数据集中起来。
  • 提升数据质量:通过数据集成、清除坏数据、消除重复项和标准化数据,创建单一事实来源,从而为分析提供更高质量的数据。
  • 提高访问效率:单一事实来源使用户能够利用公司的所有数据,并更高效地访问这些数据。此外,将数据库操作与数据分析分离,通常能提高数据访问性能,从而带来更快的商业洞察。
  • 赋能高级分析与决策:大规模商业智能功能,如数据挖掘、人工智能和机器学习工具,有助于数据专业人员和业务领导者做出更明智的决策。这些能力相互叠加,使组织有方法和机会实现竞争优势和收益增长。

📝 课程总结

本节课中我们一起学习了数据仓库的核心概念。

我们了解到:

  1. 数据仓库是一个将来自多源的数据聚合到单一、一致存储中以支持数据分析的系统。
  2. 数据仓库支持数据挖掘、人工智能与机器学习、OLAP以及前端报告等多种分析。
  3. 数据仓库和商业智能帮助组织提升数据质量、加速商业洞察并改进决策制定,所有这些都可能带来竞争优势。

002:流行的数据仓库系统 🏢

在本节课中,我们将要学习如何对流行的数据仓库系统进行分类,并了解一些主流供应商及其提供的解决方案。

大多数数据仓库系统基于以下三种平台中的一种或多种构建。首先是一体机,它是预集成的软硬件捆绑包,为工作负载提供高性能,同时维护开销低。其次是纯云部署,这类方案仅提供云服务,具备云的可扩展性和按使用付费的经济性,通常以完全托管的服务形式交付。最后是本地部署软件,这类方案传统上仅安装在本地环境中,但近年来,大多数此类供应商也开始提供云端部署的数据仓库系统。

接下来,我们将查看一份未排序的流行数据仓库系统列表,并深入了解它们。

以下是几种主要的数据仓库系统类型及其代表产品:

  • 一体机解决方案:这类方案将硬件和软件预先集成,以实现高性能和低维护成本。
    • Oracle Exadata:组织可以在本地或通过Oracle公有云部署此方案。它内置算法,可运行所有类型的工作负载,包括OLTP、数据仓库分析、内存分析和混合工作负载。
    • IBM Netezza:您可以在IBM Cloud、Amazon Web Services、Microsoft Azure以及使用IBM Cloud Pak for Data系统的私有云上部署IBM Netezza。它在数据科学和机器学习赋能方面广受认可。

上一节我们介绍了一体机方案,本节中我们来看看一些更知名的基于云的数据仓库系统提供商。

  • 纯云数据仓库系统:这类系统完全构建在云上,提供弹性和可扩展性。
    • Amazon Redshift:它使用Amazon Web Services的特定硬件和专有软件,提供加速的数据压缩和加密、机器学习以及自动组织和存储数据的图形优化算法。
    • Snowflake:它提供符合GDPR和CCPA数据隐私法规的多云分析解决方案,并宣传其数据在传输和静态时始终处于加密状态。Snowflake已获得FedRAMP中等授权。
    • Google BigQuery:谷歌将其描述为灵活的多云数据仓库解决方案,报告称其数据仓库正常运行时间达99.99%,并能从任何商业智能工具提供亚秒级的查询响应时间。该系统具备PB级处理速度和海量并发能力,以提供实时分析。

现在,让我们了解一下那些同时提供本地和云端数据仓库系统的供应商。

  • 混合部署数据仓库系统:这类系统支持在本地和云端灵活部署。
    • Microsoft Azure Synapse Analytics:它提供无代码可视化ETL/ELT流程,可从超过95个原生连接器摄取数据。支持数据湖和数据仓库用例,并支持对无服务器和专用资源使用TSQL、Python、Scala、Spark SQL和.NET。
    • Teradata Vantage:它采用略有不同的方法,宣传其为企业分析提供的多云数据平台,可统一数据湖、数据仓库、分析以及新的数据源和类型。它结合了开源和商业技术,通过工作负载管理和自适应优化来操作洞察并为混合工作负载提供高性能查询并发支持。Teradata为监控、变更请求、性能调优、安全管理和报告等运营任务服务提供单一联系点。
    • IBM Db2 Warehouse:以其可扩展性、大规模并行处理能力、Petaflop级速度、安全功能和99.99%的服务正常运行时间而广受认可。它提供容器化的横向扩展数据仓库解决方案,您可以在公共云、私有云或本地按需移动工作负载,几乎无需更改。
    • Vertica:另一个知名的混合云数据仓库系统,为Amazon Web Services、Google Cloud、Microsoft Azure和本地Linux硬件提供多云支持。Vertica报告了快速的GB级数据传输速率、可扩展的弹性计算和存储,以及在使用Eon模式时显著的系统容错能力。

本节课中我们一起学习了数据仓库系统可以包括一体机、本地部署、云端部署或这些部署选项的组合。流行的数据仓库供应商包括Oracle、Teradata、Vertica、Google、IBM、Microsoft、Snowflake、Amazon等。

003:选择数据仓库系统

在本节课中,我们将学习组织如何评估和选择数据仓库系统。我们将探讨评估的关键标准,包括功能、兼容性、易用性、支持和成本,并了解在本地部署与公有云部署之间做出决策的考量。


🎯 评估数据仓库系统的标准

组织在评估数据仓库系统时,会依据一系列标准进行考量。以下是主要的评估维度:

  • 功能与能力
  • 兼容性与实施考量
  • 易用性与技能要求
  • 支持考量
  • 各类成本

接下来,我们将逐一详细探讨这些标准。


🏢 功能与能力:位置与架构

首要的考量因素是数据仓库的位置。数据仓库可以部署在本地、专用设备上,或是一个或多个云环境中。

为了选择合适的位置,组织必须平衡与数据摄取、存储和访问相关的多种需求。对于一些组织而言,数据安全是最高优先级,这要求必须采用本地解决方案。那些面临数据隐私法规(如CCPA或GDPR)挑战的多地点企业,则需要本地或特定地理区域的数据仓库位置。每个组织都需要在安全、数据隐私需求与获取关键业务洞察的速度之间取得平衡。

组织还需要考虑与架构和结构相关的功能。例如,组织是否准备好采用特定供应商的架构?是否需要多云部署(如在多个地点部署多个数据仓库)?解决方案能否扩展以满足预期的未来需求?系统支持哪些数据类型?如果组织目前分析暗数据,或计划使用半结构化或非结构化数据,就需要一个支持这些数据类型的系统。处理大数据的组织则需要一个同时支持批处理和流处理能力的系统。

影响实施便利性的能力包括数据治理、数据迁移和数据转换。在数据仓库系统就位后,组织如何随着需求变化轻松地优化和重新优化系统性能,是另一个考量点。

用户管理也是一个重要考虑因素。由于代价高昂的数据泄露事件,越来越多的组织实施零信任安全策略,因此管理和验证系统用户的程序是强制性的。通知和报告对于组织在微小问题演变成大问题之前纠正错误和降低风险至关重要。


👨‍💻 易用性与技能要求

现在,我们来探讨易用性与技能要求。您的组织员工是否具备实施特定数据仓库供应商技术所需的技能?如果不具备,他们能以多快多容易的速度获得这些技能?

复杂的大型数据仓库部署可能需要您的实施合作伙伴付出额外工作,因此他们的专业知识也至关重要。最后,负责架构、部署和管理前端查询、报告及可视化工具的技术和工程人员,是否具备快速配置新系统所需的技能?


🛠️ 支持考量

支持至关重要,如果规划不当,可能会变得令人沮丧且成本高昂。您可能会发现,通过使用单一供应商,您可以依赖一个高度负责的来源,从而可能节省时间、金钱并减少挫折感。

您还需要核实供应商是否提供关于正常运行时间、安全性、可扩展性等问题的服务级别协议。确认供应商的支持时间和渠道,例如电话、电子邮件、聊天或短信。最后,供应商是否提供自助服务解决方案以及一个活跃、丰富的用户社区?


💰 成本评估

在完成上述所有分析后,是时候评估和比较成本了。在计算数据仓库系统的成本时,需要考虑的不仅仅是初始成本。应考虑运行系统数年的总拥有成本

总拥有成本包括:

  • 基础设施成本:如计算和存储成本(无论是在本地还是云端)。
  • 软件许可成本:对于云服务,则是订阅或使用成本。
  • 数据迁移与集成成本:用于将数据移入仓库,以及按要求进行数据修剪和清理。
  • 管理成本:与系统管理和人员培训相关。
  • 持续的支持和维护成本:支付给数据仓库供应商或实施合作伙伴。

📝 总结

本节课中,我们一起学习了企业如何基于功能与能力、兼容性与实施、易用性与所需技能、支持质量与可用性以及多重成本考量来评估数据仓库系统。

组织可能需要传统的本地部署来遵守数据安全和隐私要求。公有云站点则为组织提供了规模经济的优势,包括强大的计算能力和可扩展的存储,从而带来灵活的性能价格比选项。

在选择数据仓库系统时,请务必在计算中考虑总拥有成本,包括基础设施、计算与存储、数据迁移、管理和数据维护成本。

004:IBM DB2 Warehouse 简介 🏢

在本节课中,我们将要学习 IBM DB2 Warehouse 的核心特性、适用场景以及其强大的工具集成能力。IBM DB2 Warehouse 是一个完整的数据仓库解决方案,为用户提供了对数据和应用程序的高级控制能力。

概述

IBM DB2 Warehouse 是一个易于在容器化环境(如 Docker)中部署的完整数据仓库解决方案。它为用户提供了对数据和应用程序的高级控制能力。

上一节我们介绍了数据仓库的基本概念,本节中我们来看看一个具体的产品实现——IBM DB2 Warehouse。

核心特性与架构 🚀

DB2 Warehouse 是一个高度灵活的数据仓库,支持客户管理的本地部署、云部署和混合环境。它通过被称为 MPP(大规模并行处理) 的技术自动扩展,以支持容器化部署。DB2 Warehouse 预装了机器学习算法访问权限,并利用库内商业分析来提升速度。

其核心加速技术 BLU Acceleration 包含以下组件:

  • 列式内存处理
  • 数据跳过技术
  • 大规模并行处理器集群架构

这些技术共同作用,显著加快了复杂查询的速度。

监控与管理仪表板 📊

DB2 Warehouse 配备了用于监控性能和报告问题的仪表板。这些仪表板提供了系统运行状态的全面视图。

以下是仪表板中包含的一些示例小组件:

  • 硬件和软件问题计数
  • 数据库警报
  • 已使用的分配存储量

你还可以查看在不同状态(如等待锁、执行SQL查询的时间)下花费的时间细分,以及有关任何数据库警报事件的详细信息表。此外,还有许多其他可用的小组件,例如系统和数据库服务历史、CPU使用历史等。

主要适用场景 🎯

DB2 Warehouse 非常适合多种使用场景,能够满足不同的业务需求。

以下是一些它特别适用的用例:

  • 需要弹性或高可扩展性的场景
  • 云、本地或混合托管需求
  • 整合不同数据源
  • 快速开发业务线分析产品(如数据集市)
  • 管理敏感或受监管的数据
  • 存储较旧、访问频率较低的结构化SQL数据

客户端支持与工具集成 🔌

DB2 Warehouse 支持广泛的客户端和插件,便于与各种开发生态系统集成。

它支持的工具和语言包括:

  • Java数据库连接
  • Node.js
  • Spring框架
  • Python
  • R语言
  • Go语言
  • Apache Spark
  • Microsoft Visual Studio

与 Apache Spark 集成

凭借其集成的 Apache Spark 集群,DB2 Warehouse 可以跨机器集群进行分区和部署。你可以通过存储过程提交 Apache Spark 作业,在 DB2 Warehouse 上运行,从而扩展你的分析范围。

与 RStudio 集成

你可以使用 RStudio 连接 DB2 Warehouse 来分析、整理、建模和可视化数据。例如,你可以创建自己的 Docker 镜像,其中包含 RStudio 以及连接 DB2 Warehouse 所需的所有软件包和驱动程序。你甚至可以开发通过 REST API 与 DB2 集成的、运行 R 代码的应用程序。

开源驱动程序

DB2 Warehouse 在 GitHub 的 IBMDB2 代码仓库中提供了一系列常用的开源驱动程序。例如,在热门仓库中,你可以找到 ibm_db Python 包,它提供了连接 IBM DB2 的 Python 接口。

总结

本节课中我们一起学习了 IBM DB2 Warehouse 的核心知识。我们了解到 IBM DB2 Warehouse 是一个云就绪、高度灵活的数据仓库平台。其关键特性包括高速查询弹性扩展自动化模式生成内置机器学习功能。其主要适用场景包括数据集成数据集市的快速开发。此外,DB2 Warehouse 能够与 JDBCApache SparkPythonRStudio 等主流工具和框架深度集成。

005:数据集市概览 📊

在本节课中,我们将要学习数据集市的核心概念。我们将了解数据集市是什么,它与事务型数据库和企业数据仓库有何不同,以及数据如何被加载到数据集中。


什么是数据集市? 🎯

一个数据集市是大型企业数据仓库中一个独立的部分,它专门为特定的业务功能、目的或用户群体而构建。

例如,公司的销售和财务部门可能有权访问专门的数据集市,这些数据集市为其季度销售报告和预测提供所需数据。营销团队可能使用数据集市来分析客户行为数据,而运输、制造和保修部门也可能拥有自己的数据集市。


数据集市的用途与结构

上一节我们介绍了数据集市的定义,本节中我们来看看它的核心用途和典型结构。

数据集市旨在为制定战术决策提供特定的、及时的支持。因此,数据集市只关注最相关的数据,这为用户节省了在数据仓库中搜索洞察所需的时间和精力。

数据集市的典型结构如下:
它是一个采用星型模式或更常见的雪花模式的关系数据库。这意味着它包含一个中心事实表,该表由与业务流程相关的业务指标组成,周围环绕着提供事实背景的维度表层次结构。

核心结构公式

数据集市 = 事实表 + 维度表(星型/雪花型模式)

数据集市 vs. 事务型数据库 vs. 数据仓库

了解了数据集市的基本构成后,我们来比较三种常见的数据存储库:数据集市、事务型数据库和数据仓库。

以下是它们之间的主要区别:

  • 系统类型:数据集市和数据仓库都属于在线分析处理系统,针对读取密集型查询和操作进行了优化。而事务型数据库属于在线事务处理系统,针对写入密集型查询和应用进行了优化。
  • 数据源:数据集市使用事务型数据库或数据仓库作为数据源。事务型数据库的数据源则是销售点系统等运营应用程序。
  • 数据状态:数据集市存储经过验证、转换和清理的数据。而数据库通常包含尚未清理的原始数据。
  • 数据历史:数据集市积累可用于趋势分析的历史数据。事务型数据库可能并不总是存储旧数据。
  • 范围与性能:数据集市类似于数据仓库,但战术范围更小。数据仓库广泛支持企业的战略需求。与可能非常庞大且因此较慢的数据仓库相比,数据集市更精简、更快速。


数据集市的类型

根据其与数据仓库的关系以及数据来源,数据集市可以分为三种基本类型。

以下是三种主要的数据集市类型:

  1. 依赖型数据集市:从企业数据仓库中提取数据。
  2. 独立型数据集市:绕过数据仓库,直接从源系统(包括内部运营系统或来自供应商等企业外部的数据)创建。
  3. 混合型数据集市:仅部分依赖于企业数据仓库。它们结合了来自数据仓库的输入以及来自运营系统和其他仓库外部系统的数据。


依赖型与独立型数据集市的特点

上一节我们列出了数据集市的类型,本节我们来详细看看依赖型和独立型的特点。

  • 依赖型数据集市:在企业数据仓库的受限区域内提供分析能力,因此继承了企业数据仓库的安全性。由于依赖型数据集市直接从数据仓库(数据已在此清理和转换)提取数据,它们的数据管道往往比独立型数据集市更简单。
  • 独立型数据集市:与依赖型不同,它们需要自定义的提取、转换、加载数据管道来对源数据执行转换和集成过程,因为数据直接来自运营系统和外部源。独立型数据集市可能还需要单独的安全措施。

数据管道代码示例(概念)

# ETL 过程概览
extract(data_source) -> transform(clean, validate, integrate) -> load(data_mart)


数据集市的核心价值

无论您拥有何种类型的数据集市,其目的都包含以下几点:

  • 提供相关数据:在需要时为最终用户提供相关数据。
  • 加速业务流程:通过提供高效的查询响应时间来加速业务流程。
  • 支持数据驱动决策:提供一种经济高效的方法来支持数据驱动的决策。
  • 确保数据安全:确保对数据的安全访问和控制。


总结

本节课中我们一起学习了数据集市的核心知识。

我们了解到,数据集市是企业数据仓库中专门为特定业务功能、目的或用户群体构建的独立部分,旨在为战术决策提供特定、及时和快速的支持,通常采用星型或雪花型模式。

我们还了解到,与OLTP数据库不同,OLAP数据集市存储干净、已验证的数据并积累历史数据。

最后,我们可以根据数据集市对企业数据仓库的依赖程度对其进行分类:数据集市可以完全依赖于数据仓库(依赖型),可以是完全独立的独立迷你数据仓库(独立型),也可以是两者的混合体(混合型)。

006:数据湖概述 🏞️

在本节课中,我们将要学习数据湖的基本概念。我们将定义什么是数据湖,列举使用数据湖的优势,并将其与数据仓库进行比较。

什么是数据湖?🤔

数据湖是一种存储库,能够以原始格式存储大量结构化半结构化非结构化数据,并使用元数据进行分类和标记。如果你持续生成或能够访问大量数据,但又不想被限制在特定或预定义的使用场景中,那么数据湖是一个合适的选择。

数据湖有时也用作数据转换的暂存区,以便在将数据加载到数据仓库或数据集市之前进行处理。

深入理解数据湖

上一节我们介绍了数据湖的基本定义,本节中我们来详细拆解其核心特征。

数据湖是一个数据存储库,能够以原生格式存储大量结构化、半结构化和非结构化数据。在将数据加载到数据湖之前,你不需要定义数据的结构和模式,甚至不需要知道分析数据的所有具体用途。

数据湖是直接从源头获取的原始数据的存储库,可以根据分析需求进行转换。但这并不意味着数据湖是一个可以随意倾倒数据、缺乏治理的地方。数据湖也是一种独立于技术的参考架构。

以下是数据湖可以部署的技术平台示例:

  • 云对象存储:例如 Amazon S3
  • 大规模分布式系统:例如用于处理大数据的 Apache Hadoop
  • 关系数据库管理系统以及能够存储海量数据的 NoSQL 数据存储库。

数据湖的优势 ✨

了解了数据湖是什么之后,我们来看看它能为组织带来哪些具体好处。

数据湖提供了多项优势:

  • 存储所有类型的数据:包括文档和电子邮件等非结构化数据,JSON和XML文件等半结构化数据,以及来自关系数据库的结构化数据
  • 强大的可扩展性:数据湖可以利用可扩展的存储容量,处理从TB到PB级别的数据。
  • 节省时间与成本:通过保留数据的原始格式,数据湖节省了组织用于定义结构、创建模式和转换数据的时间。这种以原始格式访问数据的能力,使得数据能够快速、灵活地复用于当前和未来的各种场景。

一些提供数据湖技术、平台和参考架构的供应商包括:Amazon, Cloudera, Google, IBM, Informatica, Microsoft, Oracle, SAS, Snowflake, Teradata 和 Zaloni。

总而言之,数据湖的设计是为了应对数据仓库的局限性。根据需求,一个典型的组织通常需要同时拥有数据仓库和数据湖,因为它们服务于不同的需求。

数据湖 vs. 数据仓库 ⚖️

上一节我们探讨了数据湖的优势,本节中我们将其与数据仓库进行对比,以更清晰地理解两者的区别。

让我们从几个维度比较数据湖和数据仓库:

1. 数据形态
在数据湖中,数据以其原始、非结构化的形式集成。而在数据仓库中,所有数据在加载之前都已经过处理并符合既定标准。

2. 模式(Schema)
使用数据湖时,你不需要在加载数据前定义其结构和模式。相反,数据仓库需要严格遵守模式,因此必须在加载数据之前设计和实施模式。

3. 数据质量
在数据湖中,数据可能经过治理,也可能没有(例如原始数据),数据具有敏捷性,不一定完全遵守治理指南。相比之下,数据仓库中的数据是经过治理的,并遵守数据治理规范。

4. 主要用户
数据科学家、数据开发人员和机器学习工程师是数据湖的典型用户。而数据仓库则主要由业务分析师和数据分析师使用。

总结 📝

本节课中我们一起学习了数据湖的核心知识。

我们了解到,数据湖是一个能够以原始或原生格式存储大量结构化、半结构化和非结构化数据的存储库,并使用元数据进行分类和标记。在将数据加载到数据湖之前,无需定义数据的结构和模式。

数据湖提供了诸多优势,例如支持存储所有类型的数据、具备可扩展的存储容量、能够节省时间并实现灵活的数据复用。

最后,我们学习了数据湖可以作为多种用途的“自助式”暂存区,包括机器学习开发和高级分析。同时,我们也明确了数据湖与数据仓库在数据形态、模式、质量和用户方面的关键区别。

007:数据湖解释 🏞️

在本节课中,我们将通过一个餐厅后厨的比喻,来理解数据湖、数据仓库以及数据湖仓的核心概念。我们将探讨它们各自的特点、优势与挑战,并了解它们如何共同构成现代数据架构的基础。


上周我在一家餐厅用餐,环顾四周,餐厅座无虚席。每位顾客的订单都准时送达。我不禁思考起餐厅将原始食材变成美味佳肴背后的物流过程。

让我们花一分钟思考一下。在一个商业厨房里,卡车会运送原始食材到装卸区,通常是大托盘的形式。卡车抵达装卸区,卸下托盘,然后继续上路,为其他餐厅运送更多食材。

这只是简单部分。现在,我们实际上需要拆开这个托盘并进行处理。我们必须对托盘上的所有物品进行分类,为所有食材贴上标签。同时,我们还要确保每件物品都被送到正确的存储区域。这些物品可能进入储藏室存放干货,也可能进入大型步入式冰箱或冰柜,用于存放新鲜蔬菜和肉类。

我们还需要组织好这些存储区域。我们必须确保先到期的食材被优先使用。出于防止交叉污染的考虑,我们必须确保某些食材彼此分开存放。同时,我们必须确保某些食材达到特定的温度要求,这也是为了食品安全。

此外,我们需要尽可能快速地完成所有这些工作,以最大限度地减少食物浪费和食材在卡车或托盘上可能发生的腐败变质。如果没有这个过程,厨房里的厨师就无法高效或安全地工作。他们会花费大量时间寻找食材,而用于实际烹饪和为顾客上菜的时间就会减少。

那么,这与数据有什么关系呢?如果我们仔细想想,完全相同的过程也存在于组织的数据架构中。

你的组织会从不同来源接收各种数据,例如不同的云环境、不同的运营应用程序。现在,我们甚至还有社交媒体数据。所有这些数据都涌入我们的组织,就像厨房从不同供应商那里接收食材一样。

因此,数据不断涌入。我们需要一个快速的地方来存放所有不同类型、不同格式的数据,以备后用。于是,我们有了数据湖

这些数据湖让我们能够以低廉的成本快速捕获原始的结构化非结构化甚至半结构化数据。现在,就像在厨房里一样,我们不会真的在装卸区烹饪。我们必须将这些数据从其原始状态组织和转换,变成我们的业务想要生成的那种洞察和分析可用的东西。

于是,我们有了企业数据仓库。数据有时从数据湖加载进来,有时从运营应用程序等其他来源加载进来。数据在这里被优化和组织,以运行非常特定的分析任务。这可能是为不同的商业智能工作负载提供支持,例如构建仪表板和报告,也可能是为其他分析工具提供数据。

就像我们的储藏室和冰柜一样,仓库中的数据是经过清理、组织、治理的,并且其完整性应该是可信的。

那么,在这种方法中我们看到哪些挑战呢?正如我们所说,数据湖确实非常适合以经济高效的方式捕获海量数据,但我们在数据治理数据质量方面遇到了挑战。很多时候,这些数据湖会变成“数据沼泽”。

当存在大量重复、不准确或不完整的数据时,就会发生这种情况,使得跟踪和管理资产变得困难。试想一下,如果数据停滞不前会怎样?它会失去创造洞察的价值,就像餐厅里不使用的食材会随时间变质一样。

数据湖在查询性能方面也存在挑战,因为它们并非为处理复杂的分析查询而构建和优化,有时很难直接从湖中获取洞察。

现在,让我们看看数据仓库。它们在查询性能方面确实非常出色,但成本可能很高。就像那些大型冰柜运行成本可能非常高昂一样,我们不能把所有东西都放进数据仓库。它们可以更好地优化以维护数据治理和质量。

但是,它们对半结构化和非结构化数据源的支持有限,而这些恰恰是涌入我们组织增长最快的数据类型。此外,对于某些需要最新数据的应用程序类型,数据仓库有时可能太慢,因为对数据进行排序、清理和加载到仓库需要时间。

那么,我们该怎么办呢?开发人员退后一步,说道:让我们结合数据湖和数据仓库两者的优点,将它们融合成一种称为数据湖仓的新技术。

这样,我们获得了数据湖的灵活性成本效益,同时也获得了数据仓库的性能结构化优势。

我们将在未来的视频中更具体地讨论数据湖仓的架构。但从价值角度来看,湖仓让我们能够以低成本的方式存储来自爆炸性增长的新数据源的数据,然后利用内置的数据管理和治理功能,使我们能够快速地为商业智能和高性能机器学习工作负载提供支持。

我们可以通过多种方式开始使用湖仓,例如现代化我们现有的数据湖,或者补充我们的数据仓库以支持这些新型的AI和机器学习驱动的工作负载。这些也将在未来的视频中讨论。

所以,下次你在餐厅时,希望你思考一下你盘子里的菜肴是如何到达那里的,以及食材从厨房到你盘中的餐食所经历的步骤。


本节课总结

本节课中,我们一起学习了:

  1. 数据湖:一个用于低成本、快速存储原始、多格式(结构化、半结构化、非结构化)数据的存储库,类似于餐厅的装卸区。
  2. 数据仓库:一个用于存储经过清洗、组织、治理的结构化数据的系统,针对分析查询进行了优化,类似于餐厅里井然有序的储藏室和冰柜。
  3. 数据湖仓:一种融合了数据湖的灵活性与成本效益,以及数据仓库的性能与治理优势的新型架构,旨在解决前两者各自的挑战。
  4. 通过餐厅后厨的比喻,我们清晰地理解了数据从原始状态到可用洞察的整个处理流程,以及不同数据存储组件在其中扮演的角色。

008:数据仓库体系结构概述 🏗️

在本节课中,我们将要学习数据仓库体系结构的基础知识。我们将了解驱动数据仓库设计的用例,描述通用的数据仓库架构及其组件层次,区分通用架构与企业级参考架构,并介绍IBM的企业数据仓库平台参考架构。

通用数据仓库架构模型

上一节我们介绍了课程目标,本节中我们来看看数据仓库的通用架构模型。数据仓库架构的具体细节取决于平台的使用目的,其需求可能包括报告生成与仪表盘、探索性数据分析、自动化与机器学习以及自助式分析。

公司可以基于以下通用企业数据仓库架构模型,来适配其分析需求。该架构包含多个层次或组件:

以下是该架构的主要组成部分:

  • 数据源:例如平面文件、数据库和现有的业务系统。
  • ETL层:用于提取、转换和加载数据。
  • 可选的暂存区和沙盒区:用于存放数据和开发工作流。
  • 企业数据仓库存储库:核心数据存储。
  • 数据集市:当涉及多个数据集市时,这种架构被称为“中心辐射型”架构。
  • 分析层和商业智能工具:用于数据分析和可视化。

此外,数据仓库还负责在整个网络中为流入的数据以及传递到后续阶段和用户的数据实施安全策略。

企业数据仓库供应商通常会创建专有的参考架构,并实现基于此通用架构模型变体的模板化数据仓库解决方案。数据仓库平台是一个包含许多活动部件的复杂环境,因此组件间的互操作性至关重要。供应商特定的参考架构通常会整合其生态系统内能够良好协同工作的工具和产品。

接下来,让我们了解一下IBM特定的参考数据仓库架构。

IBM企业数据仓库参考架构

上一节我们了解了通用架构,本节中我们来看看IBM的具体实现。IBM的参考架构包含多个层次,每一层都执行特定的功能。

以下是IBM参考架构的各层及其功能:

  • 数据获取层:包含从人力资源、财务和计费等源系统获取原始数据的组件。
  • 数据集成层:本质上是一个暂存区,包含用于提取、转换数据并将其加载到数据存储库层的组件。它还包含管理工具和中央元数据。
  • 数据存储库层:存储集成后的数据,通常采用关系模型。
  • 分析层:通常以多维数据集格式存储数据,以便用户更轻松地进行分析。
  • 呈现层:整合了为不同用户组提供数据访问的应用程序,例如营销分析师、用户和代理。应用程序通过网页、门户、报告工具中定义的界面或Web服务来消费数据。

IBM相关产品套件

IBM的参考架构通过其InfoSphere套件中的多个产品得到支持和扩展。

以下是支持该架构的核心IBM产品:

  • IBM InfoSphere DataStage:一个可扩展的ETL平台,可在本地和云环境中近乎实时地集成所有数据类型。
  • IBM InfoSphere Metadata Workbench:提供端到端的数据流报告和影响分析,帮助组织在环境中轻松共享、定位和检索信息资产。利用其内置的数据流报告功能来监控DataStage如何移动和转换数据。
  • IBM InfoSphere QualityStage:旨在支持数据质量和信息治理计划,使您能够调查、清理和管理数据。此解决方案有助于创建和维护关键实体的一致视图。
  • IBM Db2 Warehouse:一个高性能、可扩展且可靠的数据管理产品系列,用于管理本地和云环境中的结构化和非结构化数据。
  • IBM Cognos Analytics:一个先进的商业智能平台,可生成报告、计分板和仪表盘,执行探索性数据分析,甚至可以使用多个来源来管理和连接数据。

总结

本节课中我们一起学习了数据仓库体系结构的基础知识。我们了解到,通用数据仓库平台的架构模型包括数据源、ETL管道、可选的暂存区和沙盒区、企业数据仓库存储库、可选的数据集市以及分析和商业智能工具。公司可以修改通用的企业数据仓库架构以满足其分析需求。供应商基于通用模型提供经过组件互操作性测试的专有参考架构。最后,IBM的企业数据仓库解决方案将InfoSphere、Db2 Warehouse和Cognos Analytics结合在一起。

009:立方体、聚合与物化视图

在本节课中,我们将要学习数据立方体的概念、相关操作(如切片、切块、钻取、旋转和上卷),以及物化视图的定义、用途和在不同数据库系统中的创建方法。


🧊 数据立方体概念

上一节我们介绍了数据仓库的基本结构,本节中我们来看看数据立方体。数据立方体是星型模式或多维模式的一种可视化表示,用于在线分析处理。

数据立方体的坐标由从星型模式中选择的一组维度定义。以下是一个基于虚构销售OLAP系统的立方体示例,它展示了三个维度:产品类别、销售所在州/省以及销售年份。立方体的单元格则由模式中的事实(如总销售额)填充。

例如,单元格中的数值“243”可能代表某个特定产品、州和年份组合下的总销售额为243,000美元。


🔪 数据立方体操作

可以对数据立方体执行多种操作,以从不同角度分析数据。以下是几种核心操作的解释:

切片

切片操作涉及从某个维度中选择单个成员,从而得到一个比原立方体少一个维度的新立方体。

例如,从“年份”维度中仅选择“2018年”,可以分析2018年所有销售州和所有产品的销售总额。

切块

切块操作涉及从某个维度中选择一个值的子集,从而缩小该维度的范围。

例如,从“产品类型”维度中仅选择“手套”、“T恤”和“牛仔裤”,可以将分析视图限制在这几种产品类型上。

钻取

在雪花模式中,维度内部可能存在层次或子类别,可以进行钻取分析。

例如,可以向下钻取到“产品类别”维度中的“T恤”成员,进一步查看更具体的产品组,如“经典款”、“修身款”和“常规款”。向上钻取则是相反的过程,将返回到更高级别的视图。

旋转

旋转数据立方体很简单,它涉及立方体的旋转,改变维度的排列方式。

例如,交换“年份”和“产品”维度的位置,同时固定“州”维度。旋转不改变信息内容,只是改变了分析数据的视角。

上卷

上卷意味着沿某个维度进行汇总。可以通过应用聚合函数(如计数、最小值、最大值、求和、平均值)来上卷一个维度。

例如,可以通过对三个美国州的销售额进行水平求和,然后除以三,来计算经典款、修身款和常规款T恤的平均售价。


📋 物化视图

物化视图本质上是查询结果的本地只读副本或快照。它们主要有两个用途:一是复制数据(例如,在ETL过程中用于暂存数据库),二是预计算并缓存昂贵的查询(如连接或聚合),以供数据分析环境使用。

物化视图通常提供自动刷新数据的选项,以保持查询结果的最新状态。由于物化视图可以被查询,因此可以安全地使用它们,而无需担心影响源数据库。

以下是物化视图常见的几种刷新选项:

  • 创建时填充:仅在创建时填充数据,适用于数据很少更改的情况。
  • 按需刷新:在数据更改后手动刷新。
  • 定时刷新:例如,在每日数据加载后刷新。
  • 立即刷新:在每个语句执行后自动刷新。

💻 在不同数据库中创建物化视图

上一节我们了解了物化视图的概念和用途,本节中我们来看看如何在不同的数据库系统中创建它们。

在 Oracle 中创建物化视图

以下是在Oracle中使用SQL语句创建物化视图的示例:

CREATE MATERIALIZED VIEW my_mat_view
REFRESH FAST
START WITH SYSDATE
NEXT SYSDATE + 1
AS SELECT * FROM my_table_name;

这段代码创建了一个名为 my_mat_view 的物化视图,指定了快速(增量)刷新类型,设置从今天开始,并每天刷新一次。最后的 SELECT 语句定义了视图的数据来源。

在 PostgreSQL 中创建物化视图

以下是在PostgreSQL中创建用于复制表的物化视图的示例:

CREATE MATERIALIZED VIEW my_mat_view
TABLESPACE tablespace_name
AS SELECT * FROM table_name;

这段代码创建了一个名为 my_mat_view 的物化视图,并指定了表空间和源表。需要注意的是,在PostgreSQL中,目前只能使用 REFRESH MATERIALIZED VIEW 命令手动刷新物化视图。

在 DB2 中创建物化查询表

在DB2中,物化视图被称为物化查询表。以下是IBM在线文档中创建一个由系统维护、立即刷新的MQT示例:

CREATE TABLE emp_mqt AS (
    SELECT e.empno, e.lastname, d.deptname
    FROM employee e, department d
    WHERE e.workdept = d.deptno
)
DATA INITIALLY DEFERRED
REFRESH IMMEDIATE;

这段代码创建了一个基于 employeedepartment 表的MQT。DATA INITIALLY DEFERRED 意味着数据不会在创建表时立即插入;REFRESH IMMEDIATE 指定查询应自动刷新。


📝 总结

本节课中我们一起学习了数据立方体和物化视图的核心概念。

  • 数据立方体将星型或雪花模式的维度表示为坐标,并用模式中的事实填充其单元格。
  • 可以对数据立方体应用多种操作,如向下钻取层次维度、切片、切块和上卷。
  • 物化视图可用于复制数据或预计算昂贵的查询。
  • 现代企业数据仓库工具(如Oracle和DB2)允许您自动保持物化视图的最新状态。

010:事实与维度建模

在本节课中,我们将学习数据仓库中的核心概念:事实与维度建模。我们将定义什么是事实和维度,解释事实表和维度表的作用,并通过具体示例说明它们之间的关系。


🔍 什么是事实与维度

数据可以分为两大类:事实和维度。事实通常是可测量的数量,例如温度、销售额或降雨量。但事实也可以是定性的,例如描述性状态或图标。

维度是分配给事实的属性。维度为事实提供上下文,使事实变得有意义。例如,单独的温度值“24摄氏度”本身并不具备明确含义。


🌤️ 事实与维度示例

让我们看一个熟悉的例子:通过谷歌搜索“吉隆坡天气”获得的天气报告。这里的事实包括温度、湿度、降水概率和风速。这些都是数量值。

但报告中还有其他事实,例如表示“局部多云”的图标,或“晴朗伴有周期性云层”的陈述,以及表示预测条件(如雷阵雨)的其他图标。所有这些非数值事实都是定性事实的例子。

为了使这些事实有意义,我们需要提供上下文。


🗺️ 维度提供上下文

上下文由维度提供,包括地点(如马来西亚吉隆坡)以及日期和时间(如8月17日星期二凌晨3点)。因此,“在马来西亚吉隆坡,8月17日星期二凌晨3点,温度为24摄氏度”这样的陈述就具有了明确含义。


📊 事实表

事实表通常包含业务过程的事实,并包含外键,用于建立与维度表的明确链接。事实通常是可加的度量或指标,例如单个销售交易的金额。

事实表可以包含详细级别的事实(如单个销售交易),也可以包含已聚合的事实(如每日或每周销售总额)。包含聚合事实的事实表称为汇总表。例如,您可以通过汇总每个季度的总销售额来总结销售交易。

外键的一个例子可能是“店铺ID”。累积快照事实表用于记录在明确定义的业务过程中发生的事件。例如,假设您在线配置了一台定制电脑并刚刚下单,制造商会在快照表中记录订单日期和订单金额,并分配唯一的订单ID。

一旦订单验证通过,支付被处理,支付金额和支付日期也会被记录。支付验证后,电脑规格被发送到制造部门。电脑开始生产时,记录生产开始日期;电脑制造完成后,记录生产结束日期。最后,电脑准备发货时,记录发货日期。所有这些字段都存储在表的单一行中,由订单ID唯一标识。


🏷️ 维度表

维度是分类事实的变量。统计学家和机器学习工程师称之为分类变量。维度使用户能够回答业务问题,在分析中的主要用途包括过滤、分组和标记操作。例如,常用的维度包括人名、产品名、地点名以及日期或时间戳。

因此,维度表存储事实的维度,并通过外键与事实表连接。各种类型的维度表示例包括:

  • 产品表:描述产品,如品牌、型号、颜色和尺寸。
  • 员工表:描述员工,如姓名、职位和部门。
  • 时间表:以记录事件的粒度或精度描述时间。
  • 地理表:描述位置数据,如国家、州、城市和邮政编码。


🚗 示例:汽车销售数据模型

让我们看一个包含事实表和维度表的模式示例,以帮助说明它们之间的关系。

我们可以有一个记录汽车经销商销售情况的事实表。该表将存储每次汽车销售的事实,例如销售日期和销售金额,以及每次销售交易的主键“销售ID”。我们还需要记录其维度,例如售出的车辆和销售该车的销售人员。

这些维度的属性,例如车辆品牌和型号,或销售人员的名字和姓氏,存储在单独的“车辆”表和“销售人员”表中。

然而,我们通过在事实表中记录“车辆ID”和“销售人员ID”作为外键,将它们与销售表链接起来。这样,我们通常最终会为每个事实表建立多个维度表。


📝 总结

在本节课中,我们一起学习了业务数据分为两类:事实和维度。事实通常是业务过程的数值度量,例如以美元计的销售额。维度(如“销售人”和“店铺ID”)对事实进行分类,例如谁销售了产品、何时销售以及从哪个店铺销售。

维度是为事实提供上下文的分类变量,用于过滤、分组和标记。事实表和维度表通过外键和主键链接在一起。

011:使用星型和雪花模式的数据建模 🗄️

在本节课中,我们将要学习数据建模中的两种核心模式:星型模式和雪花模式。我们将了解它们的基本概念、设计原则以及如何在实际场景中应用。

概述

星型模式和雪花模式是构建数据仓库和数据集市时常用的数据建模技术。它们通过组织事实表和维度表,为商业智能分析提供高效、结构化的数据基础。

星型模式建模

上一节我们介绍了数据建模的基本概念,本节中我们来看看星型模式的具体构成。

星型模式的核心是一个位于中心的事实表,它通过外键与多个维度表相连。事实表包含业务过程的度量值(事实),而维度表则提供描述这些事实的上下文信息。

一个星型模式可以看作一个图,其中节点是事实表和维度表,边是这些表之间的关系。这种模式常用于开发称为“数据集市”的专用数据仓库。

雪花模式建模

星型模式是基础,雪花模式则是在其基础上的一种扩展。

雪花模式可以看作是规范化的星型模式。规范化是指将维度表中的层级或层次结构分离到各自的子表中。一个模式只要至少有一个维度表被规范化,就可以被视为雪花模式。

设计星型模式的原则

了解了两种模式的定义后,我们来看看设计一个星型模式数据模型时需要考虑哪些通用原则。

以下是设计星型模式的四个关键步骤:

  1. 选择业务过程:确定你想要建模的业务活动,例如销售、生产或供应链物流。
  2. 确定粒度:定义需要捕获的数据详细程度。例如,是年度区域销售总额,还是销售人员每月的销售业绩。
  3. 识别维度:确定描述事实的属性,例如日期、时间、人员、地点和事物的名称。
  4. 识别事实:确定在业务过程中需要度量的数值,例如销售额、数量、折扣等。

应用实例:A to Z折扣仓库

让我们将这些原则应用到一个具体场景中。假设你是一名数据工程师,需要为一家名为“A to Z折扣仓库”的新店设计数据方案。

他们希望建立一个数据计划来捕获每天在收银台发生的POS(销售点)交易。因此,“销售点交易”就是你要建模的业务过程。

你可以从POS交易中捕获的最细粒度数据来自单个交易行项目,这正是A to Z希望捕获的信息。

下一步是识别维度。这包括以下属性:

  • 购买日期和时间
  • 商店名称
  • 购买的产品
  • 处理交易的收银员

你还可以添加其他维度,例如支付方式、该行项目是退货还是购买,以及客户会员号。

现在考虑事实。你需要识别以下事实:

  • 每个商品的价格金额
  • 每个售出产品的数量
  • 应用于销售的折扣
  • 适用的销售税

其他可考虑的事实还包括环保费或可退回容器的押金。

构建星型模式

基于以上分析,现在可以开始为A to Z折扣仓库构建星型模式了。

在你的星型模式中心,是一个POS事实表。它包含以下内容:

  • PoID:交易中每个行项目的唯一ID。
  • 度量值(事实):交易金额(美元)、涉及的商品数量、销售税以及应用的折扣。

交易中的每个行项目都关联多个维度。你将它们作为外键包含在事实表中,链接到维度表的主键。

例如,商品售出所在的商店名称保存在名为Store的维度表中。在事实表中,通过外键StoreID的值来标识,该键是Store表的主键。

产品信息存储在Product表中,由ProductID键唯一标识。同样,交易日期由DateID键标识,输入交易的收银员由CashierID键标识,涉及的会员由MemberID标识。

从星型模式到雪花模式

我们已经构建了一个星型模式,现在看看如何通过规范化将其扩展为雪花模式。

从你的星型模式开始,可以将维度表中的某些细节提取到它们自己单独的维度表中,从而创建一个表层次结构。

例如,可以使用一个单独的City表来记录商店所在的城市,同时在Store表中包含一个外键CityID以维持链接。你可能还有用于城市、州/省、预定义销售区域以及商店所在国家的表和键。

我们可以继续规范化其他维度,例如产品的品牌和所属类别、日期对应的星期几和月份,以及季度等。

星型模式的这种规范化版本被称为雪花模式,因其多层分支结构类似于雪花。

就像在计算中使用指针指向内存位置一样,规范化减少了数据的内存占用。

总结

本节课中我们一起学习了数据建模中的星型模式和雪花模式。

  • 事实表和维度表,连同外键和主键,共同构成了星型和雪花建模模式。
  • 使用星型模式进行数据建模的设计考虑包括识别业务过程、其粒度、事实和维度。
  • 雪花模式可以描述为规范化的星型模式,其中规范化涉及将维度表分离为由父维度的层级或层次结构定义的单独表,从而减少存储占用。

通过掌握这两种模式,你可以为高效的数据分析和商业智能报告打下坚实的数据基础。

012:数据仓库的暂存区

在本节课中,我们将要学习数据仓库暂存区(Staging Area)的概念、作用以及典型应用场景。暂存区是数据仓库架构中的一个关键组成部分,它作为数据源与目标系统之间的桥梁,主要用于ETL(提取、转换、加载)处理。


🧱 什么是数据仓库暂存区?

数据仓库暂存区可以被视为一个用于ETL处理的中间存储区域。它充当数据源与目标数据仓库、数据集市或其他数据存储库之间的桥梁。

暂存区通常是临时性的,这意味着在ETL工作流成功运行后,其中的数据通常会被清除。然而,许多架构也会出于归档或故障排除的目的而保留数据。暂存区对于监控和优化ETL工作流也非常有用。

暂存区可以通过多种方式实现,包括:

  • 存储在目录中并使用Bash或Python等工具管理的简单平面文件(如CSV文件)。
  • 关系数据库(如DB2)中的一组SQL表
  • 数据仓库或商业智能平台(如Cognos Analytics)内的一个独立数据库实例


🏗️ 暂存区架构示例

上一节我们介绍了暂存区的定义,本节中我们通过一个示例用例来探索一个包含暂存区的数据仓库的可能架构。

假设某企业希望创建一个专门的成本会计在线分析处理系统。所需数据由企业内独立的在线事务处理系统管理,分别来自薪资、销售和采购部门。

以下是数据从源系统流向目标系统的典型步骤:

  1. 提取:数据从这些独立的系统中被提取出来,并加载到暂存数据库中创建的各个暂存表中。
  2. 转换:在暂存区中,使用SQL等工具对这些表中的数据进行转换,使其符合成本会计系统的要求。
  3. 集成:转换后的表可以被集成连接成一个单一的表。
  4. 加载:最后阶段是加载阶段,数据被加载到目标成本会计系统中。

这个过程可以概括为:源系统 -> 暂存区(提取、转换、集成) -> 目标系统


⚙️ 暂存区的典型功能

暂存区可以执行多种功能,以下是一些典型用途:

  • 数据集成:暂存区的主要功能之一是整合来自多个源系统的数据。
  • 变更检测:可以设置暂存区来管理新增和已修改数据的提取。
  • 任务调度:ETL工作流中的各个任务可以被调度,以特定顺序、并发或在特定时间运行。
  • 数据清洗与验证:例如,处理缺失值重复记录
  • 数据聚合:可以使用暂存区来汇总数据。例如,在加载到报告系统之前,将每日销售数据聚合为每周、每月或每年的平均值。
  • 数据规范化:用于强制执行数据类型的一致性或类别名称的统一(例如,使用国家/州代码代替混合的命名约定,如“Mont”、“MA”或“Montana”)。

🛡️ 使用暂存区的优势

暂存区是一个独立的位置,数据从源系统提取至此。因此,提取步骤将验证、清洗等操作与源环境解耦

这有助于最大限度地降低损坏源数据系统的风险,并简化ETL工作流的构建、操作和维护。如果提取的数据以某种方式损坏,也可以轻松恢复。


📝 课程总结

本节课中,我们一起学习了数据仓库暂存区的核心知识。

我们了解到,暂存区充当数据源与目标系统之间的桥梁,主要用于集成数据仓库中不同的数据源。暂存区的实现可以非常简单,例如作为目录中的一组平面文件并用脚本管理,或者作为数据库中的表。

暂存区将数据处理与源系统解耦,从而有助于最大限度地降低数据损坏的风险。尽管它们通常是临时的,但暂存区也可以为了归档或故障排除的目的而保留数据。

013:验证数据质量

在本节课中,我们将学习数据质量验证的核心概念。我们将了解数据验证包含哪些方面、组织为何要进行数据验证、常见的数据质量问题示例,以及处理不良数据的基本流程。


🔍 什么是数据质量验证?

数据验证是指检查数据的准确性、完整性、一致性和时效性。具体来说,它包含以下四个维度:

  • 准确性:数据是否正确无误。
  • 完整性:是否存在数据缺失。
  • 一致性:数据字段的录入是否保持一致。
  • 时效性:数据是否为最新。

数据验证旨在管理数据质量并增强其可靠性。高质量的数据有助于成功整合相关数据及其复杂关系,为组织提供一个完整、互联的数据视图,使其能够进行高级分析、统计建模和机器学习,并最终提升对洞察和决策的信心。

然而,数据质量在日常的公司运营中常常被忽视。根据《哈佛商业评论》的数据,IBM在2016年估计,仅在美国,低质量数据每年造成的损失就超过3万亿美元。


⚠️ 常见的数据质量问题

上一节我们介绍了数据验证的四个维度,本节中我们来看看每个维度下具体会遇到哪些问题。

以下是组织经常面临的数据质量问题:

  • 准确性

    • 问题描述:确保源数据与目标数据匹配。数据从源系统迁移时经常包含重复记录;用户手动输入数据时可能产生拼写错误,导致数据出现异常值、离群值或拼写错误。
    • 示例:CSV文件中的合法逗号可能被新系统误解为列分隔符,导致数据错位或损坏。
  • 完整性

    • 问题描述:数据不完整,表现为本应填充的字段存在空白或空值,或随意使用占位符(如999或-1)来表示缺失值。
    • 示例:由于上游系统故障,可能导致整条记录缺失。

  • 一致性

    • 问题描述:数据录入是否遵循统一标准。例如,日期格式(年月日与月日年)不一致;同一实体(如“John Doe先生”和“John Doe”)因表述不同被系统视为不同对象;计量单位(如公斤与磅、美元与千美元)不统一。
  • 时效性

    • 问题描述:确保数据保持最新状态。例如,维度表中的客户地址可能已过时;客户可能因各种原因更改了姓名。


🛠️ 处理不良数据的流程

识别了数据质量问题后,我们需要一个系统性的流程来解决和预防它们。这是一个复杂且迭代的过程。

以下是处理不良数据的基本步骤:

  1. 制定规则:首先,制定规则来检测不良数据。
  2. 应用与隔离:应用这些规则来捕获并隔离任何不良数据。
  3. 报告与调查:可能需要报告不良数据,并将发现分享给相关领域专家。团队可以调查每个问题的根本原因,在数据沿袭中向上游寻找线索。
  4. 诊断与纠正:诊断每个问题后,开始纠正问题。
  5. 自动化:最终目标是尽可能自动化整个数据清洗工作流。

📈 实践案例:数据仓库加载前的验证

让我们通过一个具体案例来理解上述流程。假设你需要在将数据加载到数据仓库进行分析之前,验证暂存区数据的质量。你发现某些数据源的数据持续存在质量问题,包括数据缺失、重复值、超出范围的值和无效值。

以下是组织管理和解决这些问题的步骤:

  1. 编写检测查询:首先,编写SQL查询来检测这些问题并进行测试。
  2. 制定处理规则:针对反复识别的质量问题,创建处理规则。例如,删除包含超出范围值的行。
  3. 创建自动化脚本:创建一个脚本,在数据仓库夜间加载期间运行查询以检测数据质量问题。该脚本对部分已知问题应用纠正措施和转换。
  4. 前置自动化:创建第二个脚本,在从各数据源提取数据后,自动在暂存区运行步骤3中的脚本和SQL数据验证查询。
  5. 生成报告:步骤3中创建的脚本会生成一份报告,列出所有无法自动解决的剩余问题。管理员可以审查此报告并处理未解决的问题。

🧰 数据质量工具简介

市场上有多种数据质量解决方案。以下是一些主要的供应商及其工具:

  • IBM InfoSphere Information Server for Data Quality 和 IBM Data Refinery
  • Informatica Data Quality
  • SAP Data Quality Management
  • SAS Data Quality
  • Talend for Data Quality
  • Precisely Spectrum Quality
  • Microsoft Data Quality Services
  • Oracle Enterprise Data Quality
  • 开源工具:OpenRefine

每种解决方案都有其优势。以IBM InfoSphere Information Server for Data Quality为例,它是一个可以帮助你在统一环境中执行数据验证的产品。它使你能够持续监控数据质量,并保持数据清洁,帮助你将数据转化为可信的信息。

此外,该工具还提供端到端的内置数据质量工具,帮助你理解数据及其关系、持续监控和分析数据质量、清洗、标准化和匹配数据,以及维护数据沿袭(即数据的起源历史及其流转过程)。


✅ 课程总结

本节课中,我们一起学习了数据质量验证的核心内容。

  • 数据验证包括检查数据的准确性完整性一致性时效性
  • 数据验证的目的是管理数据质量、增强数据可靠性并最大化数据价值。
  • 解决和预防不良数据是一个复杂且迭代的过程。
  • 企业级工具(如IBM InfoSphere Information Server for Data Quality)可以帮助你在统一环境中执行数据验证。

掌握数据质量验证是确保后续数据分析结果准确可靠的关键一步。

014:填充数据仓库

在本节课中,我们将学习如何填充数据仓库。这是一个持续的过程,包括初始加载和后续的增量加载。我们将介绍主要步骤、变更检测方法,并通过一个手动创建销售星型模式的实例来演示整个过程。

🚀 数据仓库填充概述

填充企业数据仓库是一个持续的过程。它始于一次初始加载,随后是定期的增量加载。例如,你可能需要每天或每周加载新数据。在发生重大模式变更或灾难性故障时,则可能需要进行完全刷新。

通常,事实表是动态的,需要频繁更新,而维度表则不常变化。例如,城市或商店列表相当静态,但销售交易每天都在发生。

🛠️ 自动化填充工具

许多工具可用于自动化数据仓库的持续更新过程。像DB2这样的数据库拥有比逐行插入更快的加载工具。加载数据仓库也可以是你ETL数据管道的一部分,该管道可以使用Apache Airflow和Apache Kafka等工具实现自动化。你也可以编写自己的脚本,结合Bash、Python和SQL等底层工具来构建数据管道,并使用Cron进行调度。Infosphere DataStage则允许你编译和运行作业来加载数据。

在填充数据仓库之前,请确保你的模式已经建模完成,数据已暂存在表或文件中,并且你已建立了数据质量验证机制。

📋 初始加载步骤

现在,你已准备好设置数据仓库并实施初始加载。

首先,实例化数据仓库及其模式,然后创建生产表。接着,建立事实表和维度表之间的关系。最后,将经过转换和清洗的数据从暂存表或文件加载到这些表中。

🔄 设置持续数据加载

完成初始加载后,是时候设置持续的数据加载了。

你可以使用脚本自动化后续的增量加载,作为ETL数据管道的一部分。你还可以根据需求,将增量加载安排为每日或每周执行。你还需要包含一些逻辑,以确定暂存区中哪些数据是新的或已更新的。

🔍 变更检测方法

通常,你需要在源系统本身检测变更。

许多关系数据库管理系统都具备识别自给定日期以来任何新增、更改或删除记录的机制。你可能还可以访问时间戳,这些时间戳标识了数据首次写入的时间以及可能被修改的时间。

有些系统可能不太方便,你可能需要将整个源数据加载到ETL管道中,以便随后与目标进行暴力比较。如果源数据量不大,这种方法是可以接受的。

🧹 数据仓库的定期维护

数据仓库需要定期维护,通常是每月或每年一次,以归档不太可能使用的数据。

你可以编写脚本,既删除旧数据,又将其归档到速度较慢、成本较低的存储中。

🧑‍💻 手动填充示例:销售星型模式

让我们通过一个简化的例子来说明这个过程:手动填充一个名为“sales”的星型模式数据仓库。我们假设你已经实例化了数据仓库和sales模式。

以下是一家名为“Shi Auto Sales”的虚构公司的一些汽车销售交易数据样本。你可以看到几个外键列,例如 sales_id(标识销售发票号的顺序键)、emp_no(员工编号)和 class_id(编码所售汽车的类型,如小型SUV)。这些键中的每一个都代表一个维度,指向星型模式中相应的维度表。date 列是一个指示销售日期的维度。amount 列是销售金额,它恰好是我们关注的事实。这个表已经非常接近事实表的形式,唯一的例外是 date 列尚未用外键 date_id 表示。

让我们使用PostgreSQL的终端前端PSQL来演示如何创建维度表,以销售人员维度为例。

使用 CREATE TABLE 子句在 sales 模式下创建 dim_salesperson 表,其中 salesperson_id 作为序列主键,salesperson_alt_id 作为销售人员的员工编号,最后一列是销售人员的姓名。

CREATE TABLE sales.dim_salesperson (
    salesperson_id SERIAL PRIMARY KEY,
    salesperson_alt_id INT,
    salesperson_name VARCHAR(255)
);

现在,你可以开始逐行填充 dim_salesperson 表。

使用 INSERT INTO 子句,指定 salesperson_alt_idsalesperson_name 列,并开始插入值,例如员工编号680和姓名“Cadillac Jack”。你将类似地创建和填充其余维度的表。

你可以输入SQL语句 SELECT * FROM sales.dim_salesperson LIMIT 5; 来查看你的销售人员维度表,并确认一切似乎都已正确填充,例如记录1:员工编号617,销售人员姓名“Go-cart Joe”。

📊 创建事实表并建立关系

现在,是时候创建你的销售事实表了。

使用 CREATE TABLE 语句,以 sales.fact_auto_sales 作为表名,transaction_id 作为 BIGSERIAL 类型的主键,以及各种外键,如 sales_idauto_class_id,最后,我们关注的事实 amount 的类型为 MONEY

CREATE TABLE sales.fact_auto_sales (
    transaction_id BIGSERIAL PRIMARY KEY,
    sales_id INT,
    amount MONEY,
    salesperson_id INT,
    autoclass_id INT,
    sales_d_key INT
);

接下来,你继续设置sales模式中事实表和维度表之间的关系。

例如,你可以对 sales.fact_auto_sales 表应用 ALTER TABLE 语句和 ADD CONSTRAINT 子句,添加一个名为 fk_autoclass_id 的外键,将 autoclass_id 关联到 sales.dim_auto_category 表中同名的列,使用 REFERENCES 子句。然后,你将使用相同的方法为剩余的维度表设置关系。

ALTER TABLE sales.fact_auto_sales
ADD CONSTRAINT fk_autoclass_id
FOREIGN KEY (autoclass_id)
REFERENCES sales.dim_auto_category (autoclass_id);

📥 填充事实表

在定义了所有表并建立了相应的关系之后,终于可以开始使用你最初拥有的销售数据来填充事实表了。

你可以使用 INSERT INTO 语句,指定列名 sales_idamountsalesperson_idautoclass_idsales_d_key,并插入行,例如 (1629, 4200.21, 1, 4, 20190101),这些数据将从汽车销售数据中获取。

INSERT INTO sales.fact_auto_sales (sales_id, amount, salesperson_id, autoclass_id, sales_d_key)
VALUES (1629, 4200.21, 1, 4, 20190101);

你可以通过输入SQL语句 SELECT * FROM sales.fact_auto_sales LIMIT 5; 来查看汽车销售事实表,显示其前五行。在这里,你可以看到单笔汽车销售的美元金额、名为 transaction_id 的主键以及你设置的外键列。

🎯 课程总结

本节课中,我们一起学习了填充企业数据仓库的过程。

你了解到,填充企业数据仓库包括初始创建事实表和维度表及其关系,并将清洗后的数据加载到表中。这是一个持续的过程,始于初始加载,随后是定期的增量加载。事实表是动态的,需要频繁更新,而维度表则更为静态,不常变化。你可以使用脚本或专门的数据管道工具来自动化数据仓库的增量加载和定期维护。

015:查询数据

在本节课中,我们将学习如何查询数据仓库中的数据。具体内容包括:解读星型模式的实体关系图(ERD)、利用表间关系建立查询、通过反规范化或连接表来创建物化视图,以及在 GROUP BY 子句中应用 CUBEROLLUP 选项来生成常见的小计和总计汇总。

CUBEROLLUP 操作能生成管理层经常需要的各类汇总数据。相比编写多个SQL查询,这些操作实现起来要简单得多。物化视图可以方便地创建一个存储表,当视图复杂、查询频繁或数据量大时,可以按计划或按需刷新。由于数据是预先计算好的,查询物化视图通常比查询底层表快得多。将 CUBEROLLUP 与物化视图结合使用,可以进一步提升性能,甚至可以考虑将 CUBEROLLUP 的结果也物化。

理解数据模型与查询基础

上一节我们介绍了课程目标,本节中我们来看看如何开始查询。首先,我们需要理解现有的数据模型。

考虑以下场景:你的任务是为 Shiny Auto Sales 公司创建一些实时汇总表,用于报告一月份按销售人员和汽车类型划分的销售情况。首先,你需要理解他们基于 PostgreSQL 的数据仓库 SASDW 中现有的星型模式。

你启动一个 PostgreSQL 会话,并生成一个实体关系图(ERD),它代表了在 Shiny Auto Sales 数据仓库 SASDW 中实现的销售星型模式。然后,你定位到名为 factact_auto_sales 的中心事实表。该表包含你需要的度量值列 amount。你还发现了销售事实表中的三个外键:sal_date_keyauto_class_idsalesperson_id。这些键分别链接到:

  • 日期维度表:包含日期及相关值,如星期几、月份名称和季度。
  • 汽车类别维度表:包含汽车类别名称和布尔值 is_new 列。
  • 销售人员维度表:包含销售人员姓名。

在这个例子中,我们使用 PostgreSQL。假设你已经启动了终端前端 psql 并连接到了 SASDW 数据仓库。注意,命令提示符包含了你所连接的数据仓库名称 SASDW

探索原始数据表

在理解了表结构之后,接下来我们逐一查看各个表中的具体数据。

以下是探索步骤:

  1. 查询事实表:从 sales.factact_auto_sales 表开始,输入 SQL 语句 SELECT * FROM sales.factact_auto_sales LIMIT 10; 来显示其前10行。你会看到单笔汽车销售的美元金额,但其余列是主键和外键,目前对你没有直接意义。你注意到 sales_id 值是连续的,但编号从 1629 开始,而不是 1。这是因为 Shiny Auto Sales 为你提供的是他们数据的一个窗口子集。
  2. 查询维度表:接下来,查询 autocatego 维度表。现在你可以看到各种汽车类别的有意义名称,如 TruckCompact SUV。你注意到 Truck 类有重复条目,仔细查看后发现,重复条目存在是因为新车和二手车子类别不同。同样,生成销售人员维度表的视图,你会发现八个不同的销售人员姓名,包括 Go HartJoeJane Honda
  3. 查询日期维度表:最后,查看日期维度表。你注意到日期只追溯到 2021年1月1日。Shiny Auto Sales 的联系人告知你,稍后会提供更多细节,目前你可以先用较小的数据集来开发查询。日期表包含可能有用的日期元素,如星期几、月份名称和季度名称。

创建反规范化的物化视图

在查看了各个独立的表之后,我们意识到直接使用键值进行汇总分析并不直观。因此,我们需要将维度信息与事实数据合并。

此时,拥有一个包含你所需维度且具有人类可读列的数据表会更方便,而不仅仅是键。本质上,你希望通过将维度连接回感兴趣的事实来创建数据的反规范化视图。

你继续操作,从各自的表中选择 dateauto_class_nameis_newsalesperson_nameamount 列,并使用 INNER JOIN 在相应的键上将每个维度连接到金额事实。

接下来,为什么不将这个视图捕获为一个名为 denormalized_sales(简称 dn_sales)的物化视图呢?这样你就可以为不同的查询重用这个物化视图,而无需重新创建工作。

你使用子句 CREATE MATERIALIZED VIEW dn_sales AS 后跟用于生成反规范化视图的相同查询来完成此任务。

输入 SELECT * FROM dn_sales LIMIT 10; 来显示生成的物化视图。现在,你有了一个整洁的、人类可读的销售数据时间序列,可用于进一步分析。例如,你可以看到 Cadillac Jack 在 1月5日 以 260,500 美元的价格售出了一辆新的中型SUV。

应用 CUBE 和 ROLLUP 进行汇总分析

有了一个方便查询的物化视图后,本节中我们来看看如何利用它进行高级汇总分析。

接下来,你想将 CUBEROLLUP 操作应用到你的反规范化物化视图上。

让我们看看 CUBE 的结果。这里,你从 dn_sales 中选择 auto_class_namesalesperson_name 和销售金额的总和,其中 is_new 设置为 true。最后,通过 auto_class_namesalesperson_name 对生成的 CUBE 进行分组。

输出看起来像这样。第一行在维度列中没有条目,这意味着“全部”。因此,值 36,676 美元代表所有新车的总销售额。接下来的记录块中两个维度列都有值,例如,你可以读到 Go Carcho 销售的新中型SUV总额为 32,099 美元。同样,最后两个块分别按类别和销售人员汇总了新车销售额。

现在,你将应用 ROLLUP 而不是 CUBE 操作。你决定保持查询与上一个查询相同,只是将 CUBE 替换为 ROLLUP。这是结果视图的样子。现在,ROLLUP 结果比 CUBE 少了 5 行,结果是 13 行而不是 18 行。这个结果的唯一区别是你没有按销售人员汇总的总销售额。CUBE 会生成 GROUP BY 列的所有可能排列组合,而 ROLLUP 只查看 ROLLUP 调用中列出的列顺序所定义的单一排列。

课程总结

本节课中,我们一起学习了如何在数据仓库中高效地查询和汇总数据。

你了解到,对物化视图进行 CUBEROLLUP 汇总为快速查询和分析数据仓库中的数据提供了强大的能力。CUBEROLLUP 操作能生成管理层经常要求的、按维度分组的各类汇总数据。你可以使用连接对星型模式进行反规范化,将人类可理解的事实和维度整合到一个物化视图中。你还可以从物化视图创建暂存表,并在非高峰时段增量刷新它们。

016:分析与商业智能工具简介

在本节课中,我们将要学习分析与商业智能工具的基本概念。我们将了解分析的定义、商业智能工具如何改变分析处理与结果,并认识市场上几种主流的BI工具。


什么是分析?

分析是指系统性地编译和评估数据、统计与运筹学信息,以构建模型,从而做出更优决策的过程。

随着计算、存储、处理器和内存能力的显著提升,其速度、容量和可负担性都大幅增加。如今的数据仓库解决方案能够以低延迟存储海量数据。存储、处理器和内存的容量与速度呈指数级增长,使得组织现在能够以极快的周转时间处理PB级(Petaflops)的数据。

当可用数据越多时,分析的准确性就越高。组织可以利用商业智能工具内置的专业能力,基于统计建模的机器学习来分析数据并发现模式。

现代分析工具极大地缩短了数据处理时间,使得结果近乎实时可得。


分析的三种类型

上一节我们介绍了分析的基本概念,本节中我们来看看分析的主要类型。这些分析结果可以分为以下三类:

以下是分析的三种主要类型:

  • 描述性分析:提供对过去情况的洞察。
  • 预测性分析:提供对未来可能发生情况的洞察。
  • 规范性分析:提供为在未来创造特定结果,组织应采取何种行动的洞察。

什么是商业智能工具?

商业智能工具,或称BI工具,能够实现数据准备、数据挖掘、数据管理和数据可视化。使用BI工具很像拼图,旨在获得对组织更全面的认识。

BI工具帮助组织聚焦于“发生了什么”和“为什么发生”。企业利用其数据来发现正在发生的情况,并确定是什么触发了特定结果。

BI工具作为高度进化的软件,在创建内在智能的过程中应用了统计学和运筹学。它们还能帮助组织利用描述性、诊断性、预测性和规范性分析的力量,来支持运营和战略决策。

用户可以通过仪表盘、报告和基于历史、当前及预测数据的自助式分析,来审视业务运营,从而将数据转化为商业机会。


主流商业智能工具

了解了BI工具的核心功能后,本节中我们来看看市场上有哪些主流解决方案。市场上有许多解决方案赋予组织执行高级分析的能力。

以下是一些知名的市场参与者:

  • IBM Cognos Analytics:集成了利用IBM人工智能和自然语言处理的Watson Analytics。
  • Microsoft Power BI:以其安全的数据洞察能力而闻名。
  • Tableau:以其强大的数据可视化功能而著称。
  • Oracle Analytics Cloud:以其对话式分析功能而知名。
  • SAP Business Objects:以其智能分析功能而闻名。
  • TIBCO Spotfire:为各种规模的组织提供可扩展性。

IBM Cognos Analytics 简介

自2005年以来,IBM已投资超过250亿美元以发展其分析业务。Cognos Analytics 是IBM以人工智能驱动的商业智能与分析软件,它支持从数据发现到运营的整个数据分析生命周期。


课程总结

本节课中,我们一起学习了以下核心内容:

  • 分析是利用数据构建模型以做出更优决策的过程。
  • 商业智能是一种支持数据准备、数据挖掘、数据管理和数据可视化的技术。
  • 软件市场提供了多种商业智能工具。
  • IBM Cognos Analytics 是基于人工智能的顶级BI解决方案之一。

017:Cognos Analytics简介及注册方法 📊

在本节课中,我们将学习IBM Cognos Analytics这一商业智能工具的基本概念,并详细介绍如何注册其试用版本。Cognos Analytics是一个功能强大的平台,能够在一个产品内完成多种数据分析任务。

什么是Cognos Analytics?🔍

上一节我们介绍了课程的整体目标,本节中我们来看看Cognos Analytics的核心定义。

Cognos Analytics是一个多功能工具,允许您在一个产品内同时执行模式一和模式二类型的分析。它包含多种不同的工具,例如:

  • 对数据进行建模的能力。
  • 探索数据的能力。
  • 创建引人注目、高级的分析可视化(如关键驱动因素分析)。
  • 基于您的数据显示自然语言生成的见解。
  • 通过过滤器或创建“突发报告”的能力,为您的特定用户创建量身定制的报告。

此外,它还能够创建出色的仪表板,这将是本课程的重点内容。

如何注册试用版?📝

了解了Cognos Analytics的基本功能后,接下来我们看看如何获取并使用它。

要注册试用版,请访问网址:IBM.biz/try_cognos。如果您已经拥有账户,可以在此处直接登录,您只需填写此表单的部分信息。如果您没有账户,那么我们需要快速填写此表格。

以下是注册时需要填写的关键信息列表:

  • 姓名
  • 电子邮箱
  • 公司名称
  • 选择离您地理位置最近的数据中心(这是需要注意的关键一项)

填写完毕后,系统将为我们启动。我们可以直接从这个工作流程中启动它。

进入系统后,您可以通过此按钮管理订阅。或者,您也可以通过这个URL重新访问系统。

导航与仪表板功能预览 🧭

在下一节视频中,我们将带您初步了解如何导航和使用Cognos Analytics及其仪表板功能。


本节课中,我们一起学习了IBM Cognos Analytics的核心功能,它是一个集数据建模、探索、高级可视化、自然语言报告和定制化仪表板于一体的商业智能工具。同时,我们逐步完成了试用版的注册流程,为后续的实际操作做好了准备。

018:在Cognos Analytics中导航

在本节课中,我们将学习如何在Cognos Analytics中上传电子表格、进行基本导航、创建新的仪表板,以及使用仪表板模板。我们还将熟悉Cognos Analytics仪表板环境中的主要导航区域。


Cognos Analytics主要有两个导航区域:一个位于界面左侧,另一个位于顶部。这些导航区域会根据你在产品中所处的具体模块而动态变化和更新。

今天,虽然Cognos可以连接多种数据库,但我们将从上传一个Excel文件开始。有两种方法可以实现:

以下是两种上传文件的方法:

  • 方法一:点击“新建”按钮,选择“上传文件”,然后浏览并选择目标文件。
  • 方法二:直接将文件拖拽到主登录页面区域。

你会注意到提示信息显示,上传的内容将存放在“我的内容”区域,该区域位于左侧导航栏。无论你采用哪种上传方式,文件最终都会存放在同一位置。上传后,你可以将其从“我的内容”移动到“团队内容”等共享区域。

文件上传时,你会看到“正在分析”的提示。这个过程允许系统整合数据,理解数据结构,以便在我们后续构建内容时,能为你做出更好的假设和决策提供帮助。


上一节我们介绍了如何上传数据,本节中我们来看看如何开始构建仪表板。

创建仪表板的第一步是选择一个模板。系统提供了多种模板,你可以根据想要实现的目标、所需可视化图表的数量和类型来选择。在本例中,我选择一个包含四个图表和一个较大空间的模板。

进入仪表板编辑界面后,我们会看到左侧窗格显示了已上传文件的列标题。这里还有一些其他的导航功能需要重点介绍,以帮助你更好地使用Cognos Analytics。

以下是仪表板编辑界面中的关键导航功能:

  • 可视化图表库:这里展示了系统支持的所有可视化图表类型。
  • 自定义可视化:如果现有图表无法满足需求,你可以上传自己的自定义可视化组件。
  • 小组件:这里提供了额外的组件,如文本、图像、视频、超链接以及各种形状。
  • 固定面板:这个功能允许你将不同的可视化图表固定,以便在系统内的其他仪表板中重复使用。
  • 助手:这个功能允许你用自然语言提问,系统会告诉你一些关于数据的信息,并提供一些可视化建议。我们将在后续视频中详细介绍助手功能。

本节课中我们一起学习了Cognos Analytics的基本导航操作,包括上传数据文件、选择仪表板模板,以及熟悉了仪表板编辑环境中的核心功能区域。

在下一个视频中,我们将更深入地探讨如何具体创建和定制仪表板。

019:在Cognos Analytics中创建简单仪表板

在本节课中,我们将学习如何在Cognos Analytics中创建简单的仪表板。我们将介绍多种创建可视化的方法,包括自动生成、手动配置以及使用智能助手。同时,我们也会学习如何在仪表板内应用筛选器。


🎯 理解数据与调整属性

上一节我们介绍了数据准备,本节我们来看看如何理解数据并调整其属性。当数据上传后,我们需要查看并理解其中包含的数据类型,这可以通过每个数据元素前的图标来识别。

Order ID字段为例,我们实际上需要将其属性从度量更改为标识符。操作步骤如下:

  1. 在数据树中找到Order ID字段。
  2. 右键点击该字段,选择“属性”或类似选项。
  3. 在属性面板中,将其角色从“度量”切换为“标识符”。

完成此操作后,数据的基础结构便已就绪,我们可以开始创建可视化图表。


📈 创建关键绩效指标可视化

接下来,我们开始创建一些可视化图表。最简单的方法是直接从左侧的数据树中将字段拖放到画布上。

以下是创建关键绩效指标(KPI)的步骤:

  • 订单数量:将Order ID字段拖到画布上。系统会自动为标识符类型的数据推荐最佳可视化形式,这里是一个列表。我们可以手动将其更改为摘要卡(如总计),以显示订单总数。
    • 公式/逻辑订单数量 = COUNT(Order ID)
  • 订购总量:将Quantity Ordered字段拖到画布上,系统通常会将其汇总为总和。
  • 平均销售额:将Sales字段拖到画布上。然后,在图表属性中将其汇总方式从“总和”更改为“平均值”。
    • 公式/逻辑平均销售额 = AVERAGE(Sales)

就这样,我们拥有了几个用于监控和跟踪的关键绩效指标。


🗺️ 通过选择图表类型创建可视化

另一种创建可视化的方法是先选择想要的图表类型,再将其拖到画布上并配置数据。

例如,如果我们想查看基于国家/地区的全球销售额分布,可以按以下步骤操作:

  1. 从图表面板中选择一个地图可视化组件,并将其拖到画布上。
  2. Country字段拖放到地图的“地理位置”区域。
  3. Sales字段拖放到地图的“颜色”或“大小”区域,以用颜色深浅或气泡大小表示销售额高低。

如果数据很多,可以在数据树的搜索框中输入“Country”来快速定位字段。创建后,可以手动拖拽图表的边缘来调整其大小,画布上会显示其占用的百分比。

当然,每个可视化组件都有许多属性可以调整。虽然我们不会深入每个细节,但如果您想实现特定效果,查看属性面板通常能找到相应设置。


🤖 使用智能助手创建可视化

最后,我们将展示通过智能助手创建可视化的方法。当您不确定要分析什么时,助手可以提供建议。

以下是使用助手的流程:

  1. 打开智能助手面板。
  2. 如果您没有明确想法,可以点击“建议问题”。助手会提供一些您可能未曾想到的分析视角。
  3. 例如,我们输入一个简单的问题:“哪个产品线的销售额最高?”
  4. 点击执行后,助手会生成相应的可视化图表(如柱状图),并提供基于此图表的其他备选视图。
  5. 如果对某个视图满意,只需将其从助手面板拖放到主画布上即可。它就会成为仪表板中的一个新组件,您可以像调整其他图表一样调整其大小。

🔍 实现仪表板的交互与筛选

我们创建的所有仪表板都设计为交互式的。这意味着您可以通过点击图表中的元素来筛选整个仪表板的数据视图。

交互筛选有两种主要方式:

  • 点击筛选:例如,在“产品线销售额”图表中,点击“经典汽车”这个柱条。您会看到仪表板上的所有其他图表(如全球销售额地图、KPI卡)都立即更新,只显示与“经典汽车”相关的数据。您可以进行多次点击以组合筛选。
  • 拖拽字段筛选:您也可以将数据树中的某个字段直接拖到画布顶部的“筛选器”区域。例如,如果想按订单状态筛选,可以将Status字段拖到筛选器栏。您可以选择一个或多个状态值(例如“On Hold”)。应用后,整个仪表板将只反映处于“On Hold”状态的订单数据,从而提供聚焦的洞察。

📝 课程总结

本节课中,我们一起学习了在Cognos Analytics中创建简单仪表板的核心技能。我们掌握了三种创建可视化的方法:直接拖放字段生成KPI、手动选择图表类型进行构建,以及利用智能助手快速获得分析建议。更重要的是,我们理解了如何通过点击和拖拽字段来实现仪表板各组件间的联动筛选,从而进行交互式数据分析。

在下一节视频中,我们将深入探讨仪表板更多的高级功能。

020:Cognos分析仪表板的高级功能 🚀

在本节课中,我们将学习Cognos分析仪表板的一些高级功能。这些功能能帮助你更深入地探索数据、创建自定义指标,并优化数据可视化效果,从而获得更深刻的业务洞察。


上一节我们介绍了仪表板的基础操作,本节中我们来看看如何创建自定义计算字段。

与Excel类似,我们的仪表板可以创建计算。以下是创建计算字段的几种方法。

  • 你可以从列出的多种计算选项中进行选择。
  • 或者,你也可以直接开始输入,系统会提供建议。

例如,我们想计算每个产品的利润率。这可以通过公式 利润率 = 建议零售价(MSRP) - 销售单价(Sale Price) 来实现。

创建完成后,这个计算字段会和其他字段一样出现在数据列表中。现在,我们可以选择“利润率”字段,并查看按“产品线”分类的情况。从结果中,我们可以看到“火车”产品线的利润率表现不佳,甚至为负值。


为了深入分析“火车”产品线亏损的原因,我们可以利用导航路径功能。

导航路径允许你选择数据中的任意字段,进行上钻或下钻分析。例如,我们可以从“产品线”开始,下钻到“客户”,最终甚至可以查看具体的“订单”。

在“火车”产品线上右键点击并选择下钻,我们可以看到导致负利润的几位具体客户。继续下钻到其中一位客户(如“Mini Gifts”),可以发现虽然他们有一笔订单是盈利的,但其他订单均造成了亏损。


接下来,我们看看如何从可视化图表中排除特定数据。

假设我们查看按“状态”和“产品线”划分的销售额。此时视图可能仍受之前下钻操作的影响,只显示“火车”产品线的数据。我们需要点击返回按钮,回到初始视图。

在图表中,我们发现“已发货”状态的数据量极大,影响了其他状态的观察。我们可以右键点击“已发货”项,选择“排除”,从而更清晰地查看其他状态(如“处理中”、“已取消”等)的数据情况。


当数据点过多时,我们可以使用“置顶/置底”功能来聚焦关键信息。

例如,在查看“客户名称”和“销售额”的列表时,数据可能非常庞大。为了快速找到最重要的客户,我们可以右键点击“销售额”字段,选择“显示前N个”。默认情况下,系统会显示前10名客户。这样,我们就能立即看到销售额最高的10位客户。


最后,我们还可以快速创建信息图来增强视觉表现。

如果你有一个展示总销售额的图表,可以轻松地将其转换为信息图。只需从左侧的形状库中(比如一个存钱罐图标),将其拖放到销售额图表上。瞬间,一个生动的信息图就生成了,使数据展示更加直观和吸引人。


本节课总结

本节课我们一起学习了Cognos分析仪表板的四项高级功能:

  1. 创建计算字段:像在Excel中一样,使用公式(如 利润率 = MSRP - Sale Price)生成新的数据指标。
  2. 使用导航路径:通过右键下钻,从汇总数据(如产品线)深入查看明细数据(如具体客户和订单)。
  3. 从可视化中排除数据:右键排除特定项(如“已发货”状态),以更清晰地分析其余数据。
  4. 设置置顶/置底:右键选择“显示前N个”,快速聚焦于最重要的数据点(如前10名客户)。
  5. 创建信息图:通过拖放图形元素(如存钱罐图标)到数据上,快速生成视觉化的信息图。

掌握这些功能,将帮助你更灵活、更高效地从数据中发现有价值的信息。

021:使用Cognos访问您的数据仓库

在本节课中,我们将学习如何通过IBM Cognos Analytics连接到数据仓库,并利用其中的数据创建交互式仪表板。我们将详细介绍从建立连接到最终生成可视化报表的完整步骤。


除了文件和静态数据集,您还可以使用Cognos Analytics访问云端或企业内的多种数据库和数据仓库。这些数据源包括IBM DB2 Warehouse、Amazon Redshift、Oracle、Microsoft SQL Server、MongoDB、MySQL、PostgreSQL、Snowflake等。


上一节我们了解了Cognos支持的数据源类型,本节中我们来看看连接和访问数据仓库的具体步骤。

以下是访问数据仓库并创建仪表板的五个核心步骤:

  1. 识别源数据库:确定要连接的数据库、模式和数据表,并获取其连接凭据。
  2. 创建数据服务器连接:在Cognos Analytics中,为选定的数据库建立数据服务器连接。
  3. 创建数据模块:为每个连接,为选定的数据表创建数据模块。
  4. 创建仪表板并添加数据源:新建一个仪表板,并将上一步创建的数据模块添加为数据源。
  5. 拖拽字段并创建可视化:将数据模块中的列(字段)拖拽到仪表板画布上,以生成各种可视化图表。


接下来,让我们通过一个演示来具体看看这五个步骤。本次演示将使用一个IBM DB2 on Cloud数据库作为源数据仓库。

第一步:获取数据库连接凭据

首先,您需要从DB2实例管理页面获取服务凭据以建立连接。点击“New credential”创建新的凭据。

现在,您需要命名服务凭据,将角色设置为“Manager”,然后点击“Add”添加服务凭据。

向下滚动,您可以在服务凭据列表中看到刚刚创建的凭据。点击凭据旁边的下拉箭头以查看详细信息。以下是服务凭据详情的片段。复制用户名、密码和JDBC URL。您需要用实际值替换JDBC URL中的用户名和密码占位符。请记住移除尖括号 <>

第二步:识别并预览数据

接下来,让我们识别并预览将在Cognos仪表板中使用的数据,即所需的模式和表。在“Manage”下点击“Go to UI”。此操作将打开一个页面,您可以在其中查看、编辑和管理DB2实例。

在DB2 UI中,点击“Data”图标,选择模式,然后选择您想在Cognos Analytics仪表板中使用的表。在本例中,选择“Customer Loyalty”表。

在这里,您正在预览模式“LFN96733”中的“Customer Loyalty”表。查看您的表有助于了解可以可视化的数据属性。

第三步:在Cognos中创建数据服务器连接

现在您已经获得了数据库凭据并确定了要可视化的数据,接下来转到Cognos Analytics网页。点击汉堡菜单,然后点击“Manage”。您会看到多个管理选项,但您的任务是点击“Data Server Connections”来连接数据服务器。点击加号图标以查看可以使用Cognos连接的数据仓库选项。

接下来,点击“IBM DB2”。现在选择“Connect anonymously”选项,并粘贴您从DB2实例管理页面复制的JDBC连接字符串。用您的DB2服务凭据替换用户名和密码,然后点击“Test”以确保数据连接成功。

如果测试成功,您将看到一个带有绿色对勾图标的“Success”提示。然后您可以为此连接命名,这里连接被命名为“myDB2”。点击“Save”。

第四步:加载模式并创建数据模块

接下来,您需要加载模式。转到“Schema”选项卡,点击您要加载的模式旁边的三个点,然后点击“Load metadata”。此操作需要几秒钟,Cognos会从DB2实例获取并加载元数据。

元数据加载完成后,您会在模式名称旁边看到一个绿色对勾标记。

现在您已连接到DB2实例,接下来创建一个新的数据模块,该模块将链接到源数据。此操作会打开一个页面,您可以在其中选择数据源。

点击左侧窗格中的“Data Servers”图标,然后点击您之前创建的连接“myDB2”。在这里,点击您要使用的模式,然后点击“OK”。当新模块打开时,点击表名,Cognos将打开该表,您可以查看数据。点击文件图标以保存该表。

为数据模块指定一个合适的名称。这里数据模块被命名为“My Customer Loyalty Module”,并保存在“My Content”文件夹中。点击“Save”。

第五步:创建并设计仪表板

现在数据模块已创建,您将使用它来创建仪表板。在IBM Cognos Analytics菜单上,点击“New”,然后点击“Dashboard”。您可以选择选项卡式或信息图布局,每种都有多个模板选项。在本演示中,点击此模板,然后点击“Create”。

点击“Choose a source”以选择用于仪表板的数据模块。

在仪表板窗口中,点击“My Customer Loyalty”数据模块名称列下的“Add source”,然后点击“Add”。在“My Customer Loyalty”数据模块的左侧窗格中,将您想要查看的属性拖拽到仪表板上。在此示例中,选择了“Quantity Sold”。

您可以看到总销售数量以及标题(默认是字段标签)。您可以双击标签来更改或格式化文本。您还可以根据设计要求调整属性的长度、宽度和位置。

接下来,将属性拖拽到选项卡区域,并将其渲染为条形图。这些属性被渲染成一个条形图,显示各产品线多年来的销售额。您可以调整选项卡的大小和位置,并可以像处理“Quantity Sold”属性一样添加标题并格式化它。

对于第三个选项卡,让我们将“Country”拖到“Quantity Sold”下方,以可视化区域销售情况。

世界地图出现了。您可以根据需要调整区域的大小。让我们为地图添加一些属性。

您想要添加“Quantity Sold”,以便可视化区域销售情况。

现在,当您点击特定区域时,可以看到条形图,并且销售数量会根据所选区域进行更新。这是完成后的仪表板一瞥。请记住用适当的链接保存您完成的仪表板。Cognos使您可以轻松地将完成的仪表板作为可查看的链接进行分享。


本节课中我们一起学习了如何在Cognos Analytics中使用包括平面文件、数据库和数据仓库在内的各种数据源来创建仪表板和报告。

访问Cognos中的数据库需要数据服务器连接数据模块。数据服务器连接建立了与数据库的连接,而数据模块是一个容器或指向特定表和数据库对象的链接。您可以像添加任何其他源一样将数据模块添加到仪表板,并使用其字段和列来创建可视化图表。

Cognos Analytics提供了多种模板和可视化选项,可以利用数据仓库中的数据创建交互式仪表板。

posted @ 2026-03-26 08:50  布客飞龙II  阅读(0)  评论(0)    收藏  举报