这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

数据收集器函数

Vertica 数据收集器是一款实用程序,通过提供记录事件的框架来扩展系统表的功能。该实用程序收集并保留有关数据库群集的监控信息,同时在系统表中提供这些信息,需要的配置参数调整很少,对性能的影响微乎其微。

收集的数据存储在磁盘 Vertica/catalog 路径下的 DataCollector 目录中。可使用数据收集器所保留的信息查询系统表的过去状态并提取聚合信息,还可以执行以下操作:

  • 查看用户已采取哪些操作

  • 找出性能瓶颈

  • 确定 Vertica 配置的潜在改进

数据收集器与名为工作负载分析器的顾问工具搭配使用,后者可以智能监控 SQL 查询和工作负载的性能,并通过观察实际工作负载的历史记录来建议优化操作。

默认情况下,数据收集器处于开启状态并保留所有会话的信息。如果出现性能问题,超级用户可以通过将设置配置参数 EnableDataCollector 设置为 0 来禁用数据收集器。

1 - CLEAR_DATA_COLLECTOR

从数据收集器表和日志中清除所有内存及磁盘记录,并重置系统表 DATA_COLLECTOR 中的收集统计信息。

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

行为类型

易变

语法

CLEAR_DATA_COLLECTOR( [ 'component' ] )

参数

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)

超级用户

示例

以下命令将清除 ResourceAcquisitions 组件的内存和磁盘记录:

=> SELECT clear_data_collector('ResourceAcquisitions');
 clear_data_collector
----------------------
 CLEAR
(1 row)

以下命令将清除所有组件的数据收集:

=> SELECT clear_data_collector();
 clear_data_collector
----------------------
 CLEAR
(1 row)

另请参阅

数据收集器实用程序

2 - DATA_COLLECTOR_HELP

返回有关数据收集器、 DATA_COLLECTOR 系统表和数据收集器控制函数的在线使用说明。

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

行为类型

易变

语法

DATA_COLLECTOR_HELP()

特权

返回

DATA_COLLECTOR_HELP() 函数将返回以下信息:

=> SELECT DATA_COLLECTOR_HELP();

-----------------------------------------------------------------------------
Usage Data Collector
The data collector retains history of important system activities.
   This data can be used as a reference of what actions have been taken
      by users, but it can also be used to locate performance bottlenecks,
      or identify potential improvements to the Vertica configuration.
   This data is queryable via Vertica system tables.
Acccess a list of data collector components, and some statistics, by running:
   SELECT * FROM v_monitor.data_collector;

The amount of data retained by size and time can be controlled with several
functions.
   To just set the size amount:
      set_data_collector_policy(<component>,
                                <memory retention (KB)>,
                                <disk retention (KB)>);

   To set both the size and time amounts (the smaller one will dominate):
      set_data_collector_policy(<component>,
                                <memory retention (KB)>,
                                <disk retention (KB)>,
                                <interval>);

   To set just the time amount:
      set_data_collector_time_policy(<component>,
                                     <interval>);

   To set the time amount for all tables:
      set_data_collector_time_policy(<interval>);

The current retention policy for a component can be queried with:
   get_data_collector_policy(<component>);

Data on disk is kept in the "DataCollector" directory under the Vertica
\catalog path. This directory also contains instructions on how to load
the monitoring data into another Vertica database.

To move the data collector logs and instructions to other storage locations,
create labeled storage locations using add_location and then use:

   set_data_collector_storage_location(<storage_label>);

Additional commands can be used to configure the data collection logs.
The log can be cleared with:
clear_data_collector([<optional component>]);
The log can be synchronized with the disk storage using:
flush_data_collector([<optional component>]);

另请参阅

3 - FLUSH_DATA_COLLECTOR

等待内存日志移至磁盘后,刷新数据收集器,同时将日志与磁盘存储同步。

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

行为类型

易变

语法

FLUSH_DATA_COLLECTOR( [ 'component' ] )

参数

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)

超级用户

示例

以下命令刷新 ResourceAcquisitions 组件的数据收集器。

=> SELECT flush_data_collector('ResourceAcquisitions');
 flush_data_collector
----------------------
 FLUSH
(1 row)

以下命令刷新所有组件的数据收集器。

=> SELECT flush_data_collector();
 flush_data_collector
----------------------
 FLUSH
(1 row)

另请参阅

数据收集器实用程序

4 - GET_DATA_COLLECTOR_POLICY

检索与指定组件的保留政策有关的简短声明。

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

行为类型

易变

语法

GET_DATA_COLLECTOR_POLICY( 'component' )

参数

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)

特权

示例

以下查询通过指定 ResourceAcquisitions 组件返回所有资源获取的历史记录。

=> SELECT get_data_collector_policy('ResourceAcquisitions');
          get_data_collector_policy
----------------------------------------------
 1000KB kept in memory, 10000KB kept on disk.
(1 row)

另请参阅

5 - 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 设置的那样。

超级用户

示例

请参阅配置数据保留策略

6 - SET_DATA_COLLECTOR_TIME_POLICY

更新指定组件的保留策略属性 INTERVAL_TIME。调用此函数不会影响同一组件的其他属性。您可以使用此函数更新所有组件保留策略的 INTERVAL_TIME 属性。

要设置其他保留策略属性,请调用 SET_DATA_COLLECTOR_POLICY

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

行为类型

易变

语法

SET_DATA_COLLECTOR_TIME_POLICY( ['component',] 'interval‑time' )

参数

component
指定要更新的保留策略。如果忽略此实参,Vertica 会更新所有数据收集器组件的保留策略。

查询系统表 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)
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 设置的那样。

超级用户

示例

请参阅配置数据保留策略