【问题标题】:Truncate and Insert in ClickHouse Database在 ClickHouse 数据库中截断和插入
【发布时间】:2019-01-31 20:56:58
【问题描述】:

我有一个特殊的场景,我需要每 30 分钟左右截断并批量插入 ClickHouse DBMS 中的表。我在 ClickHouse 中找不到 truncate 选项的参考。

但是,我可以找到建议,我们可以通过删除旧表、创建同名的新表并插入来间接实现此目的> 数据。

对此,我有几个问题。

  1. 这是如何实现的?这个过程的步骤顺序是什么?
  2. 在删除和重新创建表期间,Select 等其他查询会发生什么情况?
  3. 在 ClickHouse 中删除和重新创建表通常需要多长时间?
  4. 有没有更好更干净的方法可以实现?

【问题讨论】:

    标签: sql database clickhouse yandex column-oriented


    【解决方案1】:

    这是如何实现的?这个过程的步骤顺序是什么?

    支持TRUNCATE。现在无需删除并重新创建表。

    在删除和重新创建表期间,其他查询(例如 Select)会发生什么情况?

    这取决于您使用的表引擎。对于合并树族,您将获得SELECT 的类似快照的行为。

    在 ClickHouse 中删除和重新创建表通常需要多长时间?

    我认为这取决于底层文件系统处理文件删除的速度。对于大型表,它可能包含数百万个数据部分文件,这会导致截断速度慢。不过在你的情况下,我不会太担心。

    有没有更好更干净的方法可以实现?

    我建议使用带有 (DateTime / 60) 列(每分钟)的 partitons 以及不断为过期分区进行分区收集的用户脚本。

    【讨论】:

    猜你喜欢
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多