随着Spark的广泛应用,在数据仓库中用Spark SQL进行批量查询已经较为常见。尽管Spark SQL已经能支持对丰富的数据源进行高效的数据处理,但对于秒级的查询需求,Spark SQL还有不足之处,而很多企业对此也有很大需求。我们基于Spark SQL开发的项目Spinach,正是为了满足秒级甚至更高要求的即席查询需求。 具体来说,Spinach以Fiber为基本单位提供了一套细粒度的分层缓存机制,将数据缓存在堆外内存中,可以有效加速数据的加载。同时,Spinach拓展了Spark SQL的DDL,允许用户自定义索引,目前支持B+树索引和布隆过滤器,可以让用户根据数据特点定义高效的索引,进一步减少IO操作,提升查询效率。Spinach运行时与Spark SQL共享同一个进程,不会引入额外的维护成本。2016年,Intel与百度合作的Spinach平台首个版本在百度内部开放使用,帮助多个核心产品团队从过去低效的批量作业查询方式升级至即席查询模式。在百度的凤巢广告系统中,数据工程师基于每日数T的点击、展现日志进行广告效果分析,Spinach将查询性能提升至原生Spark SQL的5倍,尤其在复杂查询及大数据量分析的场景下将平均延迟从分钟级降低至秒级,同时仅增加3%的索引数据消耗。
浏览1786次
浏览1559次
浏览5478次
浏览10935次
浏览4280次
浏览7028次
2025-09-04 广州
2025-09-12 上海
2025-07-09 南京
2025-08-22 深圳
打开微信扫一扫,分享到朋友圈
Text