gpt4 book ai didi

postgresql - TimescaleDB 在第一次插入旧数据后压缩 block

转载 作者:行者123 更新时间:2023-12-05 03:56:20 27 4
gpt4 key购买 nike

我有一个 TimescaleDB 超表,它根据我的时间戳列每 1 个月的时间间隔分成几 block 。

TimescaleDB 是否使用相同的时间戳列来定义何时必须压缩 block ?

如果是这样,处理以下问题的最佳方法是什么:

我想从更早的时间开始填充此表,比方说,2017 年。

当我启动我的软件来执行这些插入操作时,它会在插入第一行(带有 2017 年的时间戳)后压缩表格,然后无法在同一 block 中执行下一次插入操作。

有没有办法避免这种情况?我可以暂时禁用所有 block 的压缩,然后在完成后重新启用它吗?

或者我可以通过某种方式强制插入,使 TimescaleDB 在此之后透明地进行解压缩、插入和重新压缩吗?

此外,我能否将压缩间隔的行为更改为基于插入行时而不是我的时间戳(这样即使我现在添加 2017 年的数据,它只会在从今天起一个月后压缩它) ?

最佳答案

Does TimescaleDB use the same timestamp column to define when a chunk has to be compressed?

它将始终使用主键时间列。您可以指定间隔。
当主键有其他列时(时间除外,例如下例中的 device_id),您可以使用 segmentedby option :请参阅 docs 中的示例

ALTER TABLE measurements SET (
timescaledb.compress,
timescaledb.compress_segmentby = 'device_id'
);

SELECT add_compress_chunks_policy('measurements', INTERVAL '7 days');

If so, how is the best method to handle the following issue: I want to populate this table starting from an older time, let's say, 2017. When I start my software to do these insertions, after it inserts the first row (with a timestamp from 2017) it will compress the table and then fail to do the next insertion in the same chunk. Is there a way to avoid that? can I momentarily disable compression for all chunks and then reenable it after I'm done?

您可以先创建超表(不压缩),然后插入您的历史数据,最后启用压缩(参见上面的示例代码)。
您也可以使用 Manual Compression : 然后你就可以完全控制并可以决定压缩哪些 block 以及何时压缩它们

Or can I someway force the insertion making TimescaleDB do the decompression, insertion, and recompression after that transparently?

future versions 中计划修改压缩数据

另请注意,时间刻度将不允许压缩超表的架构更改(请参阅 docs 中的警告)

The current release of TimescaleDB supports the ability to query data in compressed chunks. However, it does not support inserts or updates into compressed chunks. We also block modifying the schema of hypertables with compressed chunks.

关于postgresql - TimescaleDB 在第一次插入旧数据后压缩 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59436360/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com