Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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
Python 将表从一个数据库复制到另一个数据库_Python_Sql_Pandas_Amazon S3_Redhat - Fatal编程技术网

Python 将表从一个数据库复制到另一个数据库

Python 将表从一个数据库复制到另一个数据库,python,sql,pandas,amazon-s3,redhat,Python,Sql,Pandas,Amazon S3,Redhat,我试图使用python将一个表从S3服务器复制到Redhat服务器上,但它不起作用。有什么想法吗 作为一个初始限制,我不能在源服务器中创建临时表,我只能复制到我的计算机上并从那里上传 首先,我尝试用pandas创建一个空数据帧,添加块以避免类似的内存问题,但我得到了一些错误,包括(OperationalError:('08S01','08S01]通信链路故障(14)(SQLFetch)'): 我不确定这是否是最好的方法,因此我非常愿意接受建议。我制作了一个包含许多表的Oracle迁移数据库,但丢

我试图使用python将一个表从S3服务器复制到Redhat服务器上,但它不起作用。有什么想法吗

作为一个初始限制,我不能在源服务器中创建临时表,我只能复制到我的计算机上并从那里上传

首先,我尝试用pandas创建一个空数据帧,添加块以避免类似的内存问题,但我得到了一些错误,包括(OperationalError:('08S01','08S01]通信链路故障(14)(SQLFetch)'):


我不确定这是否是最好的方法,因此我非常愿意接受建议。

我制作了一个包含许多表的Oracle迁移数据库,但丢失了以下代码:-(

我基本上创建了以下步骤:

  • 连接源数据库
  • 创建要迁移的所有表的列表
  • 对于哪个表,您需要读取一个tab\u column\u名称来提取一个列名序列表
  • 把日期存到字典里
  • 连接目标数据库(创建表)并输入与提取相同的字符串

  • 我建议您首先从所有表中提取脚本并在目标中创建

  • 要在提取前进行验证,请保存行计数表以在插入后进行匹配(在目标位置进行行计数)
我的表有很多日期,python给了我很好的性能


我希望这有帮助

看起来您无法连接到SQL server。您通常会使用数据库的备份和还原实用程序,而不是从每个表中进行选择。不确定您的连接问题,但如果您担心内存问题,我不认为将所有数据附加到数据帧列表会有所帮助。您可以尝试在for循环中wirte to_sql并附加到Redhat表
connection1 = pyodbc.connect(XXXX)
query1 = 'SELECT * FROM table'
dfl = []  


for i in pd.read_sql(query1, con=connection1 ,chunksize=1000):
dfl.append(chunk)


downloaded_data = pd.concat(dfl, ignore_index=True)