小编Rhy*_*wal的帖子

如何高效地将Oracle中的大数据集提取到文件中?

我有一个 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)

python oracle performance export bulk-operations

3
推荐指数
1
解决办法
7517
查看次数

标签 统计

bulk-operations ×1

export ×1

oracle ×1

performance ×1

python ×1