gpt4 book ai didi

使用 Apache Spark/Kafka/Storm 到 Cassandra 处理和存储 Java 大型 csv 文件

转载 作者:行者123 更新时间:2023-12-01 09:33:31 24 4
gpt4 key购买 nike

我正在满足一个要求,需要从 csv/tsv 读取传感器数据并将其插入 Cassandra 数据库。

CSV 格式:

传感器1时间戳1值
传感器1时间戳2值
传感器2时间戳1值
传感器2时间戳3值

详细信息:

用户可以将文件上传到我们的网络应用程序。文件上传后,我需要在下一页中向用户显示列中的唯一值。例如 ->

  1. 传感器1节点1
  2. 传感器2节点2
  3. 传感器创建

用户可以使用名为node1的现有主键映射sensor1,在这种情况下,sensor1的时间戳和值将被添加到主键等于node1的表中,或者创建主键,在这种情况下,时间戳和值将是添加了新的主键。

我能够使用 Java8 流和收集来实现这一点。这适用于小型 csv 文件。

问题:

  1. 如何将巨大的 csv/tsv 文件 (200 GB) 上传到我的网络应用程序?我应该将文件上传到 HDFS 并在 UI 中指定路径吗?我什至将大文件分成小块(每个 50 MB)。

  2. 如何从第一列获取唯一值?我可以使用 Kafka/spark 吗这里?我需要将时间戳/值插入 Cassandra 数据库。再次我可以使用吗卡夫卡/ Spark 在这里?

非常感谢任何帮助。

最佳答案

How can I upload huge csv/ tsv file (200 gb) to my web application? Shall I upload the file in HDFS and specify the path in UI? I have even split the huge file into small chunks (50 MB each).

取决于您的网络应用程序的使用方式。在从客户端到服务器的 HTTP 请求上下文中上传如此大的文件总是很棘手。您必须异步执行此操作。无论您将其放入 HDFS 还是 S3,甚至是简单的 SFTP 服务器,都是设计选择的问题,该选择将影响您想要围绕该文件构建的工具类型。我建议从 FTP/NAS 等简单的东西开始,当您需要扩展时,您可以使用 S3 之类的东西。 (使用 HDFS 作为共享文件存储是我没有看到很多人做过的事情,但这不应该阻止您尝试)

How can I get unique values from first column? Can I use Kafka/ spark here? I need to insert timestamp/ value to Cassandra db. Again Can I use Kafka/ Spark here?

Spark 批处理甚至普通的 M/R 作业都可以满足您的需要。这只是一个简单的 groupBy 操作,尽管您应该真正考虑一下您愿意在延迟上牺牲多少,因为 groupBy 操作通常成本高昂(它涉及洗牌)。一般来说,根据我有限的经验,使用流式处理用例有点过大,除非您获得连续的源数据流。但您描述用例的方式对我来说看起来更像是批量候选者。

我会关注的一些事情:如何从客户端应用程序传输文件、Cassandra 中数据可用性的端到端 SLA 是什么、出现故障时会发生什么(我们是否重试等) ),我的作业运行的频率(每次用户上传文件时都会触发它还是可以是一个 cron 作业)等。

关于使用 Apache Spark/Kafka/Storm 到 Cassandra 处理和存储 Java 大型 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39197879/

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