【发布时间】:2011-03-26 19:38:16
【问题描述】:
MongoDB 有 ETL 吗?...
【问题讨论】:
-
你能说得更具体点吗?您想提取、转换并加载到 mongodb 到 MongoDb 中的数据的格式是什么?
标签: mongodb etl mongodb-php
MongoDB 有 ETL 吗?...
【问题讨论】:
标签: mongodb etl mongodb-php
Pentaho 数据集成支持 MongoDB(请参阅文档 http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Steps)。
Talend 同样支持 MongoDB:https://github.com/adrien-mogenet/tMongoDBConnection
【讨论】:
对于 CSV 文档的简单插入,我建议查看 Mongo wiki 页面 Import Export Tools。
对于更复杂的事情,我建议使用您最熟悉的语言编写临时脚本。
【讨论】:
Pentaho Data Integration and Talend 好像只支持从 MongoDB 读取,不支持写入。
另一个刚刚宣布支持 MongoDB 的工具是 DataCleaner,它同时支持读写操作。它并没有将自己定位为一个 ETL 工具,而更像是一个数据质量分析工具,但它也确实具有类似 ETL 的功能。
【讨论】:
我使用 python 脚本创建了自己的 ETL 解决方案,以将数据从 MySQL 传输到 MongoDB。在我心中真是太棒了。
基本上,我使用以下两个 python 模块来访问 mysql 和 mongodb:
它们都可以从官方 Ubuntu 存储库安装。
【讨论】:
我已经为 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>
【讨论】:
这个 PHP 程序自动将 MongoDB 数据库传输到 MySQL, 它内省 Mogno 集合,创建 MySQL 模式并传输数据。 它只做 1 级深(0 级和 1 级),不会迁移更深的嵌套:
【讨论】:
Pentaho DI 支持 MongoDB 读取。我不确定这些写入。我认为考虑到 MongoDB 的底层结构而不是传统的 RDBMS,您可能最好使用 python/java 寻找自定义 ETL 流程/脚本,而不是使用可能无法满足他们要求的现成工具。最终,一旦流程成熟并针对 mongoDb 进行了多次测试,BI-ETL 市场中的这些参与者之一将在他们的工具中使用此功能
【讨论】:
MongoSyphon 是一个轻量级的开源 ETL 工具,可将数据转换为 JSON 或 XML 格式的文档。
它也可以反过来,将文档直接发送到 MongoDB,这与其他尝试创建关系结构的 ETL 工具不同。除了 MongoSyphon,我们还可以使用这些处理相同的所有工具,例如:
【讨论】: