【问题标题】:Joining Oracle Table Data with MongoDB Collection将 Oracle 表数据与 MongoDB 集合连接起来
【发布时间】:2017-07-04 12:37:38
【问题描述】:

我有一个报告框架来构建和生成报告(表格格式的报告)。截至目前,我曾经编写 SQL 查询,它曾经从 Oracle 获取数据。现在我遇到了一个有趣的挑战,其中一半的数据将来自 Oracle,其余数据来自 MongoDB,基于 Oracle 数据的输出。从 Oracle 获取的表格格式数据将有一个额外的列,其中包含从 MongoDB 获取数据的键。有了这个,我将有两个表格格式的数据集,一个来自 Oracle 数据,一个来自 MongoDB。基于一个公共列,我需要合并两个表数据并生成一个数据集来生成报告。

我可以在 java 代码中编写逻辑来合并两个表(比如二维数组格式的数据)。但是我没有自己做这个,而是考虑利用一些 RDBMS 内存数据概念。例如,H2 数据库,我可以在内存中动态创建两个表并执行 H2 查询以合并两个表。或者,我相信,Oracle 中也可能有一些东西,比如全局临时表等。有人可以建议将 Oracle 表数据与 MongoDB 集合连接的更好方法。

【问题讨论】:

    标签: oracle mongodb


    【解决方案1】:

    我认为您可以尝试使用 Kafka 和 Spark Streaming 来解决这个问题。假设您的数据是事务性的,您可以创建一个 Kafka 代理并创建一个主题。然后更改要保存到 Oracle 和 MongoDB 的现有服务。创建 2 个 Kafka 生产者(一个用于 Oracle,另一个用于 Mongo)将数据作为流写入 Kafka 主题。然后创建一个消费者组来接收来自 Kafka 的流。然后,您可以使用 Spark 集群聚合实时流(您可以查看 Spark Streaming API for Kafka 1)并将结果保存回 MongoDB(使用来自 MongoDB 2 的 Spark 连接器)或任何其他分布式数据库。然后,您可以对存储在 MongoDB 中的这些结果进行数据可视化/报告。

    【讨论】:

    • 感谢 Vamsi 的回复。但考虑到当前的用例,我认为我们不需要这个解决方案,因为它需要基础设施和更多的努力来实施。此外,我们正在尝试仅报告配置数据,因此数据会更少。我正在寻找更多选项/工具,它们可以在 oracle/mongoDB 之上为我提供包装器,我可以在其中进行查询并从两个地方获取数据。在上面的答案中,drill.apache.org 看起来很相似。但我还需要探索它。但再次非常感谢您提出的这个解决方案。可能是未来。
    【解决方案2】:

    另一个建议是使用 apache Drill。 https://drill.apache.org

    您可以使用 mongo 和 JDBC 钻头,然后可以将 oracle 表和 mongo 集合连接在一起。

    【讨论】:

    • 感谢您的评论。让我探索一下这个选项,看看它是否适合我们的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2022-10-18
    • 2020-11-16
    • 1970-01-01
    • 2020-05-04
    • 2020-06-13
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    相关资源
    最近更新 更多