Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用django(最好是使用django)将数据从DB2服务器连续附加到sqlite,如果没有其他方法,则只使用python代码_Python_Sql_Django_Db2_Migrate - Fatal编程技术网

如何使用django(最好是使用django)将数据从DB2服务器连续附加到sqlite,如果没有其他方法,则只使用python代码

如何使用django(最好是使用django)将数据从DB2服务器连续附加到sqlite,如果没有其他方法,则只使用python代码,python,sql,django,db2,migrate,Python,Sql,Django,Db2,Migrate,我正在写一个django网站,它有一些基于DB2数据库提取数据的报告。由于我对该数据库只有只读访问权限,所以我希望将来自DB2的数据连续附加(或者每隔20分钟附加)到django使用的sqlite数据库中。 现在,我对python也完全陌生,因此我不知道该使用什么。 是否有任何django方法可以实现,或者我是否应该编写一个纯python脚本来复制数据 假设我在DB2中有一个包含字段的数据库——DEAL、BUSINESS、CUSTID、REPID、REPNAME(因为数据库非常旧,所以这里没有任

我正在写一个django网站,它有一些基于DB2数据库提取数据的报告。由于我对该数据库只有只读访问权限,所以我希望将来自DB2的数据连续附加(或者每隔20分钟附加)到django使用的sqlite数据库中。 现在,我对python也完全陌生,因此我不知道该使用什么。 是否有任何django方法可以实现,或者我是否应该编写一个纯python脚本来复制数据

假设我在DB2中有一个包含字段的数据库——DEAL、BUSINESS、CUSTID、REPID、REPNAME(因为数据库非常旧,所以这里没有任何主键)。我想继续将这些数据从DB2复制到Sqlite。最简单的代码应该是什么

请帮忙。


请记住,Db2 for Linux Unix windows、Db2 for zOS、Db2 for IBM i和Db2 Warehouse在内部都是不同的,因此,如果需要更多信息,请指定Db2的类型和版本

对于定期移动数据,您有许多选择@Iakovos_Belonias的建议就是其中之一。您的主要挑战是识别新行、更改行和删除行。如果源表不是很大,您可以完全复制它,但是如果源表很大,您必须尝试更智能的机制。如果是这种情况,请发表评论或提出新问题

对于近实时移动数据,最好的选择是使用更改数据捕获(CDC)应用程序,如IBM Infosphere data Replication或Oracle Golden Gate等。我认为没有免费的CDC应用程序(除了有限制的许可证,这些限制不能满足您的需要),商业CDC应用程序是为仍然不受支持的Db2版本提供的


我希望这有助于…

谢谢您的精心回复,我真的发现这给了我一些指导。当您询问版本时,DB2服务器是在AS400上工作的IBMi系列。我只能将ODBC连接到该服务器,无法与任何驱动程序直接连接(我尝试了一些python驱动程序,可能存在一些许可证问题)。再一次,我想让所有这些都免费,所以我认为CDC不会有帮助。我无法识别新行是因为DB2没有时间戳,我所能做的就是使用rrn sql命令,这可能对新行有帮助,也可能没有。如果您可以通过ODBC连接到DB2 for IBM I(iSeries,AS/400),这意味着您还可以通过JDBC进行连接,并可以使用任何在ODBC/JDBC上工作的工具,包括大多数ETL工具(免费或收费)。另一方面,老式的IBMi开发人员过去常常创建没有键的表(他们称之为物理文件),并创建一种具有唯一键的索引+视图(他们称之为逻辑文件)。如果您可以确定特定表的顶部是否有一个“键控逻辑文件”,那么您就有一个唯一的索引。关于RRN,您可以将其用作PK,但请记住,如果出于某种原因,他们重新组织表(他们称之为“重新组织物理文件成员”),RRN将随着记录在表中位置的改变而改变。只需额外的注释。询问表所有者该表(或物理文件)是否为多成员。。。多成员是其他RDBMS中不存在的概念。非常感谢您在这方面花费宝贵的时间,您的评论澄清了许多概念。您好,感谢您在这方面花费宝贵的时间。我发现你分享的东西真的很有用。如果可能的话,你能帮我给出一些与我的需求直接相关的代码示例吗?不过,我很感谢您的工作。您好,您需要什么样的coda示例?我需要一个小代码,以便使用odbc连接每隔一段时间将整个表从IBM I系列DB2复制到sqlite中。举个简单的例子,如果您已经准备好了代码,并且只希望定期执行脚本,那么您需要的是一个cron作业。谷歌搜索你的操作系统和如何做一个cron工作,你会发现很多简单的例子。如果我有IBM的经验,我会告诉你你想要什么,因为我没有这些系统的经验,我不能肯定地告诉你,我很抱歉。没问题,我非常感谢你在这里的帮助和支持。