MySQL Shell 9.0  /  ...  /  建立 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 會以表格格式顯示輸出,如果 \show\watch 命令指定了 --vertical--E 選項,則以垂直格式顯示輸出。列的值會轉換為項目的字串表示法。如果某列的元素少於欄位名稱的數量,則會將遺失的元素視為 NULL。如果某列的元素多於欄位名稱的數量,則會忽略多餘的元素。當您註冊此報告時,請使用類型 list

報告類型

以包含單一項目的清單形式傳回自由格式的輸出。MySQL Shell 會使用 YAML 顯示此輸出。當您註冊此報告時,請使用類型 report

列印類型

直接將輸出列印到螢幕,並將空清單傳回 MySQL Shell 以表示輸出已顯示。當您註冊此報告時,請使用類型 print

若要提供輸出,報告的 API 函式必須傳回具有索引鍵 report 的字典,以及 JSON 物件的清單,每個傳回清單中的項目一個。對於清單類型,每個清單使用一個元素,對於報告類型,使用單一元素,對於列印類型,則不使用任何元素。