查询日志记录

重要

AKS 上的 Azure HDInsight 已于 2025 年 1 月 31 日停用。 请通过此公告 了解更多信息

需要将工作负荷迁移到 Microsoft Fabric 或等效的 Azure 产品,以避免工作负荷突然终止。

重要

此功能目前以预览版提供。 Microsoft Azure 预览版补充使用条款 包括更多适用于 beta 版、预览版或尚未正式发布的 Azure 功能的法律条款。 有关此特定预览的信息,请参阅 AKS 预览信息的 Azure HDInsight。 有关问题或功能建议,请在 AskHDInsight 上提交请求,并提供详细信息。关注我们以获取有关 Azure HDInsight 社区 的更多更新。

Trino 支持可用于侦听查询生命周期事件的自定义 事件侦听器。 可以创作自己的事件侦听器,或使用 HDInsight 在 AKS 上提供的内置插件将事件记录到 Azure Blob 存储。

可以通过两种方式启用内置查询日志记录:

本文介绍如何使用 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)对存储进行身份验证,请添加对 MSI ContributorStorage Blob Data Owner 访问权限,以确保插件能够将日志写入存储帐户。
    用户分配的 MSI 名称列在群集资源 JSON 的 msiResourceId 属性中。 了解如何 分配角色

  • PartitionRetentionInDays 仅从装载的表中删除元数据分区,它不会删除数据。 如果不再需要,请根据您的要求清理数据。

元数据管理

如果用户在 hiveCatalogName 属性中指定目录名称,插件会将存储帐户中写入的日志文件装载为外部表和视图,可通过 Trino 查询这些文件。

该插件创建三个表和三个视图,可用于查询生命周期事件(QueryCompletedEventQueryCreatedEventSplitCompletedEVent)。 这些表的 & 视图是在用户输入的目录和架构下创建的。

表名称:

  • querycompleted:包含 Trino 触发的 QueryCompleted 事件。
  • querycreated:包含特里诺发送的 QueryCreatedEvents
  • splitcompleted:包含由特里诺执行的 SplitCompletedEvents

视图名称

  • vquerycompleted
  • vquerycreated
  • vsplitcompleted

注释

建议用户使用视图,因为它们不受基础模式更改的影响,并能涵盖所描述的表。

表存档

在用户决定更改日志的 path 或外部位置时,插件支持将第 (N-1) 个表格存档。 如果发生这种情况,插件会将指向旧路径的表重命名为 <table_name>_archived,创建的视图将在此方案中合并当前表和存档表的结果。

创建自定义插件

还可以创作自定义事件侦听器插件,按照 文档的说明作,按照 插件部署步骤部署自定义插件。