【问题标题】:How to turn dbt logs OFF?如何关闭 dbt 日志?
【发布时间】:2021-08-26 10:46:08
【问题描述】:

我们使用dbt 0.19.1 进行数据转换。

转换的表格数量超过 100 个。

一旦触发dbt run,我们会得到很多日志行:

08:42:58 | Concurrency: 10 threads (target='DEV')
08:42:58 | 
08:42:58 | 1 of 167 START incremental model a [RUN]
08:42:58 | 5 of 167 START incremental model b [RUN]
08:42:58 | 9 of 167 START incremental model 
...

在 PRODUCTION 中很烦人,所以我正在寻找一种方法来关闭它。

我已经阅读了dbt document,但找不到选项。

请问有人有什么想法吗?赞赏!

【问题讨论】:

  • 奥利的回答很好。但是你为什么要关闭生产环境的登录呢?你不想知道是否有问题吗?
  • @AndersSwanson:对于那些运行日志的人来说,这并不重要。我们只需要知道是成功还是失败,以及在生产中失败时的错误信息。

标签: logging dbt


【解决方案1】:

我认为 dbt 不允许通过 CLI 进行日志抑制。解决它的一种方法是管道输出,例如dbt run > /dev/null

【讨论】:

  • 谢谢 Olle。这是一个很好的解决方案。但是我使用dbt作为python模块,并通过调用函数来触发dbt运行:handle_and_check。有没有机会关闭日志?
  • @DatNguyen 这很可能,但通过 Python API 运行 dbt 是 quite heavily discouraged,并且没有记录,因此找出答案的唯一方法是挖掘源代码。
【解决方案2】:

Olle 的答案是正确的。

另一种解决方案是使用 Python API - 一旦您升级 dbt 版本,它就没有记录,也不推荐使用。

from dbt import main

# pre stuff

# main show
if log_disabled:
    main.log_manager.disable()
res, success = main.handle_and_check(args=YOUR_ARGS_HERE)

# post stuff

如何使用dbt作为模块创建hook,我们来看看the repo named airflow-dbt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-02
    • 2011-05-17
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多