gpt4 book ai didi

python - MongoDB 中 GB 数据的数据摄取

转载 作者:行者123 更新时间:2023-12-01 02:43:42 29 4
gpt4 key购买 nike

我有各种日志文件,其中包含数百万条记录。我想将记录从这些文件推送到 mongodb,我必须在插入 MongoDb 之前对数据进行规范化,并在 ID 上使用过滤器,ID 是文件中每行/记录中的公共(public)变量。

MY_MONGO_DB_SCHEMA =

 {
"ID" : "common in all the files",
"LOG_FILE_1":[{
# variable from LOG_FILE_1
"var1" : "contains the value matching with ID in
record",
"var2": "contains the value matching with ID in
record"
}],
"LOG_FILE_2" :[{# variable from LOG_FILE_2
"var3: "contains the value match with ID in record"
"var4": "contains the value match with ID i record"
}]
}

我已经编写了Python脚本,但它会消耗大量内存,或者如果我限制脚本对内存的使用,它会花费大量时间。有人可以建议使用 APACHE STORM 、 APACHE KAFKA 或任何其他工具来满足此类需求吗?在Kafka和storm之前我没用过

最佳答案

在程序中处理大文件需要大量内存,正如您所说,您的输入很大,因此使用单个进程处理它会花费大量时间。对于给定的用例,您可以将 Storm 与 kafka 结合起来。我将尝试解释它如何帮助您解决问题 -

Storm 有两部分 - Spout 和 Bolt
Spout - 它从源释放数据流。
Bolt - 保存您的业务逻辑,用于案例规范化记录。

将您的日志文件放入 kafka 主题中。让 Kafka 作为 Spout 的源。 Spout 将以流的形式发布记录,可以在 Bolt 中进行处理。
有关Storm的更多信息您可以通过https://in.udacity.com/course/real-time-analytics-with-apache-storm--ud381/类(class)。这是免费类(class)。
了解 Storm 的并行性 - http://www.michael-noll.com/blog/2012/10/16/understanding-the-parallelism-of-a-storm-topology/

希望有帮助。

关于python - MongoDB 中 GB 数据的数据摄取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45410159/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com