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

返回本页常规视图.

在 MC 中监控存储库活动

存储库是每个节点上类似缓存的组件,用于下载和存储表数据的本地副本。相比从公共存储中获取数据,查询直接在存储库中访问所需数据的执行速度通常更快。如果数据库处于 Eon 模式,您可以使用“存储库活动 (Depot Activity)”页面查看存储库设置,并评估其处理查询和加载活动的效率。

要查看存储库设置和活动,请导航到数据库 (Database) > 活动 (Activity) > 存储库活动监控 (Depot Activity Monitoring)。“存储库活动 (Depot Activity)”页面包含以下选项卡:

1 - 为什么要监控存储库?

如果您在 AWS 等云平台上运行 Eon 模式数据库,则在 MC 中监控存储库可以帮助您优化性能并减少开支。MC 可以帮助您了解以下问题:

要访问存储库监控功能:从 MC 主页,导航到**数据库 (Database) > 活动 (Activity) > 存储库活动监控 (Depot Activity Monitoring)。**请参阅在 MC 中监控存储库活动

查询访问存储库与 S3 存储桶的频率如何?

当查询访问基于节点的存储库数据,而不是从公共存储中获取数据时,其运行速度更快。有关详细信息,请参阅查询存储库成功数和失败数

存储库大小是否调整为最佳?

为了优化查询速度,您可能需要调整存储库大小以适合查询工作负载。这样可确保查询不需要花费额外的时间从 S3 上的公共存储库中获取数据。Eon 元函数 ALTER_LOCATION_SIZE 用于更改子群集中的一个节点、所有节点或数据库中的所有节点上的存储库大小。以下语句将数据库中所有存储库的大小调整为 80MB:

=> SELECT alter_location_size('depot', '','80%');
 alter_location_size
---------------------
 depotSize changed.
(1 row)

SP3 存储桶上有多少 API 调用与查询相关?

在“存储库活动监控 (Depot Activity Monitoring)”屏幕上的“公共存储访问调用 (Communal Storage Access Calls)”图表中,MC 将显示在给定时间范围内您的查询执行的每种 API 调用的数量。要查看正在运行的查询的详细信息,请单击图表上的任意点。

每个节点上当前的存储库使用情况如何?

“存储库活动监控 (Depot Activity Monitoring)”页面中的“存储库内容 (Depot Content)”选项卡提供了有关每个表如何使用群集节点上的存储库空间的详细信息。

是否对投影和分区进行了优化以获得最佳查询性能?

在“存储库内容 (Depot Content)”选项卡中,当您选择某行时,您将选中某个节点上的表存储库内容。MC 在页面底部加载该节点上该表的详细信息,其中显示所选表的存储库内容,这些内容按给定节点上的投影或分区细分。

2 - 查看存储库活动

“概览 (At A Glance)”屏幕提供了存储库活动的高级视图。屏幕分为以下几个部分:

“MC 活动 (MC Activity)”、“存储库活动监控 (Depot Activity Monitoring)”窗口

当前存储库使用情况

显示存储库属性和使用情况统计信息的摘要:

总体结果

  • 存储库容量 (Depot Capacity): 数据库中所有节点的存储库容量加在一起的总和。

  • 使用中的存储库 (Depot in Use): 数据库中所有节点上当前使用的存储库空间加在一起的总和。

  • 数据库大小 (Database Size): 选择计算 (Calculate) 以显示数据库的总大小,以 GB 为单位。

  • 查看有关数据库存储的详细信息 (View More on Database Storage): 单击以查看“存储视图 (Storage View)”选项卡,其中包含有关此数据库存储的详细信息。

各节点的使用情况 (Usage by node)

  • 列出数据库中每个节点的存储库中的字节数和使用的百分比。

  • 查看更多 (View More): 单击以显示各个节点的存储库使用情况。

存储库配置 (Depot configuration)

提供有关如何配置存储库的信息:

  • 参与节点 (Participating Nodes): 这些统计信息包含的节点数。

  • 最大存储库限制 (Max Depot Limit): 所有参与节点上的存储库空间总量。

  • 存储库写入 (Depot for Writes): 指定是“启用 (Enabled)”还是“禁用 (Disabled)”存储库的写入操作。

  • 存储库读取 (Depot for Reads): 指定是“启用 (Enabled)”还是“禁用 (Disabled)”存储库的读取操作。

  • 查询的存储库操作 (Depot Operations for Query): 显示系统参数 DepotOperationsForQuery 的设置方式。此参数用于指定存储库不包含查询的文件数据时的行为,为以下几项之一:

    • ALL (默认值):从公共存储中提取文件数据,如有必要,通过将现有文件从存储库中逐出来替换它们。

    • FETCHES:仅当空间可用时才从公共存储中提取文件数据;否则,直接从公共存储中读取查询的数据。

    • NONE:请勿将文件数据提取到存储库,而应直接从公共存储中读取查询的数据。

  • 用于查询内部 DC 表的链接,以获取存储库活动(如存储库读取 (Depot Reads))的保留限制。

用户查询存储库成功数和失败数

为获得最佳性能,大多数查询都应访问以本地方式存储在存储库中的数据。为了最大限度地提高存储库访问权限,请确保您的存储库足够大,可以容纳频繁访问的数据。否则,Vertica 必须更频繁地访问公共存储来检索所需数据,这会严重影响查询性能。

“用户查询存储库成功数和失败数 (User Queries Depot Hits and Misses)”可帮助您评估查询与存储库随时间的交互情况。

  • 彩色图表线显示在任意给定时间有多少查询正在访问存储库和/或公共存储。

  • 左侧 y 轴表示查询数量。

存储库获取和逐出

当查询从公共存储中获取数据并导入存储库时,若存储库没有足够的空间来容纳新数据,Vertica 会尝试逐出旧数据。“用户查询存储库成功数和失败数”图表有助于您监控流失率,即从存储库中逐出的文件数量以及逐出频率:

  • 彩色条显示存储库获取和逐出的时间,以 MB 为单位。

  • 右侧的 y 轴显示获取或逐出的数据量。

如果您观察到由于访问公共存储而导致查询速度越来越慢,且注意到存储库在不断流失,那么您可能需要增加存储库大小

存储库查询详细信息

  • 将鼠标悬停在查询线的某个点上以查看运行的查询数量的详细信息。

  • 将鼠标悬停在“获取 (Fetches)”或“逐出 (Evictions)”条形图上以查看有关获取或逐出的字节数的详细信息。

  • 单击线或条以查看“查询详细信息 (Query Details)”页面,该页面提供在指定时间范围内运行的每个查询的相关信息。

以下示例显示了足以运行存储库中所有查询的存储库大小:

下一个示例将显示当存储库太小而无法持续进行查询活动,导致许多查询被迫从公共存储中获取数据时会发生的情况。

如果单击行上的任意点,MC 会打开一个“查询详细信息 (Query Details)”窗口,其中显示:

  • 该点表示的所有查询

  • 每个查询的详细信息

MC 存储库活动 (MC Depot Activity)、查询存储库成功数和失败数 (Query Depot Hits and Misses)、详细信息 (Details)

公共存储访问调用

显示您的数据库在指定时间范围内执行的每种类型的公共存储访问调用(例如,AWS S3 API 调用)的数量,为以下之一:

  • 数据读取 (GET)

  • 数据写入 (PUT)

  • 元数据读取 (LIST)

  • 元数据写入(POST、DELETE、COPY)

将鼠标悬停在“公共存储访问调用 (Communal Storage Access Call)”图表的任意点上,以查看有关该点的数据摘要。例如,如果您的群集位于 AWS 上,则摘要会列出在所选时间范围内执行的 AWS S3 API 调用类型的数量。

单击条形图上的任意点以查看以下详细信息:

  • 在选定时间范围内运行的所有查询。这些查询执行“公共存储访问调用 (Communal Storage Access Call)”图表上列出的针对该时间范围内的 API 调用。

  • 每个查询的详细信息。

例如:

3 - 查看存储库效率

“存储库效率 (Depot Efficiency)”选项卡提供了几个图形,可帮助用户快速确定存储库是否经过适当优化。

文件读取(按位置)(File Reads By Location)

显示在指定时间范围内从存储库和公共存储读取的百分比。一般来说,您希望大多数查询和其他读取操作从存储库而非公用存储中获取数据,如下图所示。如果显示从公共存储读取文件所占百分比很大,则可能需要增加存储库大小。

存储库中的前 10 个重新获取

Vertica 会根据需要从存储库中逐出数据,以便为新数据提供空间,以及提高请求处理速度。繁忙的数据库中预期会发生存储库获取和逐出操作。但是,您通常希望避免对相同的表数据重复执行逐出和获取操作。如果发生这种情况,请考虑增加存储库的大小,或者将表或经常访问的分区固定到存储库。

存储库固定

通常建议固定其数据被频繁访问的表或表分区。这样做可以降低其从存储库中逐出的风险。但是,您还应该注意,固定数据不应占用过多的存储库存储空间。如果固定对象占用了过多的存储库空间(如下所示),则存储库可能无法处理未固定对象的加载操作。

存储库中表的数量(按年限)

通常情况下,表应驻留在存储库中,前提是需要使用其数据。如果表驻留的平均时间较短,这可能表明执行了频繁的存储库逐出操作,这可能会对整体性能产生不利影响。如果发生这种情况,请考虑增加存储库大小,或固定经常访问的表数据。

存储库中表的数量(按访问计数)

一般来说,存储库应主要包含经常访问的表,包括已固定和未固定的表。

存储库中表的数量(按大小)

了解存储库中表大小的分布非常有用。

4 - 在 MC 中查看存储库内容

您可以详细查看 Eon 数据库中的节点如何使用存储库:

  • 显示存储库中数据量最大的表的列表。

  • 使用筛选字段列出存储库中最常访问或最近访问的表。

  • 显示有关特定表的投影和分区访问存储库的频率以及最后一次访问存储库的时间的详细信息。

存储库活动监控 (Depot Activity Monitoring) > 存储库内容 (Depot Content) 选项卡将打开,其中显示数据库中前 25 个表的默认列表,这些表按每个表在存储库中的总字节数排序。该列表显示了这些表的所有节点。节点仅根据存储库中的大多数字节进行排序,因此对于某个表,其节点不一定同时出现。

筛选列表

您可以使用表上方的筛选字段来缩小列表的范围。您可以使用筛选字段选择:

  • 最前面几个表

  • 按存储库中的最多字节数选择表,还是按表的存储库被访问的最高次数,还是按最近的上次访问时间

  • 所有架构中的表,或仅特定架构中的表

  • 所有表,或仅特定表

  • 所有节点,或仅特定节点

在“架构 (Schema)”、“表 (Table)”和“节点 (Node)”筛选字段中,您可以输入文本字符串以选择名称中包含该文本字符串的所有项。

选择一个节点以查看投影和分区中的存储库数据的细分

在最前面的表中选择一行。然后 MC 将加载详细信息,其中显示该表的存储库内容在该表的投影和分区(位于该节点上)中的分布情况。“投影 (Projection)”和“分区 (Partition)”窗格显示所选节点的这些详细信息:

  • 投影 (Projection): 每个投影在选定节点的存储库中具有的选定表的数据字节数。

  • 分区: 如果表已分区,此窗格将显示每个分区在选定节点的存储库中具有的选定表的数据字节数。

对于每个投影和每个分区,MC 还会显示投影或分区访问该节点上存储库的总次数,以及上次访问时间。

有关投影的详细信息,请参阅投影

有关分区的详细信息,请参阅分区表

监控存储库内容的步骤

  1. 从 MC 主页,打开一个数据库,从底部菜单中选择活动 (Activity) 选项卡,在顶部选择框中选中存储库活动监控 (Depot Activity Monitoring),然后选择部署内容 (Depot Content) 选项卡。MC 将显示前 N 个表(默认为 25 个),这些表按每个表在其所有节点的存储库中的数据字节数排序。

  2. 要缩小列表,请使用选项卡顶部的筛选器。您可以仅显示特定架构和/或数据库中的节点,或显示特定节点子组上的所有活动。更改筛选器,然后单击应用 (Apply)

  3. 要选择名称中包含特定文本字符串的所有项,请在筛选字段中输入该文本字符串。此示例将选择表名称中包含字符串“fact”的节点。

  4. 要显示当前访问存储库的特定表的投影和分区的详细信息,请在存储库内容 (Depot Content) 选项卡的顶部窗格中选择一行。

另请参阅

在 MC 中监控存储库活动

5 - 管理存储库固定策略

Vertica 会根据需要从存储库中逐出数据,以便为新数据提供空间,以及提高请求处理速度。您可以固定数据库对象以降低存储库逐出的风险。可以固定两种对象类型:表和表分区。

通过“存储库固定 (Depot Pinning)”选项卡,您可以执行以下任务:

有关固定策略的详细信息,请参阅管理存储库缓存

列出固定策略

要列出现有的存储库固定策略,请执行以下操作:

  1. 选择“显示现有固定策略 (Display Existing Pinning Policies)”。

  2. 单击“搜索 (Search)”。Vertica 在“现有固定策略 (Existing Pinning Policies)”下列出当前固定到存储库的所有表:

  3. 如果需要,请通过设置以下字段对策略列表进行筛选和排序:

移除现有策略

您还可以使用“现有固定策略 (Existing Pinning Policies)”下的结果集移除一个或多个策略。

要移除一个或多个表策略,请执行以下操作:

  • 从策略列表中,选中要移除的策略的复选框。

  • 单击“批量移除表策略 (Bulk Remove Table Policies)”。

要移除表的分区策略,请执行以下操作:

  1. 在要移除的策略上,单击“修改策略 (Modify Policy)”。

  2. 在“修改固定策略 (Modify Pinning Policy)”对话框中,执行以下操作之一:

    • 在所需的策略上单击“移除策略 (Remove Policy)”。

    • 选中一个或多个策略的复选框,然后单击“移除选定的策略 (Remove Selected Policies)”。

  3. 单击“关闭 (Close)”。

创建固定策略

您可以创建一个将表数据固定到子群集存储库或所有数据库存储库的策略。您可以指定以下策略类型:

  • 表:固定所有表数据

  • 分区:固定分区键的指定范围。

查找固定对象

  1. 选择“创建或修改固定策略 (Create or Modify Pinning Policies)”。

  2. (可选)通过指定架构和表的完整名称或(对于通配符搜索)部分名称来筛选搜索结果。

  3. 单击“搜索 (Search)”。

您可以使用筛选出的数据确定适合进行存储库固定的表或分区。例如,相对于其他表的总访问计数(总访问计数 (Total Access Count))较高的表或分区适合进行固定。这可以根据数据存储要求(存储库百分比)和缓存数据的年限进行评估。例如,如果固定对象占用过多存储空间,则可能需要一个存储库来:

  • 将大型加载操作直接路由到公共存储以进行处理。

  • 增加逐出频率。

  • 增加从公共存储中获取的频率,以处理对非固定对象的查询。

所有这些情况均会对整个数据库性能产生不利影响。

有关 Vertica 如何处理存储库存储和周转的详细信息,请参阅管理存储库缓存

创建表或分区固定策略

要为单个表或表分区创建固定策略,请执行以下操作:

  1. 在“创建或修改固定策略 (Create or Modify Pinning Policies)”列表下,找到要固定的表。

  2. 单击“创建策略 (Create Policy)”。“创建固定策略 (Create a Pinning Policy)”对话框将打开。

  3. 选择所需的策略范围,为以下几项之一:

    • 数据库

    • 可用子群集

  4. 选择所需的策略类型:表策略分区策略

    表策略

    单击“创建 (Create)”:

    分区策略
    (仅在表已分区时可用)

    • 输入最小和最大分区键。

      例如:

    • 单击“创建 (Create)”。

      Vertica 将显示新的固定策略:

    *(可选)通过设置新的分区键在同一个表上添加多个分区级别策略。

  5. 完成后,单击“关闭 (Close)”。

在多个表上创建固定策略

要在多个表上创建固定策略,请执行以下操作:

  1. 在“创建或修改固定策略 (Create or Modify Pinning Policies)”中,选中要固定的表的复选框。

  2. 单击“批量创建表策略 (Bulk Create Table Policies)”。“批量创建表策略 (Bulk Create Table Policies)”对话框将打开。

  3. 选择所需的策略范围,为以下几项之一:

    • 数据库

    • 子群集(选择所需的子群集)

  4. 单击“创建 (Create)”,然后单击“关闭 (Close)”。

移除固定策略

要移除现有的固定策略,请执行以下操作:

  1. 在“创建或修改固定策略 (Create or Modify Pinning Policies)”中,找到包含要移除的策略的表。

  2. 单击“修改策略 (Modify Policy)”。

  3. 在“修改固定策略 (Modify Pinning Policy)”对话框中,执行以下操作之一:

    • 在要移除的策略上单击“移除策略 (Remove Policy)”。

    • 选中一个或多个策略的复选框,然后单击“移除选定的策略 (Remove Selected Policies)”。

  4. 单击“关闭 (Close)”。

从多个表中移除固定策略

要从一个或多个表中批量移除固定策略,请执行以下操作:

  1. 在“创建或修改固定策略 (Create or Modify Pinning Policies)”中,选中目标表复选框。

  • 单击“批量移除表策略 (Bulk Remove Table Policies)”。“批量移除表策略 (Bulk Remove Table Policies)”对话框将打开。

  • 单击“移除 (Remove)”,然后单击“关闭 (Close)”。

  • 查看频繁获取的表

    您可以在存储库中查询最常从公共存储中获取的表。这可以帮助您快速确定存储库固定的潜在对象:

    1. 从存储库中选择前 n 个重新获取的表。

    2. 指定要返回的结果数的最大值(默认为 10),以及要查询的日期范围。

    从列表中,您可以执行以下任务: