【问题标题】:Build ETL pipeline from MongoDB to ElasticSearch构建从 MongoDB 到 ElasticSearch 的 ETL 管道
【发布时间】:2016-06-06 17:11:13
【问题描述】:

我正在基于我的 Web 应用程序数据构建一个大数据分析解决方案。 我有什么ETL的逻辑架构解决方案是:-
1. 提取 - 首先从 MongoDB 中提取数据
2. Transform - 在应用多个转换的地方转换数据。例如数据转换、数据格式化、加入扁平化文档 BSON 类型数据
3. 加载 - 转换后的数据最终会推送到 Elastic Search
4. 我可以在 ES 中运行我的机器学习并在转换后的数据上构建统计模型以生成见解
5. 我的 UI 将访问这些生成的见解。

主要问题在上述第 2 步,即转换步骤。我经历了 MongoDB 河流、Logstash ETL,但如果我想做只有在 Spark 中才有可能进行的大量转换怎么办。
目前市场上针对此问题的最佳解决方案是什么?

从数据大小的角度来看,每天的累积量以 GB 为单位,而 MongoDB 中有数百万个文档。
为了限制我的开发范围,我选择了 ES 作为我的分析后端,而 MongoDB 作为我的主数据库。

【问题讨论】:

    标签: mongodb elasticsearch apache-spark logstash etl


    【解决方案1】:

    您可以使用mongo-hadoop connector for Apache Spark 从 MongoDB 中提取数据。在 Spark 中运行转换,甚至使用 Apache Spark 的 MLlib 进行机器学习。

    生成的数据可以存储回 MongoDB。减少 ETL 堆栈中的组件数量。虽然如果你愿意,你可以将 Apache Spark 的输出存储回其他一些系统..

    【讨论】:

    • 如果我希望我的管道处理所有 Mongo 集合,如何使用 Mongo-hadoop 连接器来处理所有 Mongo 集合,即我不会提供集合名称来模拟像 Batch Extract 之类的东西,而只是用时间戳查询所以我的查询将从某个开始时间更新到结束时间的所有集合文档
    • 如何使用mongo-hadoop 将是一个单独的问题,您应该发布一个新问题。关于您要从 MongoDB 中查询的内容,无论是集合中的所有文档还是来自特定时间范围的文档,这取决于您的用例。只需使用正确的过滤器根据需要运行 MongoDB 查询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2022-12-23
    • 2018-08-07
    相关资源
    最近更新 更多