注意:向下滚动到背景部分以获取有用的详细信息。假设项目使用 Python-Django 和 South,如下图所示。
导入以下 CSV 的最佳方法是什么
"john","doe","savings","personal"
"john","doe","savings","business"
"john","doe","checking","personal"
"john","doe","checking","business"
"jemma","donut","checking","personal"
进入具有相关表Person、Account和AccountType的 PostgreSQL 数据库,考虑:
- 管理员用户可以通过自定义 UI 实时更改数据库模型和 CSV 导入表示
- 普通用户导入 CSV 文件时使用保存的 CSV 到数据库的表/字段映射
到目前为止,已经考虑了两种方法
- ETL-API 方法:为 ETL API 提供电子表格、我的 CSV 到数据库的表/字段映射以及到目标数据库的连接信息。然后 API 将加载电子表格并填充目标数据库表。看着 pygrametl 我不认为我的目标是可能的。事实上,我不确定是否有任何 ETL API 可以做到这一点。
- 行级插入方法:解析 CSV 到数据库的表/字段映射,解析电子表格,并以“连接顺序”生成 SQL 插入。
我实现了第二种方法,但在算法缺陷和代码复杂性方面苦苦挣扎。那里有没有我想要的python ETL API?还是一种不涉及重新发明轮子的方法?
背景
我工作的公司正在寻求将托管在共享点中的数百个特定于项目的设计电子表格移动到数据库中。通过允许管理员为每个项目定义/建模数据库、在其中存储电子表格并定义浏览体验,我们即将完成满足需求的 Web 应用程序。在这个完成阶段,过渡到商业工具不是一种选择。将 Web 应用程序视为 django-admin 的替代方案,尽管它不是,它具有 DB 建模 UI、CSV 导入/导出功能、可定制的浏览和模块化代码来解决项目特定的定制问题。
实现的 CSV 导入界面既麻烦又麻烦,所以我试图获得反馈并找到替代方法。