我的问题适用于ETL场景,其中转换在数据库之外执行(完全)。如果要提取、转换和加载大量数据(20+百万条或更多记录),所涉及的数据库是:,那么最好的方法是:
感谢你的想法/建议。
发布于 2011-02-04 00:51:14
为此,我将始终使用db的大容量加载工具。远程控制大容量负载是一个系统管理问题;始终有一种方法可以做到这一点。
这意味着ETL的前两个阶段是和应用程序,为大容量加载工具生成正确的文件格式,最后阶段是调用批量加载。
发布于 2011-02-03 23:58:30
如果将数据提取到平面文件,则可以使用Oracle外部表直接将文件读入oracle。此时,您可以执行直接路径插入(/*+追加*/),以执行必要的转换。此外,如果表正在说明,则您将节省重做成本,但需要将数据丢失/需要在下一次备份之前发生媒体故障时重新加载的帐户考虑进去。
另外,如果数据是基于时间的,请考虑使用分区和分区交换。您可以通过上面的方法将数据加载到一个无索引的暂存表中,创建必要的索引(也可能是NOLOGGING),这比在插入期间维护索引更快,然后将分区“交换”到主表中。
https://stackoverflow.com/questions/3800378
复制相似问题