本 Code Pattern 纳入 Db2 for AI 学习路径

等级 课题 分类
100 Db2 for AI 开发者指南 博客
101 使用高性能 CRUD 应用程序收集房屋销售数据 Code Pattern
201a 使用 Golang 和内存数据库机器学习功能预测房屋价值 Code Pattern
201b 使用 Python 和机器学习预测家庭价值 Code Pattern

Db2 历史悠久。它是 20 世纪 80 年代发布的、专用于 IBM 大型机的数据库。在 20 世纪 90 年代,其支持范围已扩展至 Linux、Unix 和 Windows。在本世纪 00 年代,在 z/OS 上发布了 Db2,并且宣布 Db2 可用作 MySQL 中的引擎。在本世纪 10 年代,云已无处不在,Db2 on Cloud 和 Db2 Warehouse on IBM Cloud 正是在这样的背景下诞生的。现在,AI 风靡一时,Db2 也正准备增加 AI 支持。等一下,你说什么?

我在此郑重声明,Db2 已成为开发者和 AI 的理想之选。开玩笑的,请继续往下看。我将介绍 Db2 11.5 的一些强大功能,以及另外两个专为使用 Db2 的开发者而定制的工具。包括:

  1. 用于构建现代化应用程序的常用语言的 SDK
  2. 用于机器学习的存储过程
  3. VSCode 扩展 Db2Connect

常用语言的 SDK

Db2 团队已对使用现代化编程语言编写的连接器实现开源。这样,开发者就可以使用 Node.js、Python 甚至 Golang 等语言来构建应用程序。它全部托管于 ibmdb 组织上,以下是部分示例:

语言 存储库
Java java-db2
Go go-db2
Python python-imdb
Node node-ibm_db

用于机器学习的存储过程

IBM Db2 Warehouse 具有内置的机器学习功能,可利用 Db2 Warehouse on Cloud 中的数据来训练并运行模型。操作由 Db2 Warehouse 引擎本身来执行,无需移动数据。通过这种方式,您可以提高计算和检索结果时的性能。您可在此处了解有关 IBM Db2 Warehouse on Cloud 以存储过程形式支持的各种算法的更多信息。

这是一个存储过程调用示例,它使用训练数据集创建了一个线性回归模型。以下示例将计算过去 12 个月内每家航空公司的平均到达延迟。这有助于最终用户确保其航班按时到达目的地,从而避免错过任何会面或会议。以下调用将根据名为 BFD12_TRAIN 的表中的数据来创建一个名为 BFD12_ARR 的模型,并对名为 ARR_DELAY 的列进行预测。


CALL IDAX.LINEAR_REGRESSION
('model=BFD12_ARR,
intable=BFD12_TRAIN,
id=ID,
target=ARR_DELAY,
incolumn=OP_CARRIER; MANUFACTURER; MODEL; DAY_OF_WEEK; MONTH; DEP_TIME_BLK,
coldefrole=ignore, calculatediagnostics=false');

通过上面创建的模型,我们可以使用 predict linear regression 存储过程来预测新航班的到达延迟。请参阅以下示例:


CALL IDAX.PREDICT_LINEAR_REGRESSION
('model=BFD12_ARR,
intable=BFD12_TEST,
outtable=BFD12_ARR_OUT,
id=ID');

以上存储过程 PREDICT_LINEAR_REGRESSION 使用线性回归模型 BFD_12_ARR 来根据 BFD12_TEST 表中的数据预测到达延迟,并将输出存储在 BFD12_ARR_OUT 表中。通过主键 ID 将生成的所有新表连接在一起。

工作原理

我们无法像上面描述的那样直接使用存储过程。首先,我们必须构建无监督神经网络。创建模型后,我们可通过正确的 SQL 语法来调用模型。训练人工神经网络属于处理开销,而非调用。与任何神经网络一样,随着数据的发展,模型也需要更新。

传统 SQL

以下是传统 SQL 片段,用于展示如何在不使用存储过程的情况下获得相同的结果:


SELECT "OP_CARRIER", AVG("ARR_DELAY") AS "AVERAGE ARRIVAL DELAY"
FROM BFD_12MONTHS
GROUP BY "OP_CARRIER"
ORDER BY "AVERAGE ARRIVAL DELAY" ASC;

结果

传统 SQL 基于现有数据来计算平均延迟。它无法预测未来航班的延迟。为克服此难题,我们可以使用 Db2 Warehouse 的内置存储过程来创建模型并使用模型来预测未来结果。

参阅 Code Pattern 在 db2 上运行机器学习查询,获取有关该功能的更多详细信息。

引起开发者关注的原因

  • AI 非常有用,可以使您的应用程序更加强大。
  • 创建模型是一个既困难又耗时的过程。需要使用新函数、抽象来加载、更新模型并对数据进行评分。
  • 将机器学习作为存储过程来使用,可以解决所有这些问题。在不需要学习 Tensorflow 的情况下利用机器学习来构建模型,可以像执行其他数据库调用一样轻松调用此模型,并为应用程序注入 AI。
  • 由于操作由 Db2 Warehouse 引擎本身来执行,因此无需移动数据。通过这种方式,您可以提高计算和检索结果时的性能。

Db2 Augmented Data Explorer

IBM Db2 Augmented Data Explorer 是一个免费工具,采用复杂的分析方法并为用户提供由自然语言驱动的搜索和发现。如果应用程序开发者需要在其应用程序中提供搜索功能,那么就必须考虑如何构建整个堆栈,包括从搜索和建立索引到提供出色的图形化用户体验。

利用 ADE 的 RESTful API,开发者可以搜寻数据并建立索引,然后提供针对此数据(其中包括自动选中的可视化)的搜索体验。现在,开发者无需担心如何提供端到端体验,只需集成并使用这种免费技术,即可为其应用程序用户提供绝佳的搜索和发现体验。点击了解更多信息。

VSCode 扩展

我最后要介绍的是一个新 VSCode 扩展,即 Db2Connect。利用 Db2Connect,您可以建立 Db2 连接以便在本地测试连接和应用程序,而无需部署自己的应用程序。

L-R:扩展搜索结果;扩展安装页面;扩展配置面板

Db2 for AI 开发者指南

结束语

这一切意味着什么呢?我认为,使用 Db2 for AI 可以让操作:

  • 更简单 – 开发者无需了解如何创建模型,只需了解如何调用模型即可。使用开源连接器,可以轻而易举地做到这一点。
  • 更安全 – 数据和模型保存在同一位置。
  • 更快速 – 模型位于相同的数据库中,无需从磁盘加载模型。

本博客是学习路径的第一部分,它将指导您快速了解 IBM Db2 for AI 提供的功能及其使用方式。此学习路径包含分步式 Code Pattern 和完整的工作代码示例。在跟随此学习路径进行操作的过程中,您将了解到 Db2 for AI 的更多功能和不同用例。

让我们开始吧。第一步将学习如何使用 IBM Db2 Warehouse on Cloud 来创建 Web 应用程序,此应用程序将使用 Node.js 在数据库中创建、更新和删除记录。

本文翻译自:A developers guide to data for AI(2019-8-5)

加入讨论