apache-spark – Spark Parquet“数据库”的设计

我每天都有100G文本文件,我希望创建一个可从Spark访问的高效“数据库”. “数据库”是指能够对数据执行快速查询(返回大约一年),并且每天增量添加数据,最好没有读锁定.

假设我想使用Spark SQL和镶木地板,那么实现这一目标的最佳方法是什么?

>放弃并发读/写并将新数据附加到现有的镶木地板文件中.
>为每天的数据创建一个新的镶木地板文件,并使用Spark可以加载多个镶木地板文件以允许我加载例如整整一年.这实际上给了我“并发性”.
>别的什么?

请随意提出其他选择,但我们假设我现在正在使用实木复合地板,因为从我所看到的这将对许多其他人有所帮助.

最佳答案 我的0级设计

>按日期/时间使用partitioning(如果您的查询基于日期/时间以避免扫描所有数据)
>如果需要,请使用Append SaveMode
>运行SparkSQL distributed SQL engine以便

>您可以从多个客户端/应用程序/用户查询数据
>在所有客户端/应用程序/用户中仅缓存一次数据

>如果您可以存储所有Parquet文件,请仅使用HDFS

点赞