クエリの記録
重要
AKS 上の Azure HDInsight は、2025 年 1 月 31 日に廃止されました。 このお知らせ でについてさらに学んでください。
ワークロードの突然の終了を回避するには、ワークロードを Microsoft Fabric または同等の Azure 製品 に移行する必要があります。
大事な
この機能は現在プレビュー段階です。 Microsoft Azure プレビューの 追加使用条件 には、ベータ版、プレビュー版、または一般公開されていない Azure 機能に適用される、より多くの法的条件が含まれています。 この特定のプレビューの詳細については、AKS プレビュー情報 Azure HDInsightを参照してください。 ご質問や機能の提案については、AskHDInsight に詳細を記載したリクエストを提出し、Azure HDInsight Communityで最新情報をフォローしてください。
Trino は、クエリのライフサイクルイベントをリッスンするために使用できるカスタム イベントリスナー をサポートしています。 独自のイベント リスナーを作成することも、Azure Blob Storage にイベントをログ記録する AKS 上の HDInsight によって提供される組み込みのプラグインを使用することもできます。
組み込みのクエリ ログを有効にするには、次の 2 つの方法があります。
Hive カタログを有効にすることで、Trino クラスターの作成 中に組み込みのクエリ ログを有効にすることができます。
ARM テンプレートを使用して、クラスターで組み込みのクエリ ログを有効にすることができます。
この記事では、ARM テンプレートを使用したクラスターへのクエリ ログの追加について説明します。
前提 条件
- AKS 上の HDInsight を使用した運用 Trino クラスター。
- クラスター用のARMテンプレート を作成します。
- クラスタ の完了をレビューし、ARM テンプレートのサンプルを確認します。
- ARM テンプレートの作成とデプロイについての知識。
クエリ ログを有効にする
Trino クラスターで組み込みのクエリ ログ プラグインを有効にするには、クラスター ARM テンプレートで次のプロパティを使用 clusterProfile.trinoProfile.userTelemetrySpec
セクションを追加/更新します。
財産 | 説明 |
---|---|
path |
別のクエリ ログをキャプチャするためにルートとして使用されるディレクトリへの完全修飾パス。 |
hivecatalogName |
このカタログは、ストレージ アカウントに書き込まれたファイルに外部テーブルをマウントするために使用されます。 このカタログはクラスターに追加する必要があります。Hive カタログを追加します。 |
hivecatalogSchema |
クエリ ログ プラグインでは、このスキーマを使用してログの外部テーブルをマウントします。このスキーマがまだ存在しない場合は、このスキーマが作成されます。 既定値 - trinologs |
partitionRetentionInDays |
クエリ ログ プラグインは、指定された構成よりも古いログ テーブル内のパーティションを排除します。 既定値 - 365 |
次の例では、Trino クラスターでクエリ ログを有効にする方法を示します。 ARM テンプレートの [*].properties.clusterProfile
の下に、このサンプル json を追加します。
"trinoProfile": {
"userTelemetrySpec": {
"storage": {
"path": "https://querylogstorageaccount.blob.core.windows.net/logs/trinoquerylogs",
"hivecatalogName": "hive",
"hivecatalogSchema": "trinologs",
"partitionRetentionInDays": 365
}
}
}
更新された ARM テンプレートをデプロイして、クラスター内の変更を反映します。 ARM テンプレート デプロイする方法について説明します。
手記
プラグインでは、クラスターに関連付けられているユーザー割り当てマネージド ID (MSI) を使用してストレージに対する認証を行います。
Contributor
を追加し、MSI へのアクセスをStorage Blob Data Owner
して、プラグインがストレージ アカウントにログを書き込むことができるようにしてください。
ユーザー割り当て MSI 名は、クラスターのリソース JSON のmsiResourceId
プロパティに表示されます。 ロール をに割り当てる方法を学ぶ。PartitionRetentionInDays では、マウントされたテーブルからメタデータ パーティションのみが削除され、データは削除されません。 不要になった場合は、要件に従ってデータをクリーンアップしてください。
メタデータ管理
ユーザーが hiveCatalogName
プロパティでカタログ名を指定した場合、プラグインはストレージ アカウントに書き込まれたログ ファイルを外部テーブルとビューとしてマウントします。これは Trino を使用してクエリを実行できます。
プラグインは、ライフサイクル イベント (QueryCompletedEvent
、QueryCreatedEvent
、および SplitCompletedEVent
) のクエリに使用できる 3 つのテーブルと 3 つのビューを作成します。 これらのテーブル & ビューは、ユーザー入力として提供されるカタログとスキーマの下に作成されます。
テーブルの名前:
-
querycompleted
: Trino によって発生したQueryCompleted
イベントが含まれます。 -
querycreated
: Trino によって起動されたQueryCreatedEvents
が含まれています。 -
splitcompleted
: Trino によって起動されたSplitCompletedEvents
が含まれています。
ビューの名前:
vquerycompleted
vquerycreated
vsplitcompleted
手記
ビューは基盤となるスキーマの変更に対応でき、説明されているテーブルを考慮するため、ユーザーにはそれらを使用することが推奨されます。
テーブルのアーカイブ
プラグインは、ユーザーがログの path
または外部の場所を変更することを決定するシナリオでアーカイブ (N-1) 番目のテーブルをサポートしています。
その場合、プラグインは古いパスを指すテーブルの名前を <table_name>_archivedに変更します。作成されたビューは、現在のテーブルとアーカイブされたテーブルの結果を結合します。
カスタム プラグインを作成する
また、カスタムイベントリスナープラグインを作成し、ドキュメントの指示に従い、プラグインのデプロイ手順 従ってカスタムプラグインをデプロイすることもできます。