buk*_*zor 9 python olap sqlalchemy data-warehouse django-models
我们一直在努力研究我们问题的全维数据库模型,现在是时候开始编码了.我们以前的项目使用了由字符串操作构造的手工制作的查询.
在python和复杂的数据库布局之间进行接口是否有任何最佳/标准的做法?
我简要地评估了SQLAlchemy,SQLObject和Django-ORM,但是(我可能很容易遗漏一些东西)它们似乎针对微小的Web类型(OLTP)事务进行了调整,我正在进行高容量分析(OLAP)事务.
我的一些要求,可能与平时有所不同:
编写这些查询很容易,但编写代码以使数据排成一行非常繁琐,特别是随着模式的发展.这似乎是计算机可能擅长的东西?
不要对你的要求感到困惑.一种尺寸并不适合所有人.
相对快速地加载大量数据
为什么不使用数据库的本机加载器呢?使用Python准备文件,但使用数据库工具加载.你会发现这非常快.
快速轻松地更新/插入少量数据
这开始扭曲数据仓库的规则.除非您在谈论主数据管理以更新维度的报告属性.
这就是ORM和Web框架的用途.
轻松处理大量行(5年内每分钟300个条目)
再次,这就是您使用Python前端处理管道的原因,但实际的INSERT是由数据库工具完成的.不是Python.
为了将来的要求,可以轻松地改变模式(以及python接口)
您几乎没有用于自动执行此操作.它肯定是"编程"的最低优先级任务.您通常会手动执行此操作以正确保留数据.
顺便说一句,"通过字符串操作构建的手工制作的查询"可能是有史以来最大的错误.这些对于RDBMS解析器来说很难处理 - 它们比使用插入了绑定变量的查询要慢.
小智 2
当然是 SQLAlchemy。与 SQLAlchemy 相比,所有其他 ORM 看起来都像小孩子的玩具。特别是 Django-ORM。SQLAlchemy 之于 Python,就像 Hibernate 之于 Java 一样。