gpt4 book ai didi

java - 当有大约 100 万条记录时,如何在 Java 中比较 Hive 和 Cassandra 数据

转载 作者:行者123 更新时间:2023-12-02 02:47:55 25 4
gpt4 key购买 nike

我使用Hive和Cassandra,Hive和Cassandra中的表结构和数据是相同的。将有近 100 万条记录。我的要求是我需要检查 Cassandra 和 Hive 中的每一行是否都有相同的数据。

  1. 我可以直接比较两个结果集对象吗? (一个结果集包含 Cassandra 数据,另一个结果集来自 Hive)
  2. 如果我们迭代结果集对象,结果集对象一次可以容纳 100 万条记录吗?会有性能问题吗?
  3. 处理如此庞大的数据时我们需要注意什么?

最佳答案

嗯,一些初始条件对我来说似乎很奇怪。首先,1M 条记录对于现代 RDBMS 来说并不是什么大问题,特别是当我们不希望有实时查询响应时。其次,Hive 和 Cassandra 表结构相同。 Cassandra 的范式是查询优先建模,它适用于 Hive 以外的某些场景。
不过,对于你的问题:
1. 是的。您可以编写 Java(正如我在标签列表中看到的 Java)程序,该程序将通过 JDBC 连接到 Hive 和 Cassandra 并一一比较结果集项目。
但您需要确保 Hive 和 Cassandra 的项目顺序相同。这可以通过 Hive 查询来完成,因为没有太多方法可以进行 Cassandra 排序。
2.结果集只是一个游标。它不会收集内存中的全部数据,只是收集一些批处理的记录(可配置)。
3. 1M或者记录它并不是一个巨大的数据,但是,如果你想处理数十亿条记录,那就是了。但我无法为您提供 Elixir 来回答所有涉及海量数据的问题,因为每种情况都是特定的。

无论如何,对于你的情况,我有一些担忧:
我没有最新 Cassandra 的 JDBC 驱动程序功能和限制的详细信息。
您尚未提供表结构以及 future 数据增长和复杂性的详细信息。我的意思是,现在单个数据库中有 100 万行、10 列,但稍后您可以在 10 个 Cassandra 节点的集群中拥有 100M 行。
如果这不是问题,那么您可以尝试您的解决方案。否则,为了比较简单,我建议执行以下操作:
1.将Cassandra的数据导出到Hive。
2. 比较两个Hive表中的数据。
我相信这会更直接、更稳健。

但以上内容并未解决有关为您的任务选择工具(Hive 和 Cassandra)的问题。您可以找到有关典型 Cassandra 使用案例的更多信息 here确保您做出了正确的选择。

关于java - 当有大约 100 万条记录时,如何在 Java 中比较 Hive 和 Cassandra 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44320101/

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