利用 Data Virtualization 实现 Db2 Warehouse 数据虚拟化
本教程纳入 IBM Cloud Pak for Data 快速入门学习路径
- 文章: IBM Cloud Pak for Data 简介
- 教程: 利用 Data Virtualization 实现 Db2 Warehouse 数据虚拟化
- 教程: 利用 Data Refinery 实现数据可视化
- Code Pattern: 借助内置 Notebook 的 Watson Machine Learning 进行数据分析、建模以及部署
- Code Pattern: 利用 Watson OpenScale 监视模型
数十年来,企业一直都在不断尝试通过将数据从不同运作系统复制到中央数据存储区(例如,数据集市、数据仓库和数据湖)进行分析来突破数据孤岛。这种做法不仅成本高昂,还易于出错。大部分企业平均要管理 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 数据库
登录(或注册)IBM Cloud,在仪表板中单击 Create resource 按钮以转至 Catalog 。从 Database 部分中找到Db2 Warehouse 磁贴。
选择 Entry 套餐,因为它兼容 Lite 帐户。
注意:可能会显示一条消息,表明此服务将收费,请忽略此消息,因为低于 1 GB 的数据无需付费。
创建 Db2 Warehouse 服务后,单击 Open Console 。
您将转至 Db2 Web 控制台仪表板,可在这里单击 Load 按钮来加载数据。
加载 Db2 Warehouse 数据库
选择 billing.csv 文件。
在下一个面板上,配置数据库中存放数据的位置。我们将使用为我们的数据库创建的模式,它类似于 DASHXXXX ,其中 XXXX 是随机生成的数字。选中它,然后单击 + New Table 并将其命名为 Billing 以创建一个新表。
下一个面板接受默认值,然后单击 Next 。
在下一个面板上,单击 Begin Load 以开始加载数据。
验证是否已装入所有行。单击 Load More Data 以继续。
对 products.csv 和 customer-service.csv 重复上述过程,将这些表分别命名为 PRODUCTS 和 CUSTOMERS 。须注意,将通过另一个面板来配置数据,可以接受默认值。
记下凭证
在进入 IBM Cloud Pak for Data 之前,我们需要通过以下方式为 Db2 Warehouse 创建凭证:返回服务,单击 Service credentials 按钮,然后创建新凭证。将这些凭证记录下来,以供下一部分使用。
第 4 步:创建新的 IBM Cloud Pak for Data 项目
至此,我们将对剩余步骤使用 IBM Cloud Pak for Data。
登录到 IBM Cloud Pak for Data
启动浏览器并浏览至 IBM Cloud Pak for Data 部署
创建一个新项目
转至 (☰) 菜单并单击 Projects
创建新项目,选择 Analytics project ,为其提供一个唯一名称,然后单击 *OK。在下一个页面上单击 Create 。
第 5 步:添加新的数据源连接
为了使 IBM Cloud Pak for Data 能够读取 Db2 Warehouse 数据,需要将新的 数据源 添加到 IBM Cloud Pak for Data 中。这需要输入常用 JDBC 详细信息。
转至 (☰) 菜单,并单击 *Connections* 选项以添加新数据源。
首先为新 Connection 命名,并选择 Db2 Warehouse on Cloud 作为连接类型。这样应会显示更多字段。使用上一部分中您自己的 Db2 Warehouse 连接所使用的凭证填充新字段(或者让讲师提供共享凭证)。单击 Test Connection ,测试成功后,单击 Add 。
这样将在概述部分中列出新连接。
利用 Data Virtualization 实现 Db2 数据虚拟化
注意:本部分需要是 Admin 用户才有权访问 IBM Cloud Pak for Data 集群。
对于本部分,我们现在将使用 Data Virtualization 工具,从现已作为 IBM Cloud Pak for Data 中的连接公开的 Db2 Warehouse 导入数据。
向 Data Virtualization 添加数据源
要启动 Data Virtualization 工具,请转至 (☰) 菜单并单击 Collect ,然后单击 Virtualized data 。
选择在上一步中生成的数据源,然后单击 Next 。
新连接将列为 Data Virtualization 的数据源。
开始对数据进行虚拟化
在本部分中,由于现在我们可以访问 Db2 Warehouse 数据,因此可以将这些数据虚拟化到 IBM Cloud Pak for Data 项目中。单击 Menu 按钮,并选择 Virtualize 。
这样会在表中显示多个表(配置 Db2 Warehouse 实例时会创建众多表作为样本数据)。找到您先前创建的表,根据说明,其名称分别为: CUSTOMER 、 PRODUCT 和 BILLING 。选中后,单击 Add to cart ,然后单击 View Cart 。
下一个面板会提示用户选择要将数据分配到哪个项目,这里选择您在先前练习中创建的项目。单击 Virtualize 以开始此流程。
您将收到已创建虚拟表的通知!在 Data Virtualization 工具中单击 View my data ,查看新的虚拟化数据。
连接虚拟化数据
现在,我们将 连接 已创建的表,以获取合并数据集。在此处执行操作要比在 Notebook 中更方便,后者必须编写代码才能处理三种不同数据集。单击任意两个表(如 PRODUCTS 和 BILLING ),并单击 Join view 按钮。
要连接这两个表,我们需要选取这两个数据集共用的键。这里我们选择将第一个表中的 customerID 映射到第二个表中的 customerID 。单击其中之一,并将其拖到对应项。绘制好连线后,单击 Join 。
在下一个面板中,我们将对连接的数据命名,我选择的名称是 billing+products ,然后复查连接的表,确保其中存在所有列,并且仅存在一个 customerID 列。单击 Next 以继续。
接下来,我们将选择要将连接的视图分配到哪个项目,这里选择您在先前练习中创建的项目。单击 Create view 以开始此流程。
您将收到连接已成功的通知!单击 View my data 以重复此过程,从而获取全部三个表。
要点重复上述步骤,但这次选择连接新连接的视图 ( billing+products ) 以及最后一个虚拟化的表 ( CUSTOMERS ),从而创建包含全部三个表的新连接视图,我们把它命名为 billing+products+customers 。切换到我们的项目,其中应显示全部三个虚拟化的表,以及两个连接的表。完成此步骤后再进入下一个部分。
为用户分配“Steward”角色
转至菜单中的 Data Virtualization 选项。单击 Manage users
单击 Add user ,并确保所有用户都具有 Steward 角色。
将用户添加到集群
在菜单中,单击 Manage users,然后单击 Add user。
对于本部分,我们现在将使用 Data Virtualization 工具,从现已作为 IBM Cloud Pak for Data 中的连接公开的 Db2 Warehouse 导入数据。
第 6 步:分配虚拟化数据
将数据分配给您的项目
在菜单中单击 Collections -> Virtualized Data ,您将转至 My data 部分。您在此处应看到管理员为您分配的数据。选择可用的三个数据集,并单击 Assign 开始将其导入您的项目。
在此选择您先前创建的项目。
切换到我们的项目,其中应显示全部三个虚拟化的表,以及两个连接的表。完成此步骤后再进入下一个部分。
结束语
本教程演示了如何利用 IBM Cloud Pak for Data 上的 Data Virtualization 实现 Db2 Warehouse 数据虚拟化,以便在多个不同数据源之间执行查询。本教程纳入 IBM Cloud Pak for Data 快速入门学习路径 。要继续学习本系列并了解有关 IBM Cloud Pak for Data 的更多信息,可阅读下一个教程 利用 Data Refinery 实现数据可视化 。
本教程翻译自: Virtualizing Db2 Warehouse data with data virtualization (2019-10-04)。