我正在寻找使用Spark SQL查询静态数据源(hdfs)的最优化方式。
查询是简单选择,带有偶尔的过滤器(无联接),但我想在几秒钟内显示结果。
我听说布隆过滤器在这种情况下可能有用,或者结构化流也可能有用。
任何方法或建议
答案 0 :(得分:0)
您是否考虑改用PrestoDB?从上面的细节来看,听起来更适合设置Preso,提供对Presto UI的访问以及对数据运行查询,而不是通过Spark应用程序实施任意SQL处理。
答案 1 :(得分:0)
100 TB确实排除了内存解决方案。 关于您关于SparkStreming的问题;流处理框架(在这种意义上,火花流不是一种经典的方法,因为它具有微批处理功能)不适合您描述的用例。
通过流式传输,您的查询(或您的情况下的过滤器)可以站立,编译并可以使用,而数据流则不断地通过它们进行处理,从而处理数据。
根据您的查询; select
查询是否可以在任意列上运行,或者它是预定义的?