你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
查询日志记录
注意
我们将于 2025 年 1 月 31 日停用 Azure HDInsight on AKS。 在 2025 年 1 月 31 日之前,你需要将工作负荷迁移到 Microsoft Fabric 或同等的 Azure 产品,以避免工作负荷突然终止。 订阅上的剩余群集会被停止并从主机中移除。
在停用日期之前,仅提供基本支持。
重要
此功能目前以预览版提供。 Microsoft Azure 预览版的补充使用条款包含适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的更多法律条款。 有关此特定预览版的信息,请参阅 Azure HDInsight on AKS 预览版信息。 如有疑问或功能建议,请在 AskHDInsight 上提交请求并附上详细信息,并在 Azure HDInsight Community 上关注我们以了解更多更新。
Trino 支持自定义事件侦听器,可用于侦听查询生命周期事件。 你可以创建自己的事件侦听器,或使用 HDInsight on AKS 提供的内置插件将事件记录到 Azure Blob 存储。
可以通过两种方式启用内置查询日志记录:
可以通过启用配置单元目录在创建 Trino 群集期间启用内置查询日志记录。
可以使用 ARM 模板在群集中启用内置查询日志记录。
本文介绍如何使用 ARM 模板将查询日志记录添加到群集。
先决条件
- 与 HDInsight on AKS 配合使用的可操作 Trino 群集。
- 为群集创建 ARM 模板。
- 查看完整的群集 ARM 模板示例。
- 熟悉 ARM 模板创作和部署。
启用查询日志记录
若要在 Trino 群集中启用内置查询日志记录插件,请在群集 ARM 模板中添加/更新 clusterProfile.trinoProfile.userTelemetrySpec
部分,其中包含以下属性。
properties | 说明 |
---|---|
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 模板。
注意
插件使用与群集绑定的用户分配的托管标识 (MSI) 对存储进行身份验证,请添加对 MSI 的
Contributor
和Storage Blob Data Owner
访问权限,以确保插件能够将日志写入存储帐户。
用户分配的 MSI 名称列在群集资源 JSON 的msiResourceId
属性中。 了解如何分配角色。PartitionRetentionInDays 仅从装载的表中移除元数据分区,而不会删除数据。 请根据需要清理不再需要的数据。
元数据管理
如果用户在 hiveCatalogName
属性中指定目录名称,插件会将存储帐户中写入的日志文件挂载为外部表和视图,可以通过 Trino 查询这些文件。
该插件将创建三个表和三个视图,可用于查询生命周期事件(QueryCompletedEvent
、QueryCreatedEvent
和 SplitCompletedEVent
)。 这些表和视图是在作为用户输入提供的目录和架构下创建的。
表名:
querycompleted
:包含 Trino 触发的QueryCompleted
事件。querycreated
:包含 Trino 触发的QueryCreatedEvents
。splitcompleted
:包含 Trino 触发的SplitCompletedEvents
。
视图名:
vquerycompleted
vquerycreated
vsplitcompleted
注意
建议用户使用视图,因为它们不受基础架构更改和所描述表的帐户的影响。
表存档
在用户决定更改日志的 path
或外部位置的情况下,插件支持存档 (N-1) 表。
如果发生这种情况,插件会将指向旧路径的表重命名为 <table_name>_archived,在这种情况下,创建的视图将合并当前表和已存档表的结果。