监控动态表

本主题描述了查看和了解管道中动态表的方式:

部分

描述

列出动态表或查看有关特定列的信息

列出架构中的动态表并查看有关动态表的信息。

查看连接到动态表的表图形

查看连接到动态表的表图形。

使用 SQL 表函数监控动态表

使用 SQL 表函数监控动态表。

监控动态表的刷新状态

查看动态表的刷新状态。

列出动态表或查看有关特定列的信息

要列出架构中的动态表并查看有关这些动态表的信息,您可以使用下面的 SQL 命令或 Snowsight,只要您使用的角色对动态表具有 MONITOR 权限。

有关更多信息,请参阅 查看动态表元数据的权限

使用 SHOW DYNAMIC TABLES 命令可列出当前数据库中的动态表(如果当前未使用数据库,则列出账户中的动态表)。

例如,要列出数据库 mydb 和架构 myschema 中名称以 product_ 开头的动态表,请执行以下 SQL 语句:

SHOW DYNAMIC TABLES LIKE 'product_%' IN SCHEMA mydb.myschema;
Copy
+-------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  | created_on               | name       | database_name | schema_name | cluster_by | rows | bytes  | owner    | target_lag | refresh_mode | refresh_mode_reason  | warehouse | comment | text                            | automatic_clustering | scheduling_state | last_suspended_on | is_clone  | is_replica  | is_iceberg | data_timestamp           | owner_role_type |
  |-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  |2025-01-01 16:32:28 +0000 | product_dt | my_db         | my_schema   |            | 2    | 2048   | ORGADMIN | DOWNSTREAM | INCREMENTAL  | null                 | mywh      |         | create or replace dynamic table | OFF                  | ACTIVE           | null              | false     | false       | false      |2025-01-01 16:32:28 +0000 | ROLE            |
                                                                                                                                                                                         |  product dt ...                 |                                                                                                                                                 |                                                                                                                                                                                                                                                                                                                                                                                                                       |
  +-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

要输出有关动态表中列的信息,请使用 DESCRIBE DYNAMIC TABLE 命令。

例如,要列出 my_dynamic_table 中的列,请执行以下 SQL 语句:

DESC DYNAMIC TABLE my_dynamic_table;
Copy
+-------------------+--------------------------------------------------------------------------------------------------------------------------+
  | name   | type         | kind   | null? | default | primary key | unique key | check | expression | comment | policy name  | privacy domain |
  |-------------------+------------------------------------------------------------------------------------------------------------------------|
  | AMOUNT | NUMBER(38,0) | COLUMN | Y     | null    | N           | N          | null  | null       | null    | null         | null           |                                                                                                                                                  |                                                                                                                                                                                                                                                                                                                                                                                                                       |
  +-------------------+------------------------------------------------------------------------------------------------------------------------+

动态表也包含在 TABLES 视图 的结果中。

查看连接到动态表的表图形

查看依赖项对于排除动态表链故障特别有用。在 Snowsight 中,您可以使用沿袭图可视化给定动态表所依赖的动态表。例如,您可以确定以下内容:

  • 动态表从中提取数据的上游依赖项。

  • 可能受到动态表更改影响的下游依赖项。

示例图。

依赖项可能会影响刷新性能。例如,假设动态表的上游表在计划刷新之前添加了大量数据负载。动态表将等待它完成刷新,从而导致其无法满足目标滞后要求。在沿袭图中,您会看到标记为“正在执行”的输入表,这表示存在延迟。

要查看特定动态表的图表,请执行以下操作:

  1. 登录 Snowsight

  2. 在导航菜单中,转到 Monitoring » Dynamic Tables

  3. 选择动态表。默认情况下显示 Graph 视图。这将显示带有选定动态表节点的图形。右侧的 Details 窗格显示有关其滞后指标和配置的信息。

  4. 要在图表中显示不同表的详细信息,请选择相应表。

要更新图表,请选择图表上方栏中的刷新按钮。

刷新图的显示。

如果由于 UPSTREAM_FAILED 错误代码导致刷新失败,则可以使用图表来可视化哪个上游表导致了失败。

图表显示中的 UPSTREAM_FAILED。

要查看图表中表格的完整详细信息,请参阅 列出动态表或查看有关特定列的信息

使用 SQL 表函数监控动态表

使用以下 INFORMATION_SCHEMA 表函数监控动态表:

  • DYNAMIC_TABLES:返回有关动态表的元数据,其中包括当前时间七天内的聚合滞后指标和最近刷新的状态。

  • DYNAMIC_TABLE_REFRESH_HISTORY:返回有关动态表的每次已完成和正在进行的刷新的信息,包括刷新状态和触发器以及目标滞后。

    • DYNAMIC_TABLE_REFRESH_HISTORY 视图:此 Account Usage 视图还显示动态表刷新历史记录的信息。它对于调试时间超过 DYNAMIC_TABLE_REFRESH_HISTORY 表函数的数据保留时间(七天)的问题很有用。

  • DYNAMIC_TABLE_GRAPH_HISTORY:返回提供每个动态表的历史记录、其属性及其与其他表和动态表的依赖项的信息。

    您可以使用此表函数获取给定时间点动态表的依赖关系树的快照。

    输出还反映了随时间推移动态表属性所做的更改。每行表示一个动态表和一组特定的属性。如果更改动态表的某个属性(例如,目标滞后),则该函数将返回最新的属性。

监控动态表的刷新状态

本节介绍如何查看所有动态表或特定动态表的刷新状态。

有关故障排除刷新,请参阅 动态表刷新跳过、缓慢或失败故障排除诊断常见的动态表刷新问题

监控所有动态表的刷新

您可以使用 Snowsight 或 DYNAMIC_TABLES 表函数来查看所有动态表的刷新状态。

登录 Snowsight。在导航菜单中,选择 Monitoring » Dynamic Tables

您可以在此页面上查看所有动态表的状态和上次刷新状态。您还可以按数据库或架构进行筛选以缩小结果范围。

在 Snowsight 中刷新历史视图。

监控特定动态表的所有刷新

您可以使用 Snowsight 或 DYNAMIC_TABLES_REFRESH_HISTORY 表函数来查看给定动态表的刷新历史记录。

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Monitoring » Dynamic Tables

  3. 选择动态表,然后转到 Refresh History 选项卡。

    此页面显示动态表的刷新历史记录,其中包括有关每次刷新的状态、持续时间和实际滞后时间以及每次刷新时更改的行数的信息。

    它还显示动态表的滞后指标,其中包括目标滞后内的时间百分比以及给定间隔内最长的实际滞后时间。

在 Snowsight 中刷新历史视图。
语言: 中文