用python制作的简单、小巧、可笑的etl
dasladen的Python项目详细描述
dasladen是一个用python制作的简单、小巧且可笑的etl
dasladen是一个通用的python包,用于自动生成etl(提取、转换和
加载数据)通过一个或多个表示任务的.json文件的配置。
它基于petl
。它可以执行如下任务:
- 将.csv文件加载到数据库表
- 在.csv文件中运行数据库查询
- 在数据库表中运行数据库查询
- 将.csv文件转换为另一个.csv文件
- 将.xls文件转换为.csv文件
- 将.xml文件加载到数据库表中
- 将.xls文件转换为.csv文件
这些任务可以配置为执行由petl
提供的一些基本转换,并且您可以编写自己的
在加载过程中由dasladen调用的python模块或类中的转换。
还有其他类型的任务需要执行,如:
- 将文件压缩为.zip文件
- 上载文件
- 执行python脚本
- 执行SQL命令
任务配置在一个.json
文件中,该文件支持将要执行的任务序列
按配置顺序。如何配置任务的详细信息将出现在wiki页面中。
使用dasladen的基本步骤是:
- 通过
pip install dasladen
在您的环境或virtualenv中安装dasladen包。 - 如果要执行数据库任务,请安装数据库驱动程序包。达斯莱登准备和
以下驱动程序:mysql via
PyMySQL
,ms sql server viapyodbc
,oracle viacx_Oracle
。请看 所选驱动程序包的限制。 - 为项目创建文件夹。
- 在项目文件夹中准备具有以下名称的文件夹结构:
input
是放置输入文件的默认文件夹,如.csv、.xml、.xls和.sql文件output
是任务写入目标文件的默认文件夹module
是python脚本的文件夹,如果不能将其放入项目文件夹中capture
是放置任务文件(.json或.zip)的默认文件夹log
是dasladen写入任务日志的文件夹tasks
是可以放置任务文件的文件夹。这只是个建议。
- 使用
tasks
文件夹中的任务创建一个.json
文件。 - 从调用
python -m dasladen
的项目文件夹启动dasladen。 - 如果要查看“登录控制台”窗口,请在调用时将
--verbose
作为参数传递。 - 将
.json
任务文件从tasks
复制到capture
文件夹。
观察者将打开任务文件并对其进行处理。要查看结果,可以打开log
文件夹并搜索
对于watcher_DD_TT.log
,其中dd_tt是生成日志的日期和时间。在log
文件夹中
也可以查看单个任务日志。
复制任务文件而不是移动它是很重要的,因为完成后它将被删除。
如果在capture
文件夹中删除.zip
以外的文件,则该文件将移动到input
文件夹。
您可以使用所有其他依赖文件(.csv、.xls等)压缩.json
文件并复制
也会压缩到capture
文件夹中。观察者将解压,然后在一个临时文件夹中,复制输入
文件(除了.json
文件)输入文件夹并执行.json
文件。
在.json
文件中,可以配置调度程序来运行任务。有了它你可以推迟执行或者
配置其重复周期。
通过pypi包的数据驱动程序:
- mysql通过PyMySQL包。V>;=0.7.5
- MS SQL Server通过pyodbc包。V>;=3.0.10
- Oracle通过cx_Oracle包。V>;=5.2.1
- PostgreSQL通过psycopg2包。V>;=2.8.3
当前版本适用于python 2和3。