5 关于 Oracle Machine Learning Notebooks Classic

一个笔记本可以包含许多段落。段落是一个笔记本组件,您可以在其中编写和运行 SQL 语句、PL/SQL 脚本、R 和 Python 代码以及 conda 指令。您可以单独运行段落,也可以使用单个按钮运行笔记本中的所有段落。

段落具有输入部分和输出部分。在输入部分中,指定要与代码或文本一起运行的解释器。此信息将发送到要运行的解释器。在输出部分中,提供了解释器的结果。

经典记事本页列出了与选定项目关联的所有记事本。您可以在此处创建、编辑和运行记事本。

您可以在 Notebooks Classic 页中执行以下操作:

图 5-1 OML 经典笔记本页面

经典 OML 记事本页
  • 转至 OML 记事本:单击转至 OML 记事本以转至 Oracle Machine Learning Notebooks 页。

  • 创建:单击创建以创建新笔记本。

  • 编辑:单击某个记事本行以将其选中,然后单击编辑。您可以编辑记事本名称,并在编辑记事本对话框中添加注释。

  • 删除:单击某个记事本行以将其选中,然后单击删除

  • 复制:单击记事本行以选择它,然后单击复制。这将创建记事本的副本,并且在记事本名称中包含后缀 _1 的“记事本”页上列出了该副本。

  • 移动:选择一个记事本,然后单击移动以将记事本移至不同的项目,无论是在同一工作区还是在其他工作区中。您必须具有 AdministratorDeveloper 权限才能跨项目和工作空间移动记事本。您可以移动正在从作业运行的记事本,因为当您从作业运行记事本时,它会运行记事本的副本。

    注意:

    如果记事本处于“正在运行”状态,或者目标项目中已存在具有相同名称的记事本,则无法移动。
  • 复制:选择记事本并单击复制以将记事本复制到相同或不同工作区中的其他项目。您必须具有 AdministratorDeveloper 权限才能在不同的项目和工作空间中复制记事本。
  • 保存为模板:要将记事本保存为模板,请选择记事本,然后单击保存为模板。在“另存为模板”对话框中,您可以定义模板的位置,以将其保存在“模板”下的个人共享中。

  • 导入:要将笔记本导入为 .json 文件,请单击导入。选择要导入记事本的项目和工作区。

  • 导出:要导出工作簿,请单击导出。您可以以 Zeppelin 格式 ( .json ) 文件和 Jupyter 格式 ( .ipynb ) 导出笔记本,然后将其导入到相同或不同的环境中。
  • 版本:要创建记事本的版本,请选择它,然后单击版本。您可以通过创建笔记本的版本来试验笔记本,也可以通过单击还原版本还原到旧版本。

    注意:

    您还可以通过打开笔记本,然后单击版本控制选项 版本控制 来对笔记本进行版本控制。使用此选项,您可以创建新版本、查看版本历史记录、恢复旧版本以及删除已打开的笔记本的任何旧版本。
  • 复制到 OML 记事本:使用带有后缀 _new 的原始名称将所选记事本复制到记事本界面。现在,您可以通过单击左侧导航菜单中的记事本或单击此页右上角的转至 OML 记事本来访问此记事本。
  • 要打开笔记本并运行它,请单击该笔记本。记事本在编辑模式下打开。

5.1 创建经典笔记本

经典笔记本是一个基于 Web 的界面,用于数据分析、数据发现、数据可视化和协作。

无论何时创建经典笔记本,它都具有解释器设置规范。经典笔记本包含一个内部绑定列表,用于确定解释器绑定的顺序。经典笔记本由段落组成,段落是笔记本组件,您可以在其中编写 SQL 语句、运行 PL/SQL 脚本和运行 Python 命令。段落具有输入部分和输出部分。在输入部分中,指定要与文本一起运行的解释器。此信息将发送到要执行的解释器。在输出部分中,提供了解释器的结果。
要创建经典记事本,请执行以下操作:
  1. 在 Oracle Machine Learning UI 主页上,单击 Notebooks Classic。将打开“经典记事本”页。
  2. 经典记事本页上,单击创建
    显示创建记事本窗口。
  3. 名称字段中,提供记事本的名称。
  4. 备注字段中,输入备注(如果有)。
  5. 单击确定。
您的经典笔记本已创建,它将在笔记本编辑器中打开。现在,您可以使用它来运行 SQL 语句、运行 PL/SQL 脚本、运行 Python、R 和 Conda 命令。为此,请在段落的输入部分中指定以下任一指令:
  • %sql - 连接到 SQL 解释器并运行 SQL 语句
  • %script - 连接到 PL/SQL 解释器并运行 PL/SQL 脚本
  • %md - 连接到 Markdown 解释器并从 Markdown 纯文本生成静态 html
  • %python - 连接到 Python 解释器并运行 Python 脚本
  • %r - 连接到 R 解释器并运行 R 脚本。
  • %conda - 连接到 Conda 解释器,并在笔记本会话中安装第三方 Python 和 R 库。

5.2 编辑经典笔记本

创建 OML 经典记事本后,它将自动打开,使用默认的 %sql 解释器向您呈现单个段落。可以通过显式指定 %script, %python, %sql%r%md%conda 之一来更改解释器。

使用与记事本关联的项目设置上下文。
您可以在项目中编辑现有经典记事本。要编辑现有经典记事本,请执行以下操作:
  1. Oracle Machine Learning UI 主页上,选择可用记事本的项目。
  2. 转至 Oracle Machine Learning UI 浏览器,然后选择经典记事本。将列出项目中可用的所有记事本。
  3. 单击要打开和编辑的记事本。
    所选记事本将以编辑模式打开。
  4. 在编辑模式下,您可以使用 Oracle Machine Learning Notebooks Classic 工具栏选项在段落中运行代码,用于配置设置和显示选项。

    图 5-2 笔记本工具栏

    经典笔记本工具栏
    您可以执行以下任务:
    • 编写代码以提取数据
    • 单击 运行 可运行记事本中的一个或多个段落。
    • 单击 显示隐藏代码 可隐藏笔记本中所有段落中的所有代码。再次单击它以显示代码。
    • 单击 显示隐藏输出 可隐藏笔记本中所有段落的所有输出。再次单击它以查看输出。
    • 单击 清除输出 可从记事本中的所有段落中删除所有输出。要查看输出,请再次单击运行图标。
    • 单击 笔记本电脑清晰 可删除记事本中的所有段落。
    • 单击 导出记事本 以导出记事本。
    • 单击 搜索代码 可搜索笔记本中存在的代码中的任何信息。
    • 单击 关键字 可查看键盘快捷方式列表。
    • 单击 解释器绑定 为记事本设置解释器绑定的顺序。
    • 单击 笔记本显示选项 可选择三个笔记本显示选项之一。
      • 单击默认可查看记事本中所有段落中的代码、输出和元数据。
      • 单击简单可仅查看记事本中所有段落中的代码和输出。在此视图中,将隐藏笔记本工具栏和所有编辑选项。您必须悬停鼠标才能查看编辑选项。
      • 单击报告以仅查看记事本中所有段落中的输出。
    • 单击 编辑选项 可访问特定于段落的编辑选项,例如清除输出、删除段落、调整宽度、字体大小、运行选定段落上方或下方的所有段落等。
    • 添加动态表单,例如“文本输入”表单、“选择表单”、“复选框”表单,以便于选择输入并轻松筛选笔记本中的数据。Oracle Machine Learning 支持以下 Apache Zeppelin 动态表单:
      • 文本输入表单 - 允许您为文本输入创建简单表单。

      • 选择表单 - 允许您创建包含用户可选择值的范围的表单。

      • 复选框表单 - 允许插入用于选择多个输入的复选框。

    注意:

    Apache Zeppelin 动态表单仅在 SQL 解释器笔记本上受支持。
  5. 编辑完记事本后,单击返回
    这将返回到经典记事本页。

5.2.1 导出记事本

您可以以 Zeppelin 格式 (.json) 文件和 Jupyter 格式 (.ipynb) 导出经典笔记本,然后将其导入到相同或不同的环境中。

要导出经典记事本,请执行以下操作:
  1. 经典记事本页面上,选择要导出的记事本。您可以选择导出一个或多个或所有记事本。
  2. 在笔记本编辑器的顶部面板上,单击导出,然后单击以下任一选项:
    支持导出记事本格式
    • 要导出的记事本 - 要导出记事本,请单击:
      • 全部 - 导出所有记事本。
      • 选中 - 导出所选记事本。
    • 格式 - 选择要导出记事本的格式:
      • Zeppelin - 将记事本导出为 .json(JavaScript 对象表示法)文件。
      • Jupyter - 将记事本导出为 .ipynb 文件。
    导出的记事本将另存为压缩文件夹中的 .json 文件或 .ipynb 文件。

5.2.2 导入记事本

您可以将可插入数据库 (PDB) 中的记事本导入工作区。您还可以将 Jupyter 记事本导入 Oracle Machine Learning UI。

Oracle Machine Learning UI 支持导入 Zeppelin (.json) 和 Jupyter (.ipynb) 笔记本。

注意:

从 Oracle Database 20c 开始,"database" 专门指多租户容器数据库 (CDB)、可插入数据库 (PDB) 或应用程序容器的数据文件。
要导入记事本,请执行以下操作:
  1. 在 Oracle Machine Learning UI 主页上,单击经典记事本
  2. 在“经典笔记本”页面上,单击导入
    这会打开文件上载对话框。浏览并选择要导入的记事本。

    注意:

    您必须将记事本另存为 .json 文件才能将其导入。您可以导入从非 Oracle Apache Zeppelin 环境导出的记事本,但只能运行支持的段落类型。
  3. 文件上传对话框中,浏览并选择 .json 文件,然后单击打开
    这会将记事本文件导入工作区。
  4. 单击导入的记事本将其打开。在“经典笔记本”页面上,单击齿轮图标以查看解释器绑定。

5.2.3 在记事本中创建复选框表单

复选框表单支持在段落中多次选择输入。输入可用作记事本中的复选框选项。

要创建复选框表单,请执行以下操作:
  1. 打开要在其中添加复选框表单的记事本。
  2. 在 SQL 语句中,使用以下语法定义“复选框”表单:
    ${checkbox:formName=defaultValue1|defaultValue2...,option1|option2...}
    例如,运行 SQL 语句:
    SELECT ${checkbox:whichcolumn=OWNER|OBJECT_TYPE, OWNER|OBJECT_NAME|OBJECT_TYPE|CREATED|STATUS} FROM ALL_OBJECTS WHERE OBJECT_TYPE IN ('VIEW', 'TABLE', 'INDEX', 'SYNONYM');
    在本例中,
    • 复选框表单为 WhichColumn
    • 复选框中可用的多选选项包括 OWNER、OBJECT_NAME、OBJECT_TYPE、CREATEDSTATUS
    • 字段 OWNEROBJECT_TYPE 定义为默认值
    • 表名为 ALL_OBJECTS
    • 配置为显示的列包括 OWNER、OBJECT_NAME、OBJECT_TYPE、CREATED 和 STATUS
  3. 运行笔记本。笔记本中提供了名为 WhichForm 的复选框表单,如屏幕截图中所示。checkbox_form

5.2.4 在记事本中创建选择表单

“Select Form(选择表单)”允许您从值列表中选择输入值,并动态检索段落中定义的选定值。

要创建 Select 表单:
  1. 打开要在其中添加文本输入表单的记事本。
  2. 在 SQL 语句中,使用语法定义 Select 表单:
    ${formName=defaultValue,option1|option2...}.
    例如,运行 SQL 语句:
    SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = '${OBJ=INDEX,INDEX|TABLE|VIEW|SYNONYM}';
    select_form
    在本例中,
    • 表单名称为 obj
    • 可用值列表为 INDEX, TABLE, VIEW, SYNONYM.
    • 表名为 ALL_OBJECTS
    • 列名为 OBJECT_TYPE
    obj 表单的下拉列表中选择任何值。所选值将在 ALL_OBJECTS 表的 OBJECT_TYPE 列中检索。

5.2.5 在记事本中创建文本输入表单

“文本输入”表单允许您动态检索记事本中定义的值。

要创建“文本输入”表单,请执行以下操作:
  1. 打开要在其中添加“文本输入”表单的记事本。
  2. 在 SQL 语句中,使用以下语法定义“文本输入”表单:
    ${formName}
    例如,运行 SQL 语句:
    SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = '${OBJ}';
    在本例中,
    • 表单名称为 obj
    • 表名为 ALL_OBJECTS
    • 列名为 OBJECT_TYPE
    在此处,将为表 ALL_OBJECTS 中的列 OBJECT_TYPE 创建文本格式 obj 。您可以在表单字段 obj 中输入不同的值,并运行记事本以检索列 OBJECT_TYPE 中的相应值。
  3. 运行该段落。笔记本现在显示文本输入表单字段 obj ,如屏幕截图中所示。您可以在 obj 字段中输入值,然后运行记事本检索表 ALL_OBJECTS 中列 OBJECT_TYPE 的相应值。
    • 如果在 obj 字段中输入 TABLE 并运行记事本,则记事本将检索 OBJECT_TYPE 列中的 TABLE ,如屏幕截图中所示。具有对象类型表的文本输入表单
    • 如果在 obj 表单字段中输入 VIEW 并运行记事本,则记事本将检索列 OBJECT_TYPE 中的值 VIEW,如屏幕截图中所示。 具有对象类型视图的文本输入表单
  4. 还可以使用以下语法在表单中指定默认值:
    ${formName=defaultValue}
    要为“文本输入”表单分配默认值,请将 SQL 语句修改为:
    SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = '${obj=TABLE}'
    此处,分配给表单的默认值为 TABLE.运行段落后,将在列 OBJECT_TYPE 中检索默认值 TABLE,如屏幕截图中所示。
    带默认值的文本输入表单

5.3 版本:经典笔记本

您可以对经典笔记本进行版本化或创建备份,对其进行试验,并根据需要恢复到原始笔记本。

要对经典笔记本进行版本控制,请执行以下操作:
  1. 经典记事本页上,选择要版本化的记事本,然后单击版本
    将打开 Versions(版本)页面。
  2. 在所选记事本的版本页上,单击 + 版本。
    创建版本对话框将打开。
  3. 创建版本对话框中,输入笔记本特定版本的注释,然后单击确定
  4. 版本化的笔记本现在列在版本页面上。您可以执行以下任务:
    • 单击 + 版本可创建笔记本的现有版本的另一个版本。
    • 单击新建记事本可从所选记事本版本创建新记事本。
    • 单击删除将删除所选版本的记事本。
    • 单击还原版本可还原早期版本的记事本。
    • 单击返回到记事本以转至“经典记事本”页

5.4 将经典记事本另存为模板

您可以在个人共享中将现有经典记事本另存为模板。

要将经典记事本另存为模板,请执行以下操作:
  1. 经典记事本页上,选择要另存为模板的记事本,然后单击另存为模板
    将打开另存为模板对话框。
  2. 名称字段中,输入记事本模板的名称。
  3. 备注字段中,输入备注(如果有)。
  4. 标记字段中,输入模板的标记。
  5. 保存到中,选择:
    • 个人:如果要将此记事本模板保存到“个人”,以便只有账户才能查看或使用此记事本。
    • 共享:如果要保存和共享此记事本模板,以便其他用户可以从此模板查看和创建可以运行和编辑的记事本。

5.5 在记事本段落中使用 SQL 解释器

Oracle Machine Learning 笔记本支持多种语言。每个段落都与特定的解释器相关联。例如,要运行 SQL 语句,请使用 SQL 解释器。要运行 PL/SQL 语句,请使用 script 解释器。

在 Oracle Machine Learning UI 笔记本中,您可以添加多个段落,每个段落可以连接到不同的解释器,例如 SQL 或 Python。通过指定 %,然后指定要使用的解释器来标识要使用的解释器:sqlscriptrpythoncondamarkdown

段落具有输入部分和输出部分。在输入部分中,指定要与文本一起运行的解释器。此信息将发送到要运行的解释器。在输出部分中,提供了解释器的结果。
您可以在记事本段落中使用以下指令:
  • %sql - 支持标准 SQL 语句。在 %sql 中,SELECT 语句的结果直接显示在表查看器中,可以访问其他可视化选项。使用图表设置中的选项执行分组、汇总和其他操作。
  • %script - 同时支持 SQL 语句和 PL/SQL。在 %script 中,SELECT 语句的结果作为文本字符串输出提供。
  • %conda - 支持 Conda 环境。在段落开头键入 %conda 以连接到 Conda 环境,并与 Python 的第三方库一起工作。
  • %r - 支持 R 脚本。在段落开头键入 %r 以连接到 R 解释器。
  • %python - 支持 Python 脚本。在段落开头键入 %python 以连接到 Python 解释器。
  • %md - 支持减价加价语言。

注意:

要对所有数据运行分组依据,建议使用 SQL 脚本在数据库中执行分组,并返回要在记事本中绘制图表的汇总信息。在记事本级别分组可以很好地处理小数据集。如果您向笔记本提取过多数据,可能会因为内存不足而遇到问题。可以使用连接组页上的呈现行限制选项设置记事本的行限制。
要提取和可视化笔记本中的数据,请执行以下操作:
  1. 记事本页上,单击要运行的记事本。
    笔记本在编辑模式下打开。
  2. 键入 %SQL 以调用 SQL 解释器,然后按 Enter 键。您的笔记本现在可以运行 SQL 语句了。
  3. 键入 SQL 语句以从 Oracle Database 提取数据。例如,键入 SELECT * FROM TABLENAME,然后单击 运行图标。或者,按 Shift+Enter 键运行记事本。

    注意:

    笔记本必须以普通用户(即非管理员用户)身份打开。管理员无法使用运行记事本选项。
    这将提取笔记本中的数据。
  4. 数据将显示在段落的输出中。
    解释器的结果将显示在输出部分中。该段落的输出部分包含一个图表组件,该组件以图形输出显示结果。图表界面允许您与笔记本段落中的输出进行交互。您可以选择运行和编辑笔记本中的单个段落或所有段落。
    对于“表选项”,单击设置并选择:
    • useFilter:为列启用过滤器。

    • showPagination:为增强导航启用分页。

    • showAggregationFooter:允许页脚显示聚合值。

    还可以通过单击列名旁边的向下箭头对列进行排序。

    要可视化表格数据,请单击每个图形表示形式的相应图标,如下所示:
    • 单击 条形图 表示条形图中的数据。
    • 单击 饼图 表示饼图中的数据。
    • 单击 面积图 表示面积图中的数据。
    • 单击 折线图 以表示折线图中的数据。
    • 单击 散点图 以表示星形图中的数据。

5.5.1 关于 Oracle Machine Learning for SQL

Oracle Machine Learning for SQL (OML4SQL) 在 Oracle Database 中提供了强大、先进的机器学习功能。您可以使用 Oracle Machine Learning for SQL 构建和部署预测性和描述性机器学习模型,为现有和新应用添加智能功能。

Oracle Machine Learning for SQL 提供了大量数据库内算法,可用于执行各种机器学习任务,例如分类、回归、异常检测、功能提取、集群和市场篮子分析等。OML4SQL 的编程接口是用于构建和维护模型的 PL/SQL,以及用于评分的一系列 SQL 函数。

将 Oracle Machine Learning Notebook 与 SQL 和 PL/SQL 解释器结合使用,分别运行 SQL 语句 (%sql) 和 PL/SQL 脚本 (%script)。使用 Oracle Machine Learning for SQL 可以:
  • 执行数据探索和数据分析
  • 构建、评估和部署机器学习模型,
  • 使用这些模型对数据进行评分

5.5.2 在记事本中设置输出格式

Oracle Machine Learning Notebooks 允许您在记事本中预设置查询输出的格式。

要预设查询输出的格式,必须按如下方式使用命令 SET SQLFORMAT
  1. 在 Oracle Machine Learning 中打开记事本。
  2. 键入命令:
    %script
    SET SQLFORMAT format_option
    例如,如果希望输出采用 ansiconsole 格式,则键入以下命令,后跟 SQL 查询:
    SET SQLFORMAT ansiconsole;
    SELECT * FROM HR.EMPLOYEES;
    此处,输出格式为 ansiconsole,表名为 HR.EMPLOYEES

    注意:

    此格式设置可用于脚本解释器。因此,必须添加前缀 %script,如本示例中所示。

5.5.3 SET SQLFORMAT 命令支持的输出格式

通过使用 SET SQLFORMAT 命令,可以生成各种格式的查询输出。

注意:

这些输出格式可用于脚本解释器。因此,必须包括前缀 %script
可用的输出格式包括:
  • CSV - CSV 格式生成标准逗号分隔变量输出,字符串值用双引号括起来。语法如下:

    %script

    SET SQLFORMAT CSV

  • HTML - HTML 格式生成响应式表的 HTML。表的内容会动态更改,以匹配在文本字段中输入的搜索字符串。语法如下:

    %script

    SET SQLFORMAT HTML

  • XML - XML 格式生成基于标记的 XML 文档。所有数据都显示为 CDATA 标记。语法如下:

    %script

    SET SQLFORMAT XML

  • JSON - JSON 格式生成一个 JSON 文档,其中包含列的定义及其包含的数据。语法如下:

    %script

    SET SQLFORMAT JSON

  • ANSICONSOLE-ANSICONSOLE 格式将列大小调整为数据的宽度以节省空间。它还会突出显示列,而不是单独的一行输出。语法如下:

    %script

    SET SQLFORMAT ANSICONSOLE

  • INSERT - INSERT 格式会生成可用于在表中重新创建行的 INSERT 语句。语法如下:

    %script

    SET SQLFORMAT INSERT

  • LOADER - LOADER 格式生成以竖线分隔的输出,字符串值用双引号括起来。输出中不包括列名。语法如下:

    %script

    SET SQLFORMAT LOADER

  • FIXED - FIXED 格式生成固定宽度列,所有数据都用双引号括起来。语法如下:

    %script

    SET SQLFORMAT FIXED

  • DEFAULT-DEFAULT 选项清除所有以前的 SQLFORMAT 设置,并返回到缺省输出。语法如下:

    %script

    SET SQLFORMAT DEFAULT

    注意:

    还可以通过键入 SET SQLFORMAT 来运行不带格式名称 DEFAULT 的此命令。
  • DELIMITED - DELIMITED 格式允许您手动定义分隔符字符串以及字符串值中括起的字符。语法如下:

    %script

    SQLFORMAT DELIMITED delimiter left_enclosure right_enclosure

    例如:

    %script

    SET SQLFORMAT DELIMITED ~del~ " "

    SELECT * FROM emp WHERE deptno = 20;

    输出:

    "EMPNO"~del~"ENAME"~del~"JOB"~del~"MGR"~del~"HIREDATE"~del~"SAL"~del~"COMM"~del~"DEPTNO"

    在此示例中,分隔符字符串为 ~del~,字符串值(如 EMPNO, ENAME, JOB 等)用双引号括起来。

5.6 在记事本段落中使用 Python 解释器

Oracle Machine Learning 笔记本支持多种语言。每个段落都与特定的解释器相关联。要在笔记本中运行 Python 命令,必须先连接到 Python 解释器。要使用 OML4Py,必须导入 oml 模块。

在 Oracle Machine Learning UI 笔记本中,您可以添加多个段落,每个段落可以连接到不同的解释器,例如 SQL 或 Python。通过指定 %,然后指定要使用的解释器来标识要使用的解释器:sqlscriptrpythoncondamarkdown

本示例说明如何:
  • 连接到 Python 解释器以在笔记本中运行 Python 命令
  • 导入 Python 模块 - omlmatplotlibnumpy
  • 检查 oml 模块是否已连接到 Oracle Database

注意:

z 是保留关键字,不能用作 Oracle Machine Learning UI 记事本中 %python 段落中的变量。
假设:此示例假定您已创建名为附注的新记事本。
  1. 打开 Py Notebook 并单击解释器绑定图标。查看可用的解释器绑定。
  2. 要连接到 Python 解释程序,请键入 %python
    现在,您已准备好在笔记本中运行 Python 脚本。
  3. 要使用 OML4Py 模块,必须导入 oml 模块。键入以下 Python 命令以导入 oml 模块,然后单击运行图标。或者,可以按 Shift+Enter 键运行记事本。
    import oml
  4. 要验证 oml 模块是否连接到数据库,请键入:
    oml.isconnected()
    连接笔记本后,该命令将返回 TRUE.该笔记本现在已连接到 Python 解释器,您已准备好在笔记本中运行 python 命令。

演示如何使用 Python 模块 matplotlibnumpy 的示例,并使用随机数据绘制两个直方图。

  1. 键入以下命令以导入模块:
    %python
    import matplotlib.pyplot as plt
    import numpy as np
    • Matplotlib - 用于呈现图形的 Python 模块
    • Numpy - 用于计算的 Python 模块
  2. 键入以下命令以在两个直方图中计算和呈现数据。
    
    list1 = np.random.rand(10)*2.1
    list2 = np.random.rand(10)*3.0
    
    plt.subplot(1,2,1) # 1 line, 2 rows, index nr 1 (first position in the subplot)
    plt.hist(list1)
    plt.subplot(1, 2, 2) # 1 line, 2 rows, index nr 2 (second position in the subplot)
    plt.hist(list2)
    plt.show()
    在此示例中,命令导入两个 Python 模块以计算数据并以两个直方图 list1 和 list2 呈现数据。
  3. 单击运行
    包含图表组件的段落的输出部分以两个直方图显示结果 - list1 和 list2,如屏幕截图中所示。

5.6.1 关于 Oracle Machine Learning for Python

Oracle Machine Learning for Python (OML4Py) is a component of Oracle Autonomous Database, which includes Oracle Autonomous Data Warehouse (ADW), Oracle Autonomous Transaction Processing (ATP), and Oracle Autonomous JSON Database (AJD).通过使用 Oracle Machine Learning UI 笔记本,您可以在数据上运行 Python 函数以进行数据探索和准备,同时利用 Oracle Database 作为高性能计算环境。Oracle Machine Learning 用户界面 (UI) 可通过 Autonomous Data Warehouse (ADW)、 Autonomous Transaction Processing (ATP) 和 Autonomous JSON Database (AJD) 服务获得。

Oracle Machine Learning for Python (OML4Py) 支持开源 Python 脚本语言和环境为企业和大数据做好准备。Oracle Machine Learning for Python 专为处理涉及大量和少量数据的问题而设计,它将 Python 与 Oracle Autonomous Database 集成,包括其强大的数据库内机器学习算法,并支持 Python 代码部署。

使用 Oracle Machine Learning for Python 可以:
  • 利用 Oracle Database 作为高性能计算引擎的 Python 执行数据探索、数据分析和机器学习
  • 使用数据库内算法,通过集成 Python API 使用这些模型构建和评估机器学习模型并对数据进行评分
  • 通过具有数据并行和任务并行处理的 REST 接口部署用户定义的 Python 函数

Python 解释器使用 Python 3。8.5 处理 Oracle Machine Learning UI 笔记本中的 Python 脚本。要使用解释器,请在段落开头指定 %python 指令。Python 解释器支持以下 Python 模块:

  • cx_Oracle 7.3.0
  • cycler 0.10.0
  • joblib 0.14.0
  • kiwisolver 1.1.0
  • matplotlib 3.1.2
  • numpy 1.18.1
  • pandas 0.25.3
  • pyparsing 2.4.0
  • python-dateutil 2.8.1
  • pytz 2019.3
  • scikit_learn 0.22.1
  • scipy 1.4.1
  • six 1.13.0

5.7 在记事本段落中使用 R 解释器

Oracle Machine Learning 笔记本支持多种语言。每个段落都与特定的解释器相关联。要在 Oracle Machine Learning 笔记本中运行 R 函数,必须先连接到 R 解释器。

在 Oracle Machine Learning UI 笔记本中,您可以添加多个段落,每个段落可以连接到不同的解释器,例如 R、SQL 或 Python。通过指定 %,然后指定要使用的解释器来标识要使用的解释器:sqlscriptrpythoncondamarkdown

本示例将说明如何:
  • 连接到 R 解释器以在笔记本中运行 R 命令。
  • 验证与 Oracle Autonomous Database 的连接,并
  • 装入 ORE 库
  1. 要连接到 R 解释器,请在笔记本段落开头键入以下指令,然后按 Enter 键:
    %r
    要了解有关解释器的更多信息,请参阅关于解释器绑定和记事本更改记事本中特定段落的解释器绑定
  2. 要验证数据库连接,请键入以下命令并按 Enter 键:
    ore.is.connected()
    连接笔记本后,该命令将返回 TRUE,如此处的屏幕截图所示。笔记本现在已连接到 R 解释器,您已准备好在笔记本中运行 R 命令。

    图 5-3 测试数据库连接

    测试到 Oracle Database 的连接
  3. 要导入 R 库,请运行以下命令:
    library(ORE)
    library(OREdplyr)
    成功装入软件包后,将显示 ORE 软件包的列表,如此处的屏幕截图所示。向下滚动以查看整个列表。

    图 5-4 装入 R 软件包的命令

    加载 R 程序包

5.7.1 关于 Oracle Machine Learning for R

Oracle Machine Learning for R (OML4R) 是 Oracle Machine Learning 系列产品的一部分,该产品将 R 与 Oracle Autonomous Database 集成。

Oracle Machine Learning for R 支持开源 R 脚本语言和环境为企业和大数据做好准备。它专为涉及大型和小型数据量的问题而设计。OML4R 允许用户使用 R 语法为统计、机器学习运行 R 命令和脚本,并对数据库表和视图执行可视化分析。

Oracle Machine Learning for R 提供 Oracle Machine Learning UI,目前可通过 Oracle Autonomous Database 获得,包括 Autonomous Data WarehouseAutonomous Transaction ProcessingAutonomous JSON DatabaseOracle Machine Learning for R 嵌入式 R 执行功能可通过 Autonomous Database 上的 SQL 和 REST API 部署。

使用 Oracle Machine Learning for R 可以:

  • 无缝利用 Oracle Database 作为高性能计算环境,执行数据探索和数据准备。
  • 使用系统支持的数据并行和任务并行功能,在数据库衍生和控制 R 引擎上运行用户定义的 R 函数。
  • 利用 R 语言访问和使用强大的数据库内机器学习算法。

要使用 R 解释器,请在段落开头指定 %r 指令。安装以下 R 软件包以支持 Oracle Machine Learning for R

支持的 Oracle Machine Learning for R 专有 R 软件包

支持的 Oracle Machine Learning for R 专有 R 软件包包括:

  • ORE_1.5.1
  • OREbase_1.5.1
  • OREcommon_1.5.1
  • OREdm_1.5.1
  • OREdplyr_1.5.1
  • OREeda_1.5.1
  • OREembed_1.5.1
  • OREgraphics_1.5.1
  • OREmodels_1.5.1
  • OREpredict_1.5.1
  • OREstats_1.5.1
  • ORExml_1.5.1

支持的开源 R 模块

Oracle Machine Learning for R 支持以下开源 R 软件包:

  • R-4.0.5
  • Cairo_1.5-15
  • ROracle_1.4-1: DBI_1.1-2
  • arules_1.7-3
  • png_0.1-7
  • randomForest_4.6-14
  • statmod_1.4-36
  • dplyr_1.0-9:
  • R6_2.5.1
  • assertthat_0.2.1
  • cli_3.3.0
  • crayon_1.5.1
  • ellipsis_0.3.2
  • fansi_1.0.3
  • generics_0.1.2
  • glue_1.6.2
  • lazyeval_0.2.2
  • lifecycle_1.0.1
  • magrittr_2.0.3
  • pillar_1.7.0
  • pkgconfig_2.0.3
  • purrr_0.3.4
  • rlang_1.0.2
  • tibble_3.1.7
  • tidyselect_1.1.2
  • utf8_1.2.2
  • vctrs_0.4.1

Oracle Machine Learning for R 解释器要求

R 解释器需要以下开源 R 软件包:
  • Rkernel 1.3:
    • base64enc 0.1-3
    • cli 3.3.0
    • crayon 1.5.1
    • digest 0.6.29
    • ellipsis 0.3.2
    • evaluate 0.15
    • fansi 1.0.3
    • fastmap 1.1.0
    • glue 1.6.2
    • htmltools 0.5.2
    • IRdisplay 1.1
    • jsonlite 1.8.0
    • lifecycle 1.0.1
    • pbdZMQ 0.3-7
    • pillar 1.7.0
    • repr 1.1.4
    • rlang 1.0.2
    • utf8 1.2.2
    • uuid 1.1-0
    • vctrs 0.4.1
  • knitr 1.39:
    • evaluate_0.15
    • glue_1.6.2
    • highr_0.9
    • magrittr_2.0.3
    • stringi_1.7.6
    • stringr_1.4.0
    • xfun_0.31
    • yaml_2.3.5

5.8 在记事本段中使用 Conda 解释器

Oracle Machine Learning Notebooks 提供了一个 Conda 解释器,允许管理员使用定制的第三方 Python 和 R 库创建 conda 环境。创建后,您还可以使用 Conda 解释器在笔记本会话中下载并激活 Conda 环境。

Oracle Machine Learning 笔记本支持多种语言。为此,必须创建包含一些段落的笔记本来运行 SQL 查询,以及运行 PL/SQL 脚本的其他段落。要以不同的脚本语言运行记事本,必须首先将记事本段落与相应的解释器(如 SQL、PL/SQL、R、Python 或 Conda)连接起来。

本主题介绍如何在 Conda 环境中开始工作:
  • 连接到 Conda 解释器
  • 下载并激活 Conda 环境
  • 查看 Conda 环境中的软件包列表
  • 运行 Python 函数以导入 Iris 数据集,并使用 seaborn 程序包进行可视化
  1. 在段落开头键入 %conda 以连接到 Conda 解释器,然后按 Enter 键。
    %conda
  2. 下一步,下载并激活 Conda 环境。类型:
    download sbenv
    activate sbenv
    在此示例中,将下载并激活 Conda 环境。在此示例中,Conda 环境的名称为 sbenv下载并激活 Conda 环境
  3. 您可以查看 Conda 环境中存在的所有软件包。要查看软件包列表,请键入 list
    海运库中的程序包列表
  4. 以下示例演示了如何使用 Seaborn 库程序包进行可视化。Seaborn 是一个基于 matplotlib 的 Python 可视化库。它为绘制有吸引力的统计图形提供了一个高级界面。此示例
    • 进口大熊猫和海运
    • 加载 Iris 数据集
    • 绘制数据点,即虹膜花的三种不同物种 - Setosa,Virginica 和 Versicolor 基于其尺寸。创建散点图
    类型:
    %python
    
    def sb_plot():
        import pandas as pd
        import seaborn as sb
        from matplotlib import pyplot as plt
        df = sb.load_dataset('iris')
        sb.set_style("ticks")
        sb.pairplot(df,hue = 'species',diag_kind = "kde",kind = "scatter",palette = "husl")
        plt.show()
    命令
  5. 在 Python 段落中运行函数。
    类型:
    %python 
    sb_plot()
    使用 Seaborn Python 库的可视化

5.8.1 关于 Conda 环境和 Conda 解释器

Conda 是一个开源软件包和环境管理系统,允许使用包含第三方 Python 和 R 库的环境。Oracle Machine Learning 用户界面 (User Interface,UI) 提供了 conda 解释器,用于在记事本会话中安装第三方 Python 和 R 库。

安装在 Oracle Machine Learning Notebooks 中的第三方库可用于:
  • 标准 Python
  • 标准 R
  • 从 Python、SQL 和 REST API 执行 Oracle Machine Learning for Python 嵌入式 Python
  • 通过 R、SQL 和 REST API Oracle Machine Learning for R 嵌入式 R 执行

要开始在 Conda 环境中工作,请执行以下操作:

  1. 确保 Conda 环境已保存到对象存储,或者通过安装新版本来更新现有软件包。

    注意:

    Conda 环境由具有 OML_SYS_ADMIN 角色的 ADMIN 用户创建。管理员管理环境的生命周期,包括添加或删除程序包以及删除环境。Conda 环境存储在与 Autonomous Database 关联的对象存储桶中。
  2. 登录 Oracle Machine Learning UI 并下载 Conda 环境。要下载 Conda 环境,请键入:
    %conda 
    download myenv
  3. 激活 Conda 环境。要激活 Conda 环境,请键入:
    activate myenv

    注意:

    在给定时间点只有一个活动的 Conda 环境。
  4. 创建笔记本,使用 Conda 解释器在对象存储中使用第三方库。要使用 Conda 解释器,请在段落的开头键入 %conda 以连接到 Conda 环境,并与第三方库一起使用 Python。您可以在预安装的 Conda 环境之间切换。例如,您可以有一个使用图形分析的环境,另一个使用 Oracle Machine Learning 分析的环境。
  5. 停用 Conda 环境。作为最佳实践,在完成机器学习分析工作后停用 Conda 环境。要停用环境,请键入:
    deactivate

5.8.2 Conda 解释器命令

此表列出了 Conda 解释器的命令。

Conda 解释器命令

表 5-1 Conda 解释器命令

任务 命令 角色
创建 Conda 环境。 create -n <env_name> <python_version>
  • ADMIN
从指定的 conda 环境中删除软件包列表。它也是 conda uninstall 的别名。 remove -n <env_name> --all

注意:

Conda 环境将从用户会话中删除。
  • ADMIN
  • OML 用户
列出用户创建的本地环境。 env list
  • ADMIN
  • OML 用户
删除用户创建的本地环境。 env remove -n <env_name>
  • ADMIN
  • OML 用户
列出活动环境中安装的所有软件包和版本。 list
  • ADMIN
  • OML 用户
激活用户创建的本地环境。 activate -n <env_name>
  • ADMIN
  • OML 用户
停用当前环境。 deactivate
  • ADMIN
  • OML 用户
从公共 Conda 通道安装外部软件包。 install -n <env_name> <package_name>
  • ADMIN
从 Conda 环境卸载特定软件包。它也是 remove 的别名。 uninstall -n <env_name> <package_name>
  • ADMIN
显示有关当前 conda 安装的信息。 info
  • ADMIN
  • OML 用户
查看命令行帮助。 COMMANDNAME --help
  • ADMIN
  • OML 用户
将 Conda 环境上载到对象存储。

注意:

这是特定于 Autonomous Database 的命令。
upload --overwrite <env_name> --description 'some description' -t <name> <value>

注意:

可以提供许多标记。例如:-t <name1> <value1> -t <name2> <value2> ..
  • ADMIN
从对象存储下载并解压缩特定的 Conda 环境。

注意:

这是特定于 Autonomous Database 的命令。
download --overwrite <env_name>
  • ADMIN
  • OML 用户
列出可供用户使用的本地环境。 list-local-envs
  • ADMIN
  • OML 用户
列出对象存储中的所有 Conda 环境。

注意:

这是特定于 Autonomous Database 的命令。
list-saved-envs --installed-packages -e <env_name>
  • ADMIN
  • OML 用户
删除 Conda 环境。

注意:

这是特定于 Autonomous Database 的命令。
delete <env_name>

注意:

Conda 环境将从对象存储中删除。
  • ADMIN
将 conda 软件包更新到最新兼容版本。 update
  • ADMIN
升级当前的 conda 软件包。它也是 conda update 的别名。 upgrade
  • ADMIN
搜索包并显示相关信息。输入是 MatchSpec,它是 conda 程序包的查询语言。 search
  • ADMIN
  • OML 用户

5.9 调用 Markdown 解释器并从 Markdown 纯文本生成静态 html

使用 Markdown 解释器并从 Markdown 纯文本生成静态 html。

要调用 Markdown 解释器并从 Markdown 纯文本生成静态 html:
  1. 在笔记本中,键入 %md 并按 Enter 键。
  2. 键入 "Hello World!",然后单击“Run(运行)”。将生成静态 html 文本,如下面的屏幕截图中所示。
    静态 html 文本
  3. 您可以用粗体格式化文本。要以粗体显示文本,请在两个星号对内编写相同的文本,然后单击“Run(运行)”。
    文本粗体
  4. 要以斜体显示文本,请在星号对或下划线对内写入相同的文本(如屏幕截图中所示),然后单击“Run(运行)”。
    斜体文本
  5. 要显示带项目符号列表中的文本,请为文本添加前缀 *(星号),如下面的屏幕截图所示:
    带项目符号的文本
  6. 要显示 heading1、标题 2 和标题 2 中的文本,请在文本前加上前缀 #(散列),然后单击“Run(运行)”。对于 H1、H2 和 H3,必须分别为 1、2 和 3 个散列前缀。
    标题

5.10 使用代码草稿纸

通过代码草稿纸,您可以方便地一键访问用于运行可重命名的 SQL 语句、PL/SQL、R 和 Python 脚本的笔记本。代码草稿纸位于 Oracle Machine Learning 用户界面 (UI) 主页中。

注意:

Scratchpad 是一个常规笔记本,预填充了四个段落 - %sql, %script,%python%r.

运行脚本后,代码草稿纸将自动保存为记事本,默认名称为 Scratchpad (位于“记事本”页上)。您可以稍后在“记事本”页上访问它。您可以同时运行所有段落或一次运行一个段落。
  1. 要打开和使用暂存器,请在 Oracle Machine Learning UI 主页的快速操作下单击暂存器。代码草稿纸打开。代码草稿纸有三个段落,每个段落有以下指令:
    • %sql - 用于运行 SQL 语句。
    • %script - 允许运行 PL/SQL 脚本。
    • %python - 允许您运行 Python 脚本。
    • %r - 允许运行 R 脚本。

    图 5-5 暂存器

    暂存器
  2. 要运行 SQL 脚本,请执行以下操作:
    1. 转到带有 %sql 指令的段落。
    2. 键入以下命令并单击“Run(运行)”图标。或者,可以按 Shift+Enter 键运行段落。
      SELECT * FROM SH.SALES;
    在本例中,SQL 语句从“销售”表中获取有关产品销售的所有数据。此处,SH 是方案名称,SALES 是表名称。Oracle Machine Learning UI 从数据库中获取相关数据并以表格格式显示。

    图 5-6 代码草稿纸中的 SQL 语句

    代码草稿纸中的 SQL 语句
  3. 要运行 PL/SQL 脚本,请执行以下操作:
    1. 转到带有 %script 指令的段落。
    2. 输入以下 PL/SQL 脚本并单击“Run(运行)”图标。或者,可以按 Shift+Enter 键运行段落。
      CREATE TABLE small_table
      	(
      	 NAME VARCHAR(200),
      	 ID1 INTEGER,
      	 ID2 VARCHAR(200),
      	 ID3 VARCHAR(200),
      	 ID4 VARCHAR(200),
      	 TEXT VARCHAR(200)
      	);
      
      	BEGIN 
      		FOR i IN 1..100 LOOP
      				INSERT INTO small_table VALUES ('Name_'||i, i,'ID2_'||i,'ID3_'||i,'ID4_'||i,'TEXT_'||i);
      		END LOOP;
      		COMMIT;
      	END;
      PL/SQL 脚本已成功创建表 SMALL_TABLE。此示例中的 PL/SQL 脚本包含两部分:
      • 脚本的第一部分包含用于创建名为 small_table. 的表的 SQL 语句 CREATE TABLE它定义表名、表列、数据类型和大小。在此示例中,列名为 NAME, ID1, ID2, ID3, ID4,TEXT.
      • 脚本的第二部分以关键字 BEGIN. 开头它在表中插入 100 行 small_table.

      注意:

      CREATE 语句与主键一起使用时,会失败并显示错误消息“权限不足”。出现此错误的原因是数据库中的锁定概要文件。如果遇到此错误,请与数据库管理员或指定的安全管理员联系以授予所需的权限。

      图 5-7 Scratchpad 中的 PL/SQL 脚本

      草稿纸中的 PL/SQL 过程
  4. 运行 python 脚本:
    1. 要使用 OML4Py,必须先导入 oml 模块。oml 是 OML4Py 模块,可用于处理 Oracle Database 对象(如表和视图),使用嵌入式执行调用用户定义的 Python 函数,以及使用数据库机器学习算法。转到带有 %python 指令的段落。要导入 oml 模块,请键入以下命令并单击“Run(运行)”图标。或者,可以按 Shift+Enter 键运行段落。
      import oml
    2. 要检查 oml 模块是否连接到 Oracle Database,请键入 oml.isconnected() 并单击“Run(运行)”图标。或者,可以按 Shift+Enter 键运行段落。
      oml.isconnected()
    3. 您现在可以运行 Python 脚本了。键入以下 Python 代码并单击运行图标。或者,可以按 Shift+Enter 键运行段落。
      import matplotlib.pyplot as plt
      import numpy as np
      
      list1 = np.random.rand(10)*2.1
      list2 = np.random.rand(10)*3.0
      
      plt.subplot(1,2,1) # 1 line, 2 rows, index nr 1 (first position in subplot)
      plt.hist(list1)
      plt.subplot(1, 2, 2) # 1 line, 2 rows, index nr 2 (second position in subplot)
      plt.hist(list2)
      plt.show()
      在此示例中,命令导入两个 python 软件包,以在 list1list2. 的两个直方图中计算和呈现数据Python 软件包包括:
      • Matplotlib - 用于渲染图形的 Python 程序包。
      • Numpy - 用于计算的 Python 软件包。

      图 5-8 Scratchpad 中的 Python 脚本

      代码草稿纸中的 Python 脚本

      list1list 2 的两个图形由 python 引擎生成,如此处的屏幕截图所示。

  5. 在代码草稿纸中创建并运行脚本后,代码草稿纸将自动保存为记事本,在“记事本”页面上使用默认名称 Scratchpad 。通过单击编辑,可以编辑记事本的名称并使用新名称保存记事本。

5.11 在 Oracle Machine Learning 中协作

两个或多个用户可以与其他用户协作和共享 Oracle Machine Learning 用户界面 (User Interface,UI) 记事本。

您可以通过以下方式进行协作:

  • 授予对其他用户工作区的访问权限
  • 使用导出选项
  • 使用 Oracle Machine Learning UI 记事本模板

“教程”图标 Oracle Machine Learning 中协作