跳到主要内容
版本:BYOC 开发指南

访问日志概述

在高查询负载场景下,了解哪些数据被最频繁访问对于索引调优、分区策略等优化决策至关重要。缺乏查询模式的可见性,这些决策只能依赖猜测。

访问日志为您提供这种可见性。在 Zilliz Cloud 集群上启用后,访问日志会捕获查询活动,并将结构化日志文件传输到您自己的对象存储中。您可以将这些日志加载到数据仓库中,按 Entity ID 聚合,从而识别热点数据和使用趋势。

📘说明

当前仅覆盖查询类操作:Search、HybridSearch 和 Query。完整操作列表的支持计划在后续版本中发布。

工作原理

访问日志分为两个阶段:Zilliz Cloud 侧的采集和用户侧的日志分析。

F2PlbhS6FoqmabxuP8FcRRSyncc

Zilliz Cloud 采集并传输日志

在集群上启用 访问日志 后,Zilliz Cloud 开始在代理层捕获查询活动。你可以在集群级别配置两项设置:

  • 采样率:控制记录到访问日志的请求占比。取值范围为 0~100,表示随机抽样并写入访问日志的请求百分比。例如,将采样率设置为 1 时,大约会有 1% 的请求产生访问日志条目。对于高吞吐量工作负载,较低的采样率可以在保持足够分析访问模式的数据前提下,降低日志存储成本。

  • 输出字段:控制在每条访问日志记录中包含哪些额外的响应字段。常见选项包括:

    • params.ids:记录查询结果中返回的主键 ID 列表。借助这些 ID,你可以在后续按实体维度进行聚合,识别热点数据和访问频率。

    • params.scores:记录与 params.ids 中每个 ID 对应的相似度分数,帮助你判断哪些结果是高置信度匹配,哪些则更接近边界情况。

日志以 JSON Lines 格式(每行一个 JSON 对象)写入,并自动传输到你在设置过程中配置的对象存储桶。每个文件遵循固定的路径约定:

/<Cluster ID>/<Log type>/<Date>/<HH:MM:SS>-<UUID>.log

例如:/in03-c7be749d5f403ad/access/2024-12-20/09:16:53-jz5l7D8Q.log

用户侧日志分析

由于日志以标准 JSON Lines 文件的形式存储在你自己的存储桶中,你可以使用任何能够读取 JSON 的工具来处理它们。每条日志记录包含结构化字段,包括 actioncluster_idtimestampparams.ids(查询结果中的主键列表)。

一般分析流程如下:

  1. 将 JSON Lines 文件加载到数据仓库或分析工具中。

  2. 从每条记录中解析 actionparams.ids 字段。

  3. 在一个时间窗口内按主键聚合,以呈现访问频率。

最终结果是一张数据热力图——哪些实体被查询最频繁、通过哪些操作、在什么时间。

可靠性与计费

访问日志围绕一个核心原则设计:日志记录绝不影响查询性能。

非阻塞保证

访问日志的采集永远不会延迟或阻塞用户请求。如果系统必须在完成查询和写入日志之间做出选择,查询始终优先。

优雅降级

在极端负载下,系统可能会丢弃访问日志记录以保障查询吞吐量。这意味着访问日志提供的是尽力而为的查询活动记录,而非保证完整的记录。

计费

访问日志的计费基于时间而非数据量。费用为查询 CU 单价的 12.5%,按集群启用 访问日志 的时长计费。这使得成本可预测,与查询量无关——无论你的集群每小时处理 100 次还是 100,000 次查询,费用相同。

下一步

  • 配置访问日志:启用访问日志、调整采样率和输出参数,或停用日志记录。

  • 访问日志参考:完整的字段 Schema、操作列表和文件路径约定。