python的extract transform load(etl)工具包
rdc.etl的Python项目详细描述
rdc.etl是Python2.7+的提取转换加载(ETL)工具包(否 python 3支持)。它提供了创建复杂数据所需的所有工具 来自简单的原子IO连接转换块的集成作业。
示例用法
>>># Sample data extract transformation.>>># Use hardcoded data here for sample purpose.>>>fromrdc.etl.transform.extractimportExtract>>>@Extract...defsample_extract():...yield{'first_name':'John','last_name':'Doe',}...yield{'first_name':'Jane','last_name':'Dae',}
>>># Sample data transformation.>>>fromrdc.etl.transformimportTransform>>>@Transform...defsample_transform(hash,channel):...hash['last_name']=hash['last_name'].upper()...hash['initials']='{0}.{1}.'.format(hash['first_name'][0],hash['last_name'][0]).upper()...yieldhash
>>># Sample load. This is only a screen log for sample purpose.>>>fromrdc.etl.transform.utilimportLog>>>sample_load_to_screen=Log()
>>># Tie everything together, then run!>>>fromrdc.etl.harness.threadedimportThreadedHarness>>>job=ThreadedHarness()>>>job.add_chain(sample_extract,sample_transform,sample_load_to_screen)>>>job()
运行测试套件
pip install nose
make test
发行说明
1.0.0a6
- 数据库转换:现在出现在rdc.etl.extra子包中,以避免 混合核心API和糖盒。
- 数据库转换:允许(插入/更新)更灵活。
- 更好的标准遵从性(感谢python)
- 为了简单起见,马具现在被称为工作。旧名也将保留(公元前)。
- xmlmap增强。
- http状态接口(早期的极简版本)。
- 更改示例名称以避免导入地狱。
- 更少的黑客http阅读器,更好的unicode支持(@jmorel)。
- 现在可以使用pastescript生成一个空的工作etl项目。
- 基于文件代理的下载管理器。
- 小修小修。
1.0.0a5
- 状态:控制台现在有令人惊奇的ANSI,详细的IO统计信息,总体统计信息 (内存,时间)添加,实验http状态,数据库加载的db stats。
- API稳定化、清理和简化为1.0.0。
- 键盘操作中断:CTRL—C将退出正在运行的作业 而不是让你的程序过时。
- 地图简化。
- 对各种转换类的增强:load.database.databaseload, filter.filter,map.xml.xmlmap,util.log,join.database.databasejoin
- 新转换:util.limit
- 各种错误修复。
- 小的改进:在转换中自定义名称,更多的测试。
- 将存储库移动到github.com/rdcli/etl。