【问题标题】:Querying a database again and again or storing all the data in a file at once and querying the files?一次又一次地查询数据库或一次将所有数据存储在文件中并查询文件?
【发布时间】:2017-11-14 06:18:19
【问题描述】:

我正在制作一组 Talend 作业,我将根据作业的需要以不同方式查询同一组表。这些桌子很大。如果在运行作业之前查询所有表并从数据库中获取所有数据并将它们存储在一个文件中,然后将这些文件用于 Talend 作业中的各种查询,这会不会很好。这些文件将存储在作业运行的同一位置,而数据库服务器将存储在其他位置。如果我没记错的话,那么 DB 本身已经实现了某种缓存和索引,以使查询更快和优化。那么,是否值得将它们存储在一个文件中,然后在 Talend Jobs 中查询它们?我正在使用 Oracle 数据库。

【问题讨论】:

    标签: database oracle etl talend


    【解决方案1】:

    我不会这样做。

    根据您的许可,您或许可以使用内存表。尽管如此,根据查询的大小,可能会有一些缓存,如您所说。

    我会避免它,因为它可能会导致各种问题:

    • 文件系统可能变得不可用
    • 本地文件系统中没有缓存,调用它可能会慢很多 - 甚至比处理慢
    • 所有数据库性能助手(例如索引、缓存、查询分析器)都将不可用
    • 需要实现某种数据库系统 - 这很愚蠢,因为那里已经有数据库了

    不过,一个想法可能是这个或另一个数据库中的临时表。

    所以重载只会发生一次,我觉得这是个好主意。然后将在临时表上进行进一步处理。之后,在所有进程都完成后,这个临时表将被删除。

    【讨论】:

    • 文件系统可能变得不可用是什么意思?
    • 好吧,根据您的设置,文件系统可能会损坏或断开连接,例如在服务器上安装。希望有一个数据库可能会有一个很好的副本/故障转移设置。有趣的是,您只选择了我的答案中的一句话,尽管所有因素都应该说明不使用文件系统,这句话只是全局的一小部分。
    • 我拿那句话只是因为我不明白。休息我做了。无论如何感谢您的帮助。
    猜你喜欢
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    相关资源
    最近更新 更多