hologress 我想查询某张表的建表时间或者最后一次更新时间,该怎么查?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Hologres中,查询某张表的建表时间或最后一次更新时间,可以通过系统表 hologres.hg_table_info
获取相关信息。以下是具体的操作步骤和方法:
通过查询 hologres.hg_table_info
系统表,可以获取表的创建时间 (create_time
) 和最后修改时间 (last_modify_time
)。以下是查询语句示例:
SELECT
db_name,
schema_name,
table_name,
create_time,
last_modify_time
FROM
hologres.hg_table_info
WHERE
table_name = '<your_table_name>'
AND schema_name = '<your_schema_name>';
db_name
:数据库名称。schema_name
:模式名称。table_name
:目标表名称。create_time
:表的创建时间。last_modify_time
:表数据的最后修改时间。注意:请将 <your_table_name>
和 <your_schema_name>
替换为实际的表名和模式名。
如果需要进一步分析表最近一次修改的时间及修改的数据量变化,可以使用以下 SQL 查询:
WITH tmp_table_info AS (
SELECT
db_name,
schema_name,
table_name,
row_count,
collect_time,
last_modify_time
FROM
hologres.hg_table_info
WHERE
last_modify_time IS NOT NULL
AND type = 'TABLE'
AND table_name = '<your_table_name>'
)
SELECT
end_data.db_name AS db_name,
end_data.schema_name AS schema_name,
end_data.table_name AS table_name,
(end_data.row_count - start_data.row_count) AS modify_row_count,
end_data.row_count AS current_rows,
end_data.last_modify_time AS last_modify_time
FROM (
SELECT
db_name,
schema_name,
table_name,
row_count,
last_modify_time
FROM
tmp_table_info
WHERE
collect_time > (current_date - interval '1 day')
) end_data
LEFT JOIN (
SELECT
db_name,
schema_name,
table_name,
row_count
FROM
tmp_table_info
WHERE
collect_time <= (current_date - interval '1 day')
) start_data
ON
end_data.db_name = start_data.db_name
AND end_data.schema_name = start_data.schema_name
AND end_data.table_name = start_data.table_name;
modify_row_count
:表示最近一次修改时的数据量变化。current_rows
:当前表中的总行数。last_modify_time
:最近一次修改时间。说明:此查询适用于分析表在最近一天内的数据变化情况。
如果需要检查表是否已过期(基于生命周期设置),可以使用以下查询:
SELECT
*
FROM (
SELECT
CASE
WHEN EXTRACT(EPOCH FROM CURRENT_TIMESTAMP) - create_time::DECIMAL >= time_to_live_in_seconds::DECIMAL
THEN 1
ELSE 0
END AS mark,
t1.schema,
t1.tables
FROM (
SELECT
a.table_namespace AS schema,
a.table_name AS tables,
a.property_values AS time_to_live_in_seconds,
b.property_value AS create_time,
EXTRACT(EPOCH FROM CURRENT_TIMESTAMP) AS currentNow
FROM
hologres.hg_table_properties a
JOIN
hologres.hg_table_properties b
ON
a.table_name = b.table_name
WHERE
a.property_key = 'time_to_live_in_seconds'
AND b.property_key = 'create_time'
) AS t1
) AS t2
WHERE
t2.mark = '1';
mark=1
:表示该表已过期。time_to_live_in_seconds
:表的生命周期(以秒为单位)。create_time
:表的创建时间。注意:此查询仅适用于设置了生命周期属性的表。
hologres.hg_table_info
或 hologres.hg_table_properties
系统表时,需确保当前用户具有相应的权限。如无权限,请联系管理员授予查看权限。IMPORT FOREIGN SCHEMA
更新外部表元数据。通过上述方法,您可以准确查询 Hologres 表的创建时间、最后更新时间以及相关统计信息。
本技术圈将为大家分析有关阿里云产品Hologres的最新产品动态、技术解读等,也欢迎大家加入钉钉群--实时数仓Hologres交流群32314975