Timescale 云:性能、规模、企业版

自托管产品

MST

本节包含一些关于压缩常见问题的故障排除思路。

ERROR: temporary file size exceeds temp_file_limit

当您尝试将数据块转换为列式存储时,特别是当数据块非常大时,可能会遇到此错误。压缩操作将文件写入新的压缩数据块表,该表写入临时内存中。可用临时内存的最大量由 temp_file_limit 参数决定。您可以通过调整 temp_file_limitmaintenance_work_mem 参数来解决此问题。

ERROR: tuple decompression limit exceeded by operation

当从列式存储中的数据块插入、更新或删除元组时,可能需要将元组转换为行式存储。这发生在您更新现有元组或在插入时需要验证约束的情况下。如果您在单个命令中触发了大量行式存储转换,最终可能会耗尽存储空间。因此,对单个命令可以解压缩到行式存储的元组数量设置了限制。

该限制可以增加或关闭(设置为 0),如下所示

-- set limit to a milion tuples
SET timescaledb.max_tuples_decompressed_per_dml_transaction TO 1000000;
-- disable limit by setting to 0
SET timescaledb.max_tuples_decompressed_per_dml_transaction TO 0;

低压缩率通常是由分段键的高基数引起的。这意味着您在压缩期间选择用于分组行的列具有太多唯一值。这使得无法在批处理中分组大量行。为了获得更好的压缩效果,请选择基数较低的分段键。

compress_chunk_time_interval configured and primary dimension not first column in compress_orderby.
consider setting "<column name>" as first compress_orderby column

当您配置 compress_chunk_time_interval 但未将主维度设置为 compress_orderby 中的第一列时,TimescaleDB 会在合并前解压数据块。这会降低合并效率。请将数据块的主维度设置为 compress_orderby 中的第一列以提高效率。

ERROR: must be owner of hypertable "HYPERTABLE_NAME"

如果您尝试使用非特权用户帐户将数据块压缩到列式存储中,或将其解压缩回行式存储,则可能会收到此错误。要压缩或解压缩数据块,您的用户帐户必须具有允许其对数据块执行 CREATE INDEX 的权限。您可以在 psql 命令行提示符下使用此命令检查当前用户的权限

\dn+ <USERNAME>

要解决此问题,请使用此命令授予您的用户帐户适当的权限

GRANT PRIVILEGES
ON TABLE <TABLE_NAME>
TO <ROLE_TYPE>;

有关 GRANT 命令的更多信息,请参阅 PostgreSQL 文档

ERROR: invalid attribute number -6 for _hyper_2_839_chunk
CONTEXT: SQL function "hypertable_local_size" statement 1 PL/pgSQL function hypertable_detailed_size(regclass) line 26 at RETURN QUERY SQL function "hypertable_size" statement 1
SQL state: XX000

如果您的超表索引变得非常大,您可能会看到此错误。要解决此问题,请使用此命令重新索引您的超表

reindex table _timescaledb_internal._hyper_2_1523284_chunk

有关更多信息,请参阅超表文档

您的计划作业可能因各种原因停止运行。在自托管的 TimescaleDB 上,您可以通过重启后台工作进程来解决此问题

在 Timescale 和 Managed Service for TimescaleDB 上,通过以下任一方式重启后台工作进程

  • 运行 SELECT timescaledb_pre_restore(),然后运行 SELECT timescaledb_post_restore()
  • 关闭服务然后重新开启。这可能会导致几分钟的停机时间,期间服务会从备份中恢复并重放预写日志。

关键词

在此页面上发现问题?报告问题 或 编辑此页面 在 GitHub。