更改 ClickHouse 中键表达式排序的方向

问题描述 投票:0回答:2

使用此模式在 Tinybird 中创建数据源可以按预期工作

DESCRIPTION generated from ../datasets/posts_1K.csv

SCHEMA >
    `date` Date,
    `post_id` Int32,
    `views` Int32

ENGINE MergeTree
ENGINE_SORTING_KEY date, post_id

我想知道是否可以在排序键的表达式之一中更改排序方向。这个模式失败了

DESCRIPTION generated from ../datasets/posts_1K.csv

SCHEMA >
    `date` Date,
    `post_id` Int32,
    `views` Int32

ENGINE MergeTree
ENGINE_SORTING_KEY date DESC, post_id

tb push datasources/posts_1K_sorted_date_desc_post_id.datasource
时。还尝试过
ENGINE_SORTING_KEY "date DESC, post_id"

这样的事情在 ClickHouse 上是否可能实现?不确定是否可以阅读 docs

另外 - 这样的事情在任何情况下都有意义吗?

sql clickhouse
2个回答
1
投票

ENGINE_SORTING_KEY 日期 DESC

不可能。没有计划实施。 对于大多数用例来说没有意义。

CH 能够使用

ENGINE_SORTING_KEY date ASC
来优化
select order by date desc

在极少数情况下,它可以改善简短的精确实时查询。人们使用 hack

order by -date
order by additional_date_substracted_from_max_date
https://github.com/ClickHouse/ClickHouse/issues/11564#issue-635913235


0
投票

TinyBird 不允许您更新架构的引擎排序键。您必须使用所需的定义创建一个新架构。旁注,您无法删除列、更新列名称或更新列的类型(您应该能够通过添加列)。

在 Tiny Bird 中更改模式并不容易,而且在许多情况下目前是不可能的。我了解到,提前准确规划出您想要的架构是很好的。另外,您的排序键应该反映您计划如何查询数据,我了解到排序键应该从最低基数到最高基数排序 https://www.tinybird.co/clickhouse/knowledge-base/sorting-key-performance

不确定这是否是点击屋的事情,但我知道 TinyBird 不允许您进行此类更改。

如果您想将数据从旧数据源移至新数据源,我建议使用 SQL、脚本或使用管道/MV 将数据通过管道传输到新架构中。

© www.soinside.com 2019 - 2024. All rights reserved.