使用 dbt 将 JSON 个文件加载到暂存中

Use dbt to load JSON files into staging

是否可以使用 dbt 将数据从文件复制到数据库中?

我有一些文件作为数据源,我想在开始处理它们之前将它们加载到暂存层中。

在 postgresql 中类似这样的命令:

COPY staging.test (json_content) from 'C:\tmp002.json' 

但据我在文档中看到的那样,模型需要 SELECT 语句并且当 运行 dbt run

时 COPY 语句失败

来自原始本地文件?编号

您的两个 dbt 直接数据选项是:

  1. 通过 dbt seeds 加载一些大小受限的数据集,目前仅支持 csv。
  2. 通过 external-tables 从云托管存储(如 s3 存储桶)加载数据。

这是解释为什么此应用程序不尝试支持 ELT(提取-加载-转换)过程的 EL 部分的最佳资源:

What is dbt - dbtLabs Blog

在不进行工具推荐的情况下,您将需要一个额外的数据堆栈组件来为您处理提取过程。 dbt 假定数据已加载到仓库的“预处理”或“原始”区域,通常遵循 Lewis Gavin 的出色架构:

How to architect the perfect Data Warehouse - Lewis Gavin


编辑:关于种子数据的附加说明 - 目前逗号分隔是唯一受支持的格式。 this issue 中关于将其扩展到其他定界符和转义格式的一些讨论。

目前不支持播种 json 文件。还有 under discussion.