首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >海量数据加载/卸载的最佳实践?

海量数据加载/卸载的最佳实践?
EN

Stack Overflow用户
提问于 2010-09-27 00:09:39
回答 2查看 2.7K关注 0票数 1

我的问题适用于ETL场景,其中转换在数据库之外执行(完全)。如果要提取、转换和加载大量数据(20+百万条或更多记录),所涉及的数据库是:,那么最好的方法是:

  1. 有效地从源数据库中读取:有什么方法可以避免对网络的所有查询?我听说过关于直接路径提取方法/批量卸载方法的一些好东西--我不确定它们是如何工作的,但我想对于任何类型的非基于网络的数据读取/导入,我都需要一个转储文件?
  2. 有效地将转换后的数据写入目标数据库?:我应该考虑Apache吗?它会帮助我开始转换并将所有数据并行加载到目标数据库吗?-它会比说Oracle的大容量加载实用程序更快吗?如果没有,是否有一种方法可以远程调用Oracle/MSSQL上的大容量负载?

感谢你的想法/建议。

EN

回答 2

Stack Overflow用户

发布于 2011-02-04 00:51:14

为此,我将始终使用db的大容量加载工具。远程控制大容量负载是一个系统管理问题;始终有一种方法可以做到这一点。

这意味着ETL的前两个阶段是和应用程序,为大容量加载工具生成正确的文件格式,最后阶段是调用批量加载。

票数 1
EN

Stack Overflow用户

发布于 2011-02-03 23:58:30

如果将数据提取到平面文件,则可以使用Oracle外部表直接将文件读入oracle。此时,您可以执行直接路径插入(/*+追加*/),以执行必要的转换。此外,如果表正在说明,则您将节省重做成本,但需要将数据丢失/需要在下一次备份之前发生媒体故障时重新加载的帐户考虑进去。

另外,如果数据是基于时间的,请考虑使用分区和分区交换。您可以通过上面的方法将数据加载到一个无索引的暂存表中,创建必要的索引(也可能是NOLOGGING),这比在插入期间维护索引更快,然后将分区“交换”到主表中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3800378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档