Timescaledb - 如何在特定模式中显示超表块

Timescaledb - How to display chunks of a hypertable in a specific schema

我在名为 test 的架构上有一个名为 conditions 的 table。我创建了一个 hypertable 并插入了数百行。

当我 运行 select show_chunks() 时,它可以工作并显示块,但我不能按照手册中的建议使用 table 名称作为参数。这不起作用:

SELECT show_chunks("test"."conditions");

我该如何解决这个问题?

Ps: 我想通过名称查询块本身?我该怎么做?

show_chunks 需要一个 regclass,这取决于您当前的搜索路径意味着您需要架构限定 table。

以下应该有效:

SELECT public.show_chunks('test.conditions');

仅当您的 table 是 delimited identifier 时才需要双引号,例如,如果您的 table 名称包含 space,则您需要添加标识符的双引号。不过,您仍然需要用单引号将其括起来:

SELECT public.show_chunks('test."equipment conditions"');
SELECT public.show_chunks('"test schema"."equipment conditions"');

有关标识符引用的更多信息: https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

编辑:寻址 PS:

I want to query the chunk itself by its name? How can I do this?

feike=# SELECT public.show_chunks('test.conditions');
                show_chunks                 
--------------------------------------------
 _timescaledb_internal._hyper_28_1176_chunk
 _timescaledb_internal._hyper_28_1177_chunk
[...]

SELECT * FROM _timescaledb_internal._hyper_28_1176_chunk;