我有一个 Oracle 服务器,我需要使用 python 将数据提取到文件中。这些文件被下游系统用作输入。
一些技术细节:
Oracle 和 Python 运行在不同的服务器上。数据库由客户端托管,而所有脚本都在 AWS RHEL EC2 服务器上运行。此屏幕截图中突出显示了 EC2 实例的详细信息。
。
我的方法 为此,我选择 Python 的 Pyodbc 库连接到远程 Oracle 客户端并使用 SQL 查询提取数据。下面是根据提供的 SQL 查询获取数据的代码摘录。
def fetch_data_to_file(self,curr,query,dataset):
try:
self.logger.info('Executing query: {}'.format(query))
start = time.time()
curr.execute(query)
query_time = time.time()-start
start = time.time()
rowcount=0
with open(dataset,'a+') as f:
writer = csv.writer(f,delimiter='|')
writer.writerow([i[0] for i in curr.description])
self.logger.info('Writing file: {}'.format(dataset))
while True:
rows = curr.fetchmany(self.batch_limit)
self.logger.info('Writing {} rows'.format(self.batch_limit))
rowcount+=len(rows)
if not rows:
break
self.timer.info('{} Query Execution Time: {} seconds'.format(dataset,query_time)) …Run Code Online (Sandbox Code Playgroud)