我正试图找到有效的方法从数据库中提取大量数据,并将其放到云平台上进行分析(由于技术原因,无法以自动化的方式实现这一点)。对于大表,我想一次提取一个月数据的csv;然而,一个巨大的表没有日期,并且id有一个前缀,所以我不能简单地获取id的范围。所以我想我得加入另一张table。像这样:
select * from big_table
inner join (
select * from table2 where date between to_date("'2020-04-01'","yyyy-mm-dd") and to_date("'2020-05-01'","yyyy-mm-dd") query_result
on big_table.id = query_result.id
问题是,我希望能够将这个查询和内部查询的结果spool到csv文件中。内部查询可能需要一些时间来运行(大约8分钟),因此理想情况下,我希望运行上面的整个查询并导出到两个位置,而不是将上面的查询和内部查询作为单独的任务运行(从而复制工作)。
这可能吗?
1条答案
按热度按时间v2g6jxz61#
我认为你不能同时去两个地方。但是您可以创建一个临时表并使用它:
然后,您可能需要在此基础上创建索引:
然后:
你仍然需要用长矛把它们卷起来。
注:一个简单的索引
table2(date)
可能足以加速这两个查询。