利用 Data Virtualization 实现 Db2 Warehouse 数据虚拟化

本教程纳入 IBM Cloud Pak for Data 快速入门学习路径

数十年来,企业一直都在不断尝试通过将数据从不同运作系统复制到中央数据存储区(例如,数据集市、数据仓库和数据湖)进行分析来突破数据孤岛。这种做法不仅成本高昂,还易于出错。大部分企业平均要管理 33 个独立数据源,这些数据源的结构和类型各不相同,并且通常淹没在难以查找和访问的数据孤岛中。

借助 Data Virtualization,您无需进行复制便可查询众多系统上的数据,从而降低了成本。因为您直接在数据源中查询最新数据,故而它还可以简化分析过程的同时使分析时刻保持最新状态且准确无误。

在本教程中,我们将学习如何利用 IBM Cloud Pak for Data 上的 Data Virtualization 实现 Db2 Warehouse 数据虚拟化,以便在多个不同数据源之间执行查询。

学习目标

在本教程中,您将学习如何:

  • 向 IBM Cloud Pak for Data 添加数据集。
  • 向 Data Virtualization 添加数据源。
  • 虚拟化数据并创建联合视图。
  • 将已虚拟化的数据分配给项目。
  • 为用户添加角色并执行管理任务。

前提条件

预估时间

完成本教程大约需要 30-45 分钟。

步骤

第 1 步:获取数据

下载以下 3 个数据文件:

第 2 步:关于此数据集

用于本教程的数据源原先来自于 Watson Analytics,曾用于 Kaggle 项目,其中包含电信公司客户流失率的相关信息。数据拆分为三个 CSV 文件。

billing.csv

此文件包含以下属性:

  • 客户 ID
  • 合同 (按月、一年、两年)
  • 无纸化记账 (“是”或“否”)
  • 付款方式 (银行转账、信用卡、电子支票或邮寄支票)
  • 每月费用 (美元)
  • 总费用 (美元)
  • 客户流失率 (“是”或“否”)

customer-service.csv

  • 客户 ID
  • 性别 (“男”或“女”)
  • 老年人 (1 或 0)
  • 配偶 (“有”或“无”)
  • 家属 (“有”或“无”)
  • 工作任期 (1-100)

products.csv

  • 客户 ID
  • 电话服务 (“有”或“无”)
  • 多重线路 (“有”、“无”或“无电话服务”)
  • 互联网服务 (DSL、“光纤”或“无”)
  • 网络安全 (“有”、“无”或“无网络服务”)
  • 在线备份 (“有”、“无”或“无网络服务”)
  • 设备保护 (“有”、“无”或“无网络服务”)
  • 技术支持 (“有”、“无”或“无网络服务”)
  • 流媒体电视 (“有”、“无”或“无网络服务”)
  • 流媒体电影 (“有”、“无”或“无网络服务”)

第 3 步:为 Db2 Warehouse 数据库设置种子

我们将需要一处合适位置来存储数据。对于本教程,我们出于以下几个原因而选择使用 Db2 Warehouse on IBM Cloud:它模拟真实企业数据库;IBM Cloud 提供了一个免费层;我们可以轻松加载数据集。

将数据加载到本地 DB2 Warehouse

这些说明介绍了如何将数据加载到 DB2 Warehouse 的本地 Cloud Pak for Data 版本。对于 IBM Cloud 版本,操作步骤基本相同。

单击左上角的 (☰) 汉堡菜单,然后选择 Collect -> My data

选择 Collect  My data

转到 Databases 选项卡,单击 DB2 Warehouse 磁贴上的 3 条竖线,然后单击 Open

打开 DB2 Warehouse 服务

Menu 下,选择 LoadLoad Data

Menu Load Data

选择 Browse files

DB2 浏览文件

浏览至此存储库所克隆到的位置,然后浏览至 data/split/ 并选择 billing.csv,最后单击 Next

DB2 浏览至 billing.csv

选择 NULLIDRA 模式,然后单击 + New table。在“New Table Name”下,输入“BILLING”,单击 Create,然后单击 Next

DB2 选择模式并创建表

接受默认值,然后单击 Next。单击 Begin Load

DB2 加载最终文件

products.csvcustomer-service.csv 重复上述过程,将这些表分别命名为 PRODUCTSCUSTOMERS

第 4 步:创建新的 IBM Cloud Pak for Data 项目

登录到 IBM Cloud Pak for Data

启动浏览器并浏览至 IBM Cloud Pak for Data 部署

Cloud Pak for Data 登录

创建一个新项目

转至 (☰) 菜单并单击 Projects

(☰) Menu -> Projects”/></p>
<p>单击 <em>New project</em></p>
<p><img class=

创建新项目,选择 Analytics project,为其提供一个唯一名称,然后单击 OK。在下一个页面上单击 Create

选取名称

第 5 步:添加新的数据源连接

为了使 IBM Cloud Pak for Data 能够读取 Db2 Warehouse 数据,需要将新的数据源添加到 IBM Cloud Pak for Data 中。这需要输入常用 JDBC 详细信息。

要获取本地 DB2 Warehouse 的连接信息,请转至 (☰) 菜单,然后单击 My Instances 选项。

(☰) Menu  My Instances

My instances 中,转至 Provisioned instances 选项卡。突出显示您的本地 DB2 Warehouse,单击最右侧的 3 个垂直点,然后单击 View Details

配置的本地 DB2 详细信息

在单独的选项卡中将此窗口保持打开状态,或者复制所需的连接信息:HostPortDatabase nameUsernamePassword。可以从 JDBC Connection URL 中获取端口,例如,对于 URL jdbc:db2://os-workshop-nov22worker-05.vz-cpd-nov22.com:30290/BLUDB,端口是 URL 中冒号后面的数字,即 30290

DB2 连接凭据

添加新数据源

转至 (☰) 菜单,并单击 Connections 选项以添加新数据源。

(☰) Menu -> Collections”/></p>
<p>在 Overview 中,单击 <em>Add connection</em>。</p>
<p><img class=

首先为新 Connection 命名,并选择 Db2 Warehouse on Cloud 作为连接类型。这样应会显示更多字段。使用上一部分中您自己的 Db2 Warehouse 本地连接所使用的凭证填充新字段。单击 Test Connection,在测试成功并显示 Success The test connection was successful. 后,单击 Add 以保存连接信息。

添加 Db2 Warehouse on Cloud 连接

这样将在概述部分中列出新连接。

连接已添加成功!

利用 Data Virtualization 实现 Db2 数据虚拟化

注意:本部分需要是 Admin 用户才有权访问 IBM Cloud Pak for Data 集群。

对于本部分,我们现在将使用 Data Virtualization 工具,从现已作为 IBM Cloud Pak for Data 中的连接公开的 Db2 Warehouse 导入数据。

向 Data Virtualization 添加数据源

要启动 Data Virtualization 工具,请转至 (☰) 菜单并单击 Collect,然后单击 Data Virtualization

(☰) Menu -> Collect -> Data Virtualization”/></p>
<p>在空白概述中,单击 <em>Add</em>,然后选择 <em>Add data source</em>。</p>
<p><img class=

选择在上一步中生成的数据源,然后单击 Next

添加 Db2 Warehouse 连接

新连接将列为 Data Virtualization 的数据源。

Db2 Warehouse 连接现已与 Data Virtualization 关联

开始对数据进行虚拟化

在本部分中,由于现在我们可以访问 Db2 Warehouse 数据,因此可以将这些数据虚拟化到 IBM Cloud Pak for Data 项目中。单击 Menu 按钮,并选择 Virtualize

Menu -> Virtualize”/></p>
<p>这样会在表中显示多个表(配置 Db2 Warehouse 实例时会创建众多表作为样本数据)。找到您先前创建的表,根据说明,其名称分别为:<code style=CUSTOMER、PRODUCTBILLING。选中后,单击 Add to cart,然后单击 View Cart

选择要虚拟化的表

下一个面板会提示用户选择要将数据分配到哪个项目,这里选择您在先前练习中创建的项目。单击 Virtualize 以开始此流程。

将已虚拟化的数据添加到您的项目中

您将收到已创建虚拟表的通知!在 Data Virtualization 工具中单击 View my data,查看新的虚拟化数据。

大功告成!我们已得到了虚拟化数据

连接虚拟化数据

现在,我们将连接已创建的表,以获取合并数据集。在此处执行操作要比在 Notebook 中更方便,后者必须编写代码才能处理三种不同数据集。单击任意两个表(如 PRODUCTSBILLING),并单击 Join view 按钮。

选择连接两个表

要连接这两个表,我们需要选取这两个数据集共用的键。这里我们选择将第一个表中的 customerID 映射到第二个表中的 customerID。单击其中之一,并将其拖到对应项。绘制好连线后,单击 Join

映射两个 customerID 键

在下一个面板中,我们将为连接后的数据提供一个唯一名称(为遵循 SQL 标准,需要选择一个全大写的名称)。我选择的是 XXXBILLINGPRODUCTS(其中 XXX 是我的用户 ID,并且全部大写)。然后,检查合并后的表,确保所有列都存在,并且只有一个 customerID 列。单击 Next 以继续。

复查建议连接的表

接下来,我们将选择要将连接的视图分配到哪个项目,这里选择您在先前练习中创建的项目。单击 Create view 以开始此流程。

将连接的数据表添加到您的项目中

您将收到连接已成功的通知!单击 View my virtualized data 以重复此过程,从而获取全部三个表。

数据连接成功!

要点 重复上述步骤,但这次选择连接新连接的视图 (XXXBILLINGPRODUCTS) 以及最后一个虚拟化的表 (CUSTOMERS),从而创建包含全部三个表的新连接视图,我们把它命名为 XXXBILLINGPRODUCTSCUSTOMERS。切换到我们的项目,其中应显示全部三个虚拟化的表,以及两个连接的表。完成此步骤后再进入下一个部分。

本部分结束时得到的数据集

授予对虚拟化数据的访问权

为了让其他用户能够访问您刚刚虚拟化的数据,您需要为他们授予访问权。请遵循以下步骤,让这些用户可以看到虚拟化数据。

转至 (☰) 菜单中的 Data Virtualization。单击 Menu -> My virtualized data

单击您创建的虚拟化数据,然后单击其中一项右侧的 3 个水平点 ...,然后选择 Manage access

管理对虚拟化数据的访问权

单击 Specific users 按钮,然后单击 + grant access

为特定用户授予访问权

选择要为其授予访问权的用户,然后单击 Add

选择要为其授予访问权的用户

为用户分配“Steward”角色。

转至菜单中的 Data Virtualization 选项。单击 Manage users

Data Virtualization 中的 Manage users

单击 Add user,并确保所有用户都具有 Steward 角色。

Data Virtualization 中的 Manage users

第 6 步:分配虚拟化数据

将数据分配给您的项目

在菜单中单击 Collections -> Data Virtualization,您将转至 My data 部分。您在此处应看到管理员为您分配的数据。选择可用的数据集,并单击 Assign 开始将其导入您的项目。

选择要导入的数据

在此选择您先前创建的项目。

将数据分配给项目

切换到我们的项目,其中应显示全部三个虚拟化的表,以及两个连接的表。完成此步骤后再进入下一个部分。

本部分结束时得到的数据集

结束语

本教程演示了如何利用 IBM Cloud Pak for Data 上的 Data Virtualization 实现 Db2 Warehouse 数据虚拟化,以便在多个不同数据源之间执行查询。本教程纳入 IBM Cloud Pak for Data 快速入门学习路径。要继续学习本系列并了解有关 IBM Cloud Pak for Data 的更多信息,可阅读下一个教程利用 Data Refinery 实现数据可视化