MySQL Shell 8.0  /  ...  /  MySQL Shell レポートの実行

このページは機械翻訳したものです。

7.1.5 MySQL Shell レポートの実行

MySQL Shell に登録されている組込みレポートおよびユーザー定義レポートは、\show または\watch コマンドを使用して任意の対話型 MySQL Shell モード (JavaScript、Python または SQL) で実行するか、JavaScript または Python スクリプトの shell.reports オブジェクトを使用してコールできます。 パラメータを指定せずに\show コマンドまたは\watch コマンドを実行すると、使用可能な組込みレポートおよびユーザー定義レポートがすべてリストされます。

Show および Watch コマンドの使用

\show および\watch コマンドを使用するには、アクティブな MySQL セッションが使用可能である必要があります。

\show コマンドは、組込み MySQL Shell レポートまたは MySQL Shell に登録されているユーザー定義レポートのいずれかの名前付きレポートを実行します。 レポートでサポートされているオプションまたは追加の引数を指定できます。 たとえば、次のコマンドは組込みレポート query を実行します。このレポートは、引数として単一の SQL ステートメントを取ります:

\show query show session status

レポート名では大文字と小文字は区別されず、ダッシュとアンダースコアは同じものとして扱われます。

\show コマンドには、次の標準オプションもあります:

  • --vertical (または -E) では、テーブル形式ではなく垂直形式でリストを返すレポートの結果が表示されます。

  • --help では、指定したレポートに提供されているヘルプが表示されます。 (または、レポート機能のヘルプを表示するレポートの名前を指定して\help コマンドを使用することもできます。)

標準オプションおよびレポート固有のオプションは、引数の前に指定します。 たとえば、次のコマンドは組込みレポート query を実行し、結果を垂直形式で返します:

\show query --vertical show session status

\watch コマンドは、\show コマンドと同じ方法でレポートを実行しますが、Ctrl + C を使用してコマンドを取り消すまで定期的に結果をリフレッシュします。 \watch コマンドには、次のようにリフレッシュ動作を制御するための追加の標準オプションがあります:

  • --interval=float (または -i float) は、リフレッシュの間に待機する秒数を指定します。 デフォルトは 2 秒です。 小数秒を 0.1 秒の最小間隔で指定でき、間隔は 86400 秒 (24 時間) まで設定できます。

    --nocls では、リフレッシュ前に画面がクリアされないように指定されているため、以前の結果は引き続き表示されます。

たとえば、次のコマンドは組込みレポート query を使用してステートメントカウンタ変数を表示し、0.5 秒ごとに結果をリフレッシュします:

\watch query --interval=0.5 show global status like 'Com%'

引用符はサーバーによって直接ではなくコマンドハンドラによって解釈されるため、クエリーで使用される場合は、引用符の前にバックスラッシュ (\) を付けてエスケープする必要があります。

shell.reports オブジェクトの使用

MySQL Shell に登録されている組込み MySQL Shell レポートおよびユーザー定義レポートには、shell.reports オブジェクトの API 関数としてアクセスすることもできます。 shell.reports オブジェクトは、JavaScript および Python モードで使用でき、登録時に指定されたレポート名を関数名として使用します。 この関数のシグネチャは次のとおりです:

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

ここでは:

  • session は、レポートの実行に使用される MySQL Shell セッションオブジェクトです。

  • argv は、レポートに渡される追加の引数の文字列値を含むリストです。

  • options は、レポート固有のオプションとその値に対応するキー名と値を含むディクショナリです。 短い形式のオプションは、shell.reports オブジェクトでは使用できません。

戻り値は、キー report を含むディクショナリと、レポートを含む JSON オブジェクトのリストです。 レポートのリストタイプには各リストの要素があり、レポートタイプには単一の要素があり、印刷タイプには要素がありません。

shell.reports オブジェクトでは、オプションのディクショナリが存在する場合、追加の引数がない場合でも argv リストが必要です。 \help report_name コマンドを使用して、レポート機能のヘルプを表示し、レポートに引数またはオプションが必要かどうかを確認します。

たとえば、次のコードは、現在存在するセッションを示す sessions という名前のユーザー定義レポートを実行します。 レポートを実行するための MySQL Shell セッションオブジェクトが作成されます。 レポート固有のオプションを使用して、返される行数を 10 に制限します。 追加の引数はないため、argv リストは存在しますが空です。

report = shell.reports.sessions(shell.getSession(), [], {'limit':10});