SET_DATA_COLLECTOR_POLICY

更新指定组件的以下保留策略属性:

  • MEMORY_BUFFER_SIZE_KB

  • DISK_SIZE_KB

  • INTERVAL_TIME

在更改保留策略之前,可通过查询系统表 DATA_COLLECTOR 或调用元函数 GET_DATA_COLLECTOR_POLICY 查看其当前设置。

这是元函数。您必须在顶级 SELECT 语句中调用元函数。

行为类型

易变

语法

SET_DATA_COLLECTOR_POLICY('component', 'memory‑buffer‑size', 'disk‑size' [,'interval‑time']  )

参数

component
指定要更新的保留策略。

查询系统表 DATA_COLLECTOR 的组件名称。例如:

=> SELECT DISTINCT component, description FROM data_collector WHERE component ilike '%Depot%' ORDER BY component;
   component    |          description
----------------+-------------------------------
 DepotEvictions | Files evicted from the Depot
 DepotFetches   | Files fetched to the Depot
 DepotUploads   | Files Uploaded from the Depot
(3 rows)
memory‑buffer‑size
指定在将数据移动到磁盘之前在内存中缓冲的最大数据量(以 KB 为单位)。策略保留策略属性 MEMORY_BUFFER_SIZE_KB 根据此值进行设置。

在以下情况下,请考虑将此参数设置为较高的值:

  • 异常高级别的数据收集。如果将 memory‑buffer‑size 设置为过低的值,数据收集器可能无法以足够快的速度将缓冲数据刷新到磁盘以与活动级别保持一致,这可能会导致内存中的数据丢失。

  • 非常大的数据收集器记录 — 例如,具有非常长的查询字符串的记录。数据收集器使用双缓冲,因此它无法在内存中保留比 memory‑buffer‑size 大 50% 以上的记录。

disk‑size
指定为此组件的数据收集器表分配的最大磁盘空间(以 KB 为单位)。策略保留策略属性 DISK_SIZE_KB 根据此值进行设置。如果设置为 0,数据收集器将仅保留其可以在内存中缓冲的组件数据,大小由 memory‑buffer‑size 指定。
interval‑time

INTERVAL 一种数据类型,用于指定给定组件的数据在该组件的数据收集器表中保留的时间。保留策略属性 INTERVAL_TIME 是根据该值设置的。如果将此参数设置为正值,它还会将策略属性 INTERVAL_SET 更改为 t (true)。

例如,如果指定组件 TupleMoverEvents 并将 interval-time 设置为两天的时间间隔 ('2 days'::interval),则数据收集器 dc_tuple_mover_events 会保留过去 48 小时的 Tuple Mover 活动记录。旧 Tuple Mover 数据会自动从该表中删除。

要禁用 INTERVAL_TIME 策略属性,请将此参数设置为负整数。这样做会将两个保留策略属性恢复为其默认设置:

  • INTERVAL_SET:f

  • INTERVAL_TIME:0

如此设置这两个属性后,组件的数据收集器表将保留所有组件事件的数据,直到达到其最大限制,如保留策略属性 DISK_SIZE_KB 设置的那样。

超级用户

示例

请参阅配置数据保留策略