gpt4 book ai didi

Clickhouse:如何在 clickhouse 中使用 `Data Skipping Indexes` 和 `Manipulations With Data Skipping Indices` 功能?

转载 作者:行者123 更新时间:2023-12-03 23:10:49 28 4
gpt4 key购买 nike

我正在使用 Data Skipping Indexes clickhouse 中的功能,我对它的用法感到困惑。如果我在创建表时添加数据跳过索引,如下所示:

CREATE TABLE MyTable
(
...
INDEX index_time TimeStamp TYPE minmax GRANULARITY 1
)
ENGINE =MergeTree()
...

当我用 TimeStamp 查询时过滤条件“index_time”有效。但是如果我在创建表时没有添加索引,或者,我添加了索引 Manipulations With Data Skipping Indices像这样的功能:
ALTER TABLEE MyTable ADD INDEX index_time TimeStamp TYPE minmax GRANULARITY 1

然后索引“index_time”不起作用。

我的数据库正在生产中运行,所以我无法重新创建表。我必须使用第二种方式。谁能解释为什么它不起作用或者我以错误的方式使用了该功能?

最佳答案

您的查询在 ALTER TABLE ADD INDEX 之后不使用索引的原因是索引尚不存在。 (!)

任何新数据都将被正确索引,这就是将它放入 CREATE TABLE 时索引工作的原因。 ClickHouse 在您加载数据时构建索引。如果您创建了表,运行 ALTER TABLE ADD INDEX 并加载数据,您将看到相同的行为。

当数据已经存在时,情况就不同了。 ALTER TABLE 更新表的元数据,但此时您的所有数据都已写入表中的部分。 ClickHouse 不会自动重写部分以实现新索引。但是,您应该能够通过运行强制重写以包含索引:

OPTIMIZE TABLE MyTable FINAL 

参见 Github 问题 https://github.com/yandex/ClickHouse/issues/6561瑞江引用的更多信息。

关于Clickhouse:如何在 clickhouse 中使用 `Data Skipping Indexes` 和 `Manipulations With Data Skipping Indices` 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57708643/

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