【dbt】使用seed导入csv文件
在做数据准备时,偶而也会遇到有.csv
文件需要读取的情况,dbt
提供seed
功能读取.csv
文件到数据库。读取后的表,可以使用ref()
方法引用。
测试环境
- dbt 1.5
- 数据库:Postgres 14
准备测试数据
可以使用自己准备的测试.csv
文件。也可以使用 jafgen
包来生成测试数据:
- 执行
pip install jafgen
命令安装jafgen
。 - 安装完成后,执行
jafgen --years 1
会在当前目录下的jaffle-data
目录生成一年的测试数据,包括:raw_customers.csv
客户ID和名称raw_items.csv
商品SKU和order_id关联raw_orders.csv
订单时间、门店ID、总额等raw_products.csv
产品价格和描述raw_stores.csv
门店信息raw_supplies.csv
供应信息
- 将
jaffle-data
目录及文件copy
到<dbt-project>/seeds/
目录下。
直接导入数据库
直接执行dbt seed -s raw_items
,会将 raw_items.csv
中的数据导入到在profiles.yml
配置中的默认schema
。9.5w行数据导入,大约需要50秒左右。
dbt
的特性是不允许跨数据库的,但可以用加后缀的方式,来指定不同的schema
。
指定schema
修改 dbt-project.yml
配置,可以将用加后缀的方式,将 .csv
导入到指定的 schema
。
比如我的profiles.yml
中配置了 schema: test
,即默认schema
是 test
。
在 dbt-project.yml
添加以下配置,可以将数据导入到 test_sed
的场景中,其中:
* my_test_dbt
是项目名称
* jaffle-data
是 seeds
目录下的 jaffle-data
目录,即 seed
的路径
* +schema: sed
:在默认场景名后面,增加后缀 sed
# dbt-project.ymlseeds:my_test_dbt:jaffle-data:+schema: sed
指定字段类型
dbt
会提供默认的字段类型,也可以在dbt-project.yml
中还可以配置指定类型。
raw_items
,模型名称+column_types
,指定字段类型,id
、order_id
、sku
是字段名称。
注意:如果raw_items
表已存在,需要先删除表再重新执行dbt run -s raw_items
才能生效,直接执行不会修改字段类型。
# dbt-project.ymlseeds:my_test_dbt:jaffle-data:+schema: sedraw_items:+column_types:id: varchar(36)order_id: varchar(36)sku: varchar(36)
参考
dbt
官方文档
【dbt】使用seed导入csv文件相关推荐
- 向oracle中导入*.csv文件
向oracle中导入*.csv文件 1.什么是*.csv,如何得到? 里面存放的是数据表.每行代表数据库表格的一行, 每行中,每两个数据中间由逗号","分割. *.csv可以通过& ...
- Oracle数据库表导出和导入csv文件操作
Oracle数据库表导出和导入csv文件操作 数据库是Oracle 9i 1.导出csv文件 这个十分简单,用pl/sql工具即可,首先选中要导出的表,右键选择Query data,在左侧出现的窗口中 ...
- python导入csv文件-jupyter 导入csv文件方式
先将准备的文件上传到自己的jupyter工作空间 import numpy as np import pandas as pd housing = pd.read_csv('housing.csv') ...
- python导入csv文件-python如何导入csv文件格式
1.通过标准的Python库导入CSV文件 Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组 ...
- python导入csv文件-python如何导入csv
1.通过标准的Python库导入CSV文件 Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组 ...
- C# 将List中的数据导入csv文件中
//http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中 将数据保 ...
- python如何将utf-8编码文件改为ansi编码文件_Excel导入CSV文件乱码?两个小方法让文件正常显示...
最近网友抱怨,收到别人发来的数据表,打开后长这样: CSV再EXCEL中显示为乱码 除了数字,其他是啥玩意儿 完全乱码... (乱码!乱马!乱吗?乱!) 但是当使用记事本打开,检查确认是否文件有问题时 ...
- excel导入csv文件_如何将包含以0开头的列的CSV文件导入Excel
excel导入csv文件 Microsoft Excel will automatically convert data columns into the format that it thinks ...
- mysql linux导入csv主键,MySQL导入csv文件内容到Table及数据库的自增主键设置
写在前面 目的是测试将csv文件内容导入到表中, 同时记录一下自增主键的设置. 测试采用MySQL8.0. 新建表customer_info如下, 未设置主键. 修改上表, 添加主键id, 并设置为自 ...
最新文章
- java 新浪天气预报接口_根据新浪天气API获取各地天气状况(Java实现)
- Android Gradle查询器
- echarts地图json实现
- python进行数据分析需要安装哪两个库_对Python进行数据分析_关于Package的安装问题...
- 95-862-045-源码-runtime-blob-BlobService
- 会议录音被误删了用EasyRecovery怎么恢复
- java调用python机器学习模型的坑
- 带通滤波器中心频率带宽matlab,带通滤波器频率设置
- 台达PLC实现伺服电机的正反转
- 常用中文字体的Unicode编码
- 自然常数e的由来(简单通俗易于理解自然常数e)
- vue3中使用swiper7及autoplay无效问题
- android 游戏循环 帧速,适用于Android的Firemonkey游戏循环
- 图像预处理(Evision)
- DFS入门级(模板)
- 可以进行论文降重吗?
- newuoa matlab包,PDFO首页、文档和下载 - Powell 无导数优化求解器
- 「运维有小邓」ADAudit Plus(AD域审计工具)的主要优势?
- Java字符串反转函数reverse()
- 新概念2 课文和单词(4)