共用方式為


查詢記錄

重要

此功能目前為預覽功能。 適用於 Microsoft Azure 預覽版的補充使用規定包含適用於 Beta 版、預覽版或尚未發行至正式運作之 Azure 功能的更合法條款。 如需此特定預覽的相關信息,請參閱 AKS 預覽資訊的 Azure HDInsight。 如需問題或功能建議,請在 AskHDInsight提交要求,並提供詳細數據,並遵循我們在 Azure HDInsight 社群取得更多更新。

Trino 支援 自定義事件接聽程式 ,可用來接聽查詢生命週期事件。 您可以撰寫自己的事件接聽程式,或使用 HDInsight 在 AKS 上提供的內建外掛程式,將事件記錄到 Azure Blob 儲存體。

您可以透過兩種方式啟用內建查詢記錄:

  • 您可以啟用 Hive 目錄,在建立 Trino 叢集期間啟用內建查詢記錄。

  • 您可以使用 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範本

注意

  • 外掛程式會使用系結至叢集的使用者指派受控識別 (MSI) 來驗證記憶體,請新增 ContributorStorage Blob Data Owner 存取 MSI,以確保外掛程式可以將記錄寫入記憶體帳戶。
    使用者指派的 MSI 名稱會列在 msiResourceId 叢集資源 JSON 中的屬性中。 瞭解如何 指派角色

  • PartitionRetentionInDays 只會從掛接的數據表中移除元數據分割區,並不會刪除數據。 如有需要,請根據需求清除數據。

中繼資料管理

如果使用者在 屬性中 hiveCatalogName 指定目錄名稱,外掛程式會將記憶體帳戶中寫入的記錄檔掛接為外部數據表和檢視表,而這些記錄檔可透過 Trino 查詢。

外掛程式會建立三個數據表和三個檢視,可用來查詢生命週期事件 (QueryCompletedEventQueryCreatedEventSplitCompletedEVent) 。 這些數據表和檢視是在使用者輸入提供的目錄和架構下建立的。

資料表的名稱:

  • querycompleted:包含 QueryCompleted Trino 所引發的事件。
  • querycreated:包含 Trino 所引發的 QueryCreatedEvents
  • splitcompleted:包含 Trino 所引發的 SplitCompletedEvents

檢視的名稱:

  • vquerycompleted
  • vquerycreated
  • vsplitcompleted

注意

建議使用者在不受基礎架構變更和說明數據表的帳戶免疫時使用檢視。

數據表封存

外掛程式支援在使用者決定變更 path 記錄或外部位置的案例中封存第 N-1 個數據表。 如果發生這種情況,外掛程式會將指向舊路徑的數據表重新命名為 <table_name>_archived,建立的檢視會結合此案例中目前和封存數據表的結果。

建立您的自定義外掛程式

您也可以撰寫自定義事件接聽程式外掛程式,遵循檔上的指示,遵循外掛程式部署步驟來部署自定義外掛程式