【问题标题】:Parquet VS DatabaseParquet VS 数据库
【发布时间】:2017-11-05 21:37:35
【问题描述】:

我试图了解以下两个中的哪一个是更好的选择,尤其是在 Spark 环境中:

  1. 将 parquet 文件直接加载到数据框中并访问数据(1TB 数据表)
  2. 使用任何数据库来存储和访问数据。

我正在研究数据管道设计,并试图了解以上两个选项中的哪一个会产生更优化的解决方案。

【问题讨论】:

  • 您有 1TB 的内存来使用 Spark 存储数据吗?
  • 1TB 是我正在处理的数据的总大小。
  • Spark 更喜欢内存中可用的所有内容。该数据是压缩的还是原始的?镶木地板还是纯文本?你甚至在比较什么数据库?您针对什么用例进行优化?
  • 数据为 Parquet 格式。对于数据库,我正在考虑使用 Amazon Aurora/Hive(HDFS 基础)
  • 您打算如何加载这 1 TB 的数据?它目前在 HDFS 中吗?值得指出 - Hive 不是数据库,真的。它是对 HDFS 文件的 SQL 框架抽象

标签: apache-spark parquet


【解决方案1】:

与通过 JDBC 连接器读取 Oracle 等 RDBMS 相比,将 parquet 文件直接加载到数据帧中并访问数据更具可扩展性。我处理的数据超过 10TB,但我更喜欢 ORC 格式以获得更好的性能。我建议您必须直接从文件中读取数据,原因是数据局部性 - 如果您在 HDFS 数据节点所在的同一主机上运行 Spark 执行程序,并且可以有效地将数据读入内存而无需网络开销。请参阅https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-data-locality.html 和 Apache Spark 如何了解 HDFS 数据节点?了解更多详情。

【讨论】:

  • @cricket_007, @Sahil; : 感谢cmets。让我做一些小的 POC 来验证结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-29
  • 2019-07-30
  • 2020-08-15
  • 2021-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多