【问题标题】:MongoDB ETL (php/java...)MongoDB ETL (php/java...)
【发布时间】:2011-03-26 19:38:16
【问题描述】:

MongoDB 有 ETL 吗?...

【问题讨论】:

  • 你能说得更具体点吗?您想提取、转换并加载到 mongodb 到 MongoDb 中的数据的格式是什么?

标签: mongodb etl mongodb-php


【解决方案1】:

Pentaho 数据集成支持 MongoDB(请参阅文档 http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Steps)。

Talend 同样支持 MongoDB:https://github.com/adrien-mogenet/tMongoDBConnection

【讨论】:

    【解决方案2】:

    对于 CSV 文档的简单插入,我建议查看 Mongo wiki 页面 Import Export Tools

    对于更复杂的事情,我建议使用您最熟悉的语言编写临时脚本。

    【讨论】:

      【解决方案3】:

      Pentaho Data Integration and Talend 好像只支持从 MongoDB 读取,不支持写入。

      另一个刚刚宣布支持 MongoDB 的工具是 DataCleaner,它同时支持读写操作。它并没有将自己定位为一个 ETL 工具,而更像是一个数据质量分析工具,但它也确实具有类似 ETL 的功能。

      http://datacleaner.eobjects.org

      【讨论】:

      • Pentaho 现在支持写入 Mongo 集合
      • 是的,你甚至还有视频here
      【解决方案4】:

      我使用 python 脚本创建了自己的 ETL 解决方案,以将数据从 MySQL 传输到 MongoDB。在我心中真是太棒了。

      基本上,我使用以下两个 python 模块来访问 mysql 和 mongodb:

      1. pymongo
      2. python-mysql.connect

      它们都可以从官方 Ubuntu 存储库安装。

      【讨论】:

        【解决方案5】:

        我已经为 Scriptella ETL 工具创建了 MongoDB 驱动程序。可通过https://github.com/scriptella/scriptella-mongodb 获取。

        从关系表迁移数据示例:

        <connection id="out" url="mongodb://localhost/test"  classpath="../lib/scriptella-mongodb-driver.jar:../lib/mongo-java-driver-2.10.1.jar" />
        
        <query connection-id="in">
            SELECT * FROM USERS
            <script connection-id="out">
                {
                    operation: 'db.collection.save',
                    collection: 'users',
                    data: {
                        user_id: '?user_id',
                        name: '?name'
                    }
                }
            </script>
        </query>
        

        【讨论】:

          【解决方案6】:

          这个 PHP 程序自动将 MongoDB 数据库传输到 MySQL, 它内省 Mogno 集合,创建 MySQL 模式并传输数据。 它只做 1 级深(0 级和 1 级),不会迁移更深的嵌套:

          http://my.sociopal.com/sociopaltech/post?id=simple_utility_for_copying_data_from_mongodb_to_mysql_this_is_a_simple_php_program_im_using_in_o_61755

          【讨论】:

            【解决方案7】:

            Pentaho DI 支持 MongoDB 读取。我不确定这些写入。我认为考虑到 MongoDB 的底层结构而不是传统的 RDBMS,您可能最好使用 python/java 寻找自定义 ETL 流程/脚本,而不是使用可能无法满足他们要求的现成工具。最终,一旦流程成熟并针对 mongoDb 进行了多次测试,BI-ETL 市场中的这些参与者之一将在他们的工具中使用此功能

            【讨论】:

              【解决方案8】:

              MongoSyphon 是一个轻量级的开源 ETL 工具,可将数据转换为 JSON 或 XML 格式的文档。

              它也可以反过来,将文档直接发送到 MongoDB,这与其他尝试创建关系结构的 ETL 工具不同。除了 MongoSyphon,我们还可以使用这些处理相同的所有工具,例如:

              • 运输工具
              • 赫沃
              • 数据
              • 爬虫
              • Panoply
              • 同步
              • Pentaho

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-12-17
                • 1970-01-01
                • 2016-06-06
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2020-06-09
                • 1970-01-01
                相关资源
                最近更新 更多