过滤器之前解析:更快的分析与稀疏的原始数据
文摘
探索大数据应用程序通常运行在生非结构化或半结构化的数据格式,比如JSON文件或文本日志。这些应用程序可以花80 - 90%的执行时间解析数据。在本文中,我们提出一个新方法减少开销:应用过滤器在数据的原始bytestream解析。这种技术,我们称之为原始过滤,利用现代硬件的特性和高选择性的查询中发现许多探索性的应用程序。生过滤,用户指定的查询谓词被编译成一组称为原始过滤器过滤原语(RFs)。RFs快,SIMD-based运营商偶尔产生假阳性,但从不假阴性。我们结合多个RFs成一个射频级联减少假阳性率和解析吞吐量最大化。因为最好的射频级联是datadependent,我们提出一个动态优化器选择RFs最好的预期吞吐量的结合,实现在全球10%的最优级联而增加不到1.2%的开销。我们实现这些技术在系统称为稀疏的,自动管理一个解析的级联给定一个数据流支持的格式(例如,JSON、Avro拼花)和一个用户查询。我们表明,许多真实世界的应用程序是高度选择性和受益于稀疏的。 Across diverse workloads, Sparser accelerates state-of-the-art parsers such as Mison by up to 22× and improves end-to-end application performance by up to 9×.