如何说服 DBA 使用 Oracle 外部表处理 500 MB 到 5 GB 的文件?

And*_*lfe 4 oracle oracle-11g-r2 sql-loader

在我们的数据提要中,我们有一堆 XML 文件以及大量平面文件要放入 Oracle11g 数据库中。我们将 XML 扁平化为分隔文件,并使用 SQLLoader 加载整个文件集。

我想尝试通过 TABLE ORGANIZED EXTERNALLY 进行概念验证加载,但我需要向 DBA 提出一个令人信服的案例,即它不会对服务器做一些邪恶的事情。我拥有的唯一合理的测试文件是 400-600 MB,在生产中我们会添加一些数 GB 的文件。

有什么风险,我应该如何处理它们,有什么想法吗?

更新:感谢所有有用的评论,伙计们。更多的讨论产生了“我们不能给你在数据库服务器上的 shell 访问来加载文件,我们不能通过 NFS 挂载远程文件”——这些基本上是安全问题。我们处理 PII,因此 DBA 很敏感。此外,有些人担心谁提供存储。

关于为什么 1) 外部表比 sqlloader 好得多或 2) 为什么外部表的测试平台风险低的任何进一步建议的“灌篮高手”论点?

再次感谢,

安德鲁·沃尔夫

unc*_*vin 7

IMO,外部表比 SQLLoader 脚本更易于管理和灵活。因此,如果您已经在执行重复的 SQLLoader 加载,我认为切换到外部表不会有什么坏处。

通过执行外部表,即使表的基础位于数据库外部的文本文件中,也可以从数据库内部访问数据,无需单独的 SQLLoader 工具/脚本。因此,您可以编写过程/包来直接从外部表操作数据。无需在任何地方加载它...只要它在您设置的目录中,它就已经“加载”了。

作为 DBA,与必须管理 SQLLoader 脚本相比,我更喜欢使用外部表管理 DML 脚本。但是 SQLLoader 已经有一段时间了……如果您的 DBA 也有,那它可能很难卖。:)


Dav*_*dge 5

如果您的 DBA 甚至不允许您探索概念验证中的好处,那么是时候转移公司了。

外部表至少可以追溯到 10.1 版,因此它们不是尖端技术。由于许多原因(导入时更灵活的数据转换、合并到其他表、多表插入、更好的并行性),它们被广泛地(参见 Tom Kyte 等人)认为是优越的,因此这种情况应该是微不足道的。

不幸的是,有一类 DBA 认为说“不”是他们的工作,也许您会被他们困住。

提出反对票,DBA 的 ....