MySQL Shell 8.4  /  ...  /  建立 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 物件的清單,每個傳回清單中的項目對應一個 JSON 物件。對於清單類型,每個清單使用一個元素,對於報表類型使用單個元素,對於列印類型則不使用元素。