クエリ ログ
Note
Azure HDInsight on AKS は 2025 年 1 月 31 日に廃止されます。 2025 年 1 月 31 日より前に、ワークロードを Microsoft Fabric または同等の Azure 製品に移行することで、ワークロードの突然の終了を回避する必要があります。 サブスクリプション上に残っているクラスターは停止され、ホストから削除されることになります。
提供終了日までは基本サポートのみを利用できます。
重要
現在、この機能はプレビュー段階にあります。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用されるその他の法律条項については、「Microsoft Azure プレビューの追加の使用条件」に記載されています。 この特定のプレビューについては、「Microsoft HDInsight on AKS のプレビュー情報」を参照してください。 質問や機能の提案については、詳細を記載した要求を AskHDInsight で送信してください。また、その他の更新情報については、Azure HDInsight コミュニティをフォローしてください。
Trino では、クエリ ライフサイクル イベントのリッスンに使用できるカスタム イベント リスナーがサポートされています。 独自のイベント リスナーを作成することも、HDInsight on AKS によって提供される組み込みのプラグインを使用して Azure Blob Storage にイベントをログすることもできます。
組み込みのクエリ ログを有効にするには、次の 2 つの方法があります。
Trino クラスターの作成中に、ハイブ カタログを有効にすることで、組み込みのクエリ ログを有効にできます。
ARM テンプレートを使用して、クラスターで組み込みのクエリ ログを有効にできます。
この記事では、ARM テンプレートを使用したクラスターへのクエリ ログの追加について説明します。
前提条件
- 操作可能な HDInsight on AKS を使用した Trino クラスター。
- クラスター用の ARM テンプレートを作成する。
- クラスターの ARM テンプレートの完全なサンプルを確認する。
- ARM テンプレートの作成とデプロイに関する知識。
クエリ ログを有効にする
Trino クラスターで組み込みのクエリ ログ プラグインを有効にするには、クラスター ARM テンプレートで次のプロパティを使用して clusterProfile.trinoProfile.userTelemetrySpec
セクションを追加または更新します。
プロパティ | 説明 |
---|---|
path |
さまざまなクエリ ログをキャプチャするためにルートとして使用されるディレクトリへの完全修飾パス。 |
hivecatalogName |
このカタログは、ストレージ アカウントに書き込まれるファイルに外部テーブルをマウントするために使用されます。 このカタログは、クラスターに追加する必要があります (ハイブ カタログを追加する)。 |
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 テンプレートをデプロイする方法を確認してください。
Note
プラグインは、クラスターに関連付けられているユーザー割り当てマネージド ID (MSI) を使用してストレージに対する認証を行います。プラグインがストレージ アカウントにログを書き込むことができるように、
Contributor
とStorage Blob Data Owner
のアクセスを MSI に追加してください。
ユーザー割り当て MSI 名は、クラスターのリソース JSON のmsiResourceId
プロパティにリストされています。 ロールを割り当てる方法を確認してください。PartitionRetentionInDays では、マウントされたテーブルからメタデータ パーティションのみが削除され、データは削除されません。 データが不要になった場合は、要件に従ってクリーンアップしてください。
メタデータ管理
ユーザーが hiveCatalogName
プロパティにカタログ名を指定している場合、プラグインは、ストレージ アカウントに書き込まれたログ ファイルを外部テーブルおよびビューとしてマウントします。これは Trino を使用して照会できます。
このプラグインは、ライフサイクル イベント (QueryCompletedEvent
、QueryCreatedEvent
、SplitCompletedEVent
) のクエリに使用できる 3 つのテーブルと 3 つのビューを作成します。 これらのテーブルとビューは、ユーザー入力として提供されるカタログとスキーマの下に作成されます。
テーブルの名前:
querycompleted
: Trino によって生成されるQueryCompleted
イベントが含まれています。querycreated
: Trino によって生成されるQueryCreatedEvents
が含まれています。splitcompleted
: Trino によって生成されるSplitCompletedEvents
が含まれています。
ビューの名前:
vquerycompleted
vquerycreated
vsplitcompleted
Note
ビューは基になるスキーマの変更の影響を受けず、記述されているテーブルが考慮されるため、ビューを使用することをお勧めします。
テーブルのアーカイブ
プラグインは、ユーザーがログの path
または外部の場所を変更することを決めたシナリオで (N-1) 番目のテーブルをアーカイブすることをサポートしています。
その場合、プラグインは古いパスを指すテーブルの名前を <table_name>_archived として変更します。作成されたビューは、現在のテーブルとこのシナリオでアーカイブされたテーブルの結果を結合します。
カスタム プラグインを作成する
カスタムのイベント リスナー プラグインを作成することもできます。ドキュメントの指示に従ってください。カスタム プラグインのデプロイについては、プラグインのデプロイ手順に従ってください。