【问题标题】:dbt + clickhouse incremental materialization - error 62dbt + clickhouse 增量实现 - 错误 62
【发布时间】:2022-12-22 06:39:45
【问题描述】:

我在通过 dbt-clickhouse (+ dbt 1.3) 实现增量实现方面有些挣扎。我的模型看起来像这样(我尽可能地简化了):

{{
    config(
        materialized='incremental',
        engine='MergeTree()',
        order_by=['ts'],
        unique_key=['impid']
    )
}}
select ts, impid from gam.data
{% if is_incremental() %}
where ts >= now() - toIntervalHour(1)
{% endif %}

我在运行 dbt run 时收到的错误是:

10:16:18    :HTTPDriver for http://localhost:8123 returned response code 400)
10:16:18     Code: 62. DB::Exception: Syntax error: failed at position 312 ('empty') (line 15, col 9): empty
10:16:18        as (
10:16:18
10:16:18    select ts, impid from gam.data
10:16:18
10:16:18        )
10:16:18            . Expected one of: token, Arrow, DoubleColon, MOD, DIV, NOT, BETWEEN, LIKE, ILIK
10:16:18
10:16:18  Done. PASS=6 WARN=0 ERROR=1 SKIP=0 TOTAL=7

有趣的是,完全相同的模型适用于基本视图物化,但不适用于增量视图物化。我尝试了我能想出的每一个组合,但到目前为止没有运气。你遇到过类似的事情吗?

【问题讨论】:

  • 几个问题:这个确切的代码是否产生了这个错误?我在错误文本 (as ( ... )) 中看到 CTE。如果是这样,您还可以共享目标目录中的编译代码吗?最后,是否仅在 --full-refresh 标志时失败,或者当您有 where ts... 声明时也失败?
  • 该问题与对 22.7.1 后引入的最新 clickhouse CREATE AS ... EMPTY 语法的支持有关。 dbt-clickhouse 使用这种较新的语法。升级服务器解决了问题。谢谢你的评论!

标签: clickhouse materialized-views dbt dbt-clickhouse


【解决方案1】:

好的,问题解决了。我联系了 dbt 的 slack,似乎 dbt-clickhouse 适配器需要更新版本的 Clickhouse。这是一个错误,因为适配器应该适用于低至 22.7.1 的版本,但事实并非如此。也就是说,升级服务器后,一切正常。

【讨论】:

    猜你喜欢
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多