博客
Db2 for AI 开发者指南
IBM Db2 Warehouse 具有内置的机器学习功能,可利用 Db2 Warehouse on Cloud 中的数据来训练并运行模型。操作由 Db2 Warehouse 引擎本身来执行,无需移动数据。通过这种方式,您可以提高计算和检索结果时的性能。
本博客属于 Db2 for AI 学习路径的一部分。
级别 | 主题 | 类型 |
---|---|---|
100 | Db2 for AI 开发者指南 | 博客 |
101 | 使用高性能 CRUD 应用程序收集房屋销售数据 | Pattern |
201a | 利用 Golang 和内存中数据库机器学习功能预测房屋价值 | Pattern |
201b | 利用 Python 和机器学习预测房屋价值 | 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 的开发者而定制的工具。包括:
- 用于构建现代化应用程序的常用语言的 SDK
- 用于机器学习的存储过程
- 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 可以让操作:
- 更简单 – 开发者无需了解如何创建模型,只需了解如何调用模型即可。使用开源连接器,可以轻而易举地做到这一点。
- 更安全 – 数据和模型保存在同一位置。
- 更快速 – 模型位于相同的数据库中,无需从磁盘加载模型。
本博客是学习路径的第一部分,它将指导您快速了解 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)