5.10 关于解释器绑定和记事本

解释器是一个插件,允许您使用特定数据处理语言后端。

对于 Oracle Machine Learning UI 中的 Zeppelin Notebooks,您可以在 Oracle Database 解释器组中使用 SQL、PL/SQL、Python 和 R 解释器,并使用 Markdown 解释器进行纯文本格式设置语法,以便将其转换为 HTML。您可以使用 Conda 解释器连接到 Conda 环境并使用 Python 第三方库包。

要使用这些解释器,您必须在笔记本中本段开头使用这些指令
  • SQL - %sql
  • PL/SQL - %script
  • Python - %python
  • R - %r
  • 减价 - %md
  • Conda - %conda
笔记本包含定义解释器组中解释器绑定顺序的内部绑定列表。Oracle Database 解释器组中解释器绑定的默认顺序为:
  • - 为数据库内操作提供最低级别的资源,通常是串行(非并行)执行。它支持多个用户执行的最大并发数据库内操作数。优先级较低的解释器列在解释器列表的顶部,因此是缺省值。
  • Medium(中) - 提供固定数量的 CPU 以并行执行数据库内操作(如果可能)。它支持有限数量的并发用户,通常是分配给可插入数据库的 CPU 数量的 1.25 倍。
  • High(高) - 提供最高级别的 CPU,以并行执行数据库内操作,最多不超过分配给可插入数据库的 CPU 数量。它可提供最高性能,但支持最少数量的并发数据库内操作(通常为 3 个)。
对于解释器绑定,可以执行下列任务:
  • 绑定和解绑解释器:如果您未将任何特定解释器绑定到笔记本,则会收到错误消息:
    Not supported interpreter <name of interpreter>
  • 设置解释器绑定并对其重新排序。如果要将特定解释器用于笔记本中的特定段落,则可能需要设置解释器绑定并对其重新排序。在这种情况下,您必须选择该段的具体解释器。
  • 更改笔记本中任何特定段落的解释器约束
您必须注意以下情况下的解释器绑定顺序:
  • 笔记本创建 - 创建笔记本时,笔记本将继承初始解释器绑定顺序,即低(默认)、中、高。
  • 记事本导入 - 导入记事本时,记事本会继承定义的解释器绑定。但是,导入记事本后,请确保检查解释器绑定的顺序并选中所需的解释器。
  • 记事本导出 - 导出记事本时,记事本将继承定义的解释器绑定。
  • 从模板创建记事本 - 从模板创建记事本时,记事本将继承解释器绑定的默认顺序。

5.10.1 更改笔记本中特定段落的解释器绑定

为笔记本设置的解释器约束顺序适用于该笔记本中的所有段落。但是,您可以针对记事本中的任何特定段落覆盖 SQL、PL/SQL、R、Python 和 Conda 解释器的解释器绑定。

要使用这些解释器,您必须在笔记本中本段开头使用这些指令
  • SQL - %sql
  • PL/SQL - %script
  • Python - %python
  • R - %r
  • 减价 - %md
  • Conda - %conda

注意:

不要覆盖 Python 段落解释器绑定,因为它们不会共享相同的 Python 引擎后端。
要更改笔记本中特定段落的解释器约束,请执行以下操作:
  1. 打开笔记本并单击齿轮图标以查看解释器绑定及其顺序。
    记事本编辑器选项
    在此示例中,所有三个 SQL 解释器都绑定到记事本,具有 low 资源分配 adwpcwdp_low %sql 的解释器是缺省值,因为它是列表中的第一个解释器。Markdown 解释器未绑定到笔记本

    注意:

    解释器名称的格式为 databasename_low, databasename_mediumdatabasename_high,与解释器绑定顺序名称相同。
    在此示例中,解释器名称为:
    • adwp_low % sql(default),%script, %python, %r, %conda
    • adwp_medium % sql(default),%script, %python, %r, %conda
    • adwp_high % sql(default), %script,%python, %r, %conda
    • md %md(default)

    图 5-9 解释器绑定

    解释器绑定
    列表中的第一个 Python 解释器用于运行笔记本中的所有 Python 段落。例如,如果选择了 low 绑定,则所有 Python 段落都使用 low 绑定 Python 解释器运行。所有具有 SQL 和脚本解释器绑定的其他段落都使用 low 数据库名称服务(即 adwp_low)运行。如果有任何 Python 脚本对数据库运行查询,则使用 low 数据库名称服务(即本示例中的 adwp_low)运行这些查询。
  2. 要更改笔记本中特定段落的解释器绑定顺序,请执行以下操作:
    • 向下滚动到要更改其解释器的段落
    • 使用特定绑定调用解释器
    • 运行段落
    例如,通过为笔记本中的第一段键入 %adwp_medium 来调用具有中等资源分配的解释器,然后运行该段落。在此示例中,adwp 是数据库名称。
    修改的解释器绑定顺序
    请注意,在更改解释器绑定后,第一段运行没有任何错误。本笔记本中的第二段具有默认约束力。
  3. 通过键入 SQL 语句 SELECT SYS_CONTEXT ('USERENV', 'SERVICE_NAME') FROM DUAL; 验证此笔记本的第一段的解释器绑定
    SQL 语句返回有关具有中等绑定的解释器的以下信息:
    LGKFDTOOBOQK48I_CWDP_medium.adwc.oraclecloud.com
    更改后验证段落的解释器约束
    在此示例中,参考屏幕截图:
    • LGKFDTOOBOQK48I 是租户名称
    • CWDP 是数据库名称
    • medium 是服务名称
    • adwc.oraclecloud.com 是域

    注意:

    对于本笔记本中的其余部分,解释器绑定是默认的。您可以通过运行步骤 3 验证每个段落的绑定。
    这完成了更改笔记本中特定段落的解释器约束的任务。笔记本中的其余段落对口译员具有默认约束力。

5.10.2 为记事本设置解释器绑定

必须将记事本绑定到解释器,才能从数据库或任何数据源提取数据。缺省的一组解释器绑定可用。

如果有多个集可用,则可以设置解释器绑定的顺序。要设置解释器绑定的顺序,请执行以下操作:
  1. 记事本页上,单击要为其设置解释器绑定的记事本。
    笔记本在编辑模式下打开。
  2. 单击顶部面板上的齿轮图标。
    NB 编辑器选项
    此时将打开设置窗格,其中列出了记事本的解释器绑定。
  3. 拖放解释器以重新排序解释器绑定。列表中的第一个解释器是缺省值。解释器绑定的顺序为:
    • 低(默认值):为数据库内操作提供最低级别的资源,通常是串行(非并行)执行。它支持多个用户执行的最大并发数据库内操作数。优先级较低的解释器列在解释器列表的顶部,因此是缺省值。
    • 中:提供固定数量的 CPU 以并行执行数据库内操作(如果可能)。它支持有限数量的并发用户,通常是分配给可插入数据库的 CPU 数量的 1.25 倍。
    • 高:提供最高级别的 CPU 以并行运行数据库内操作,最多不超过分配给可插入数据库的 CPU 数量。它可提供最高性能,但支持最少数量的并发数据库内操作(通常为 3 个)。
    这是解释器的初始绑定顺序。您可以更改解释器绑定的顺序。
  4. 单击保存

5.10.3 验证解释器绑定

设置和更改解释器绑定的顺序后,可以在给定记事本中使用 SQL、PL/SQL、R 还是 Python 解释器来验证解释器绑定。可以使用 SQL 语句查看和验证有关笔记本的解释器绑定信息。

对于 Python 笔记本,解释器绑定用于所有 python 段落。

注意:

对于 Python 笔记本,不要在段落级别覆盖解释器绑定。
要验证笔记本的解释器绑定,请执行以下操作:
  1. 打开要检查其解释器绑定的记事本。
  2. 运行以下 SQL 语句:
    %sql
    SELECT SYS_CONTEXT ('USERENV', 'SERVICE_NAME') FROM DUAL;

    SQL 语句提供给定会话连接到的服务的名称。

  3. 单击 运行
    SQL 语句返回有关解释器、绑定顺序和服务名的信息。结果按以下格式显示:tenantname__databasename_ servicename.domain 。此处:
    • HDY7RUSKGDMPHN2 是租户名称
    • PDB1 是数据库名称
    • low 是解释器绑定顺序
    • adwc.oraclecloud.com 是域名
    解释器绑定验证