第10章扩展MySQL Shell

2024年 3月 22日 45.2k 0

目录

  • 10.1 使用 MySQL Shell 进行报告

  • 10.2 将扩展对象添加到MySQL Shell

  • 10.3 MySQL Shell 插件

您可以以报告和扩展对象的形式定义 MySQL Shell 基本功能的扩展。报告和扩展对象可以使用 JavaScript 或 Python 创建,并且无论使用哪种活跃的 MySQL Shell 语言都可以使用。您可以将报告和扩展对象保留在 MySQL Shell 启动时自动加载的插件中。

  • MySQL Shell 报告可从 MySQL Shell 8.0.16 获取。请参见 第 10.1 节“使用 MySQL Shell 进行报告”。
  • 扩展对象可从 MySQL Shell 8.0.17 获得。请参见 第 10.2 节“向 MySQL Shell 添加扩展对象”。
  • 从 MySQL Shell 8.0.17 开始,报告和扩展对象可以存储为 MySQL Shell 插件。请参见 第 10.3 节“MySQL Shell 插件”。

10.1 使用 MySQL Shell 进行报告

  • 10.1.1 创建 MySQL Shell 报告
  • 10.1.2 注册 MySQL Shell 报告
  • 10.1.3 保存 MySQL Shell 报告
  • 10.1.4 MySQL Shell 报告示例
  • 10.1.5 运行 MySQL Shell 报告
  • 10.1.6 内置 MySQL Shell 报告

MySQL Shell 使您能够设置和运行报告以显示来自 MySQL 服务器的实时信息,例如状态和性能信息。MySQL Shell 的报告工具支持内置报告和用户定义的报告。MySQL Shell 8.0.16 提供了报告功能。报告可以直接在 MySQL Shell 交互式提示符下创建,也可以在 MySQL Shell 启动时自动加载的脚本中定义。

报告是一个简单的 JavaScript 或 Python 函数,它执行操作以生成所需的输出。shell.registerReport()您可以通过JavaScript 中的方法或Python 中的方法将该函数注册为 MySQL Shell 报告 shell.register_report()。 第 10.1.1 节“创建 MySQL Shell 报告”包含创建、注册和存储报告的说明。您可以将报告存储为 MySQL Shell 插件的一部分(请参阅 第 10.3 节 “MySQL Shell 插件”)。

无论使用哪种活跃的 MySQL Shell 语言,都可以运行以任何受支持的语言(JavaScript、Python 或 SQL)编写的报告。可以使用 MySQL Shell 命令运行一次报告 \show,也可以使用该命令在 MySQL Shell 会话中运行并连续刷新报告 \watch。还可以使用对象作为 API 函数来访问它们shell.reports。 第 10.1.5 节“运行 MySQL Shell 报告”解释了如何以每种方式运行报告。

MySQL Shell 包含许多内置报告,如 第 10.1.6 节“内置 MySQL Shell 报告”中所述。

10.1.1 创建 MySQL Shell 报告

您可以使用受支持的脚本语言(JavaScript 和 Python)为 MySQL Shell 创建和注册用户定义的报告。报告工具使用相同的 API 前端方案处理内置报告和用户定义的报告。

报告可以指定它们接受的特定于报告的选项列表,还可以接受指定数量的附加参数。您的报告可以支持这两种输入,也可以支持其中一种,也可以都不支持。当您请求报告帮助时,MySQL Shell 会提供选项和参数的列表,以及注册报告时提供的任何可用描述。

签名

要注册为 MySQL Shell 报告的 Python 或 JavaScript 函数的签名必须如下:

Dict report(Session session, List argv, Dict options);

在哪里:

  • session是用于执行报告的 MySQL Shell 会话对象。
  • argv是一个可选列表,其中包含传递给报告的附加参数的字符串值。
  • options是一个可选字典,其中的键名称和值对应于任何特定于报告的选项及其值。

报告类型

报告函数应以特定格式返回数据,具体取决于您注册时使用的类型:

  • 列表类型

    以列表列表的形式返回输出,第一个列表由列名称组成,其余列表由行内容组成。MySQL Shell 默认以表格格式显示输出,如果在or命令上指定了 --verticalor 选项,则以垂直格式显示输出 。行的值将转换为项目的字符串表示形式。如果行的元素少于列名的数量,则缺少的元素将被视为 NULL。如果行的元素多于列名的数量,则多余的元素将被忽略。当您注册此报告时,请使用“列表”类型 。 --E``\show``\watch

  • 报告类型

    以包含单个项目的列表形式返回自由格式的输出。MySQL Shell 使用 YAML 显示此输出。当您注册此报告时,请使用“报告”类型 。

  • 打印类型

    将输出直接打印到屏幕,并向 MySQL Shell 返回一个空列表以表明输出已经显示。当您注册此报告时,请使用“打印”类型。

为了提供输出,报告的 API 函数必须返回一个带有 key 的字典report和一个 JSON 对象列表,每个对象对应返回列表中的每一项。对于列表类型,每个列表使用一个元素;对于报告类型,使用单个元素;对于打印类型,不使用任何元素。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论