阿里搜推:JSONB列式存储实战:降本增效与大数据分析

版权申诉
0 下载量 70 浏览量 更新于2024-06-26 收藏 3.88MB PPTX 举报
阿里搜推实验基于JSONB列式存储的降本提效实践是一份深度探讨在大规模搜索推荐系统中采用JSONB(JSON Binary)列式存储技术的具体案例。JSONB是一种对JSON数据进行列式存储的变种,它允许更有效地处理包含嵌套结构的数据,如文档型数据库中的对象。在这个实践项目中,阿里搜推面对的是典型的搜索推荐业务挑战,包括海量数据(每日PB级)、高并发的实时分析(RPS高达6500万)以及灵活多样的查询需求。 首先,搜索推荐系统背后的AI技术与大数据计算密切相关,AI通过智能计算处理大量数据,两者相互依赖。数据的特点包括数十亿行的用户行为数据,如30亿行用户行为商品维表和商家维表等,这些数据需存储在Hologres这样的统一数据服务中。Hologres支持快速的数据采集、处理和查询,提供实时明细和轻度汇总的功能。 在实时数仓架构设计上,采用了DataX进行数据传输,确保高效的数据同步。其中,一个关键表`wireless_pv`的示例展示了如何利用JSONB列式存储来优化性能。原始表定义了`bts_tags`为`text[]`类型,但在优化时改为了`bts_tagsJSONB`,并开启JSONB列式存储。这样做有以下几个优势: 1. **性能提升**:JSONB列式存储能减少全表扫描,提高查询效率,特别是对于含有复杂嵌套结构的`bts_tags`,列式存储可以针对特定字段进行索引,加速查询速度。 2. **空间效率**:JSONB通常比文本数组更节省存储空间,因为它会压缩存储重复的嵌套结构,这对于处理大规模数据尤为重要。 3. **灵活性增强**:由于JSONB支持动态属性,可以方便地处理非固定条件的多维查询,满足多样化的分析需求,比如数组操作中的`array_extract`和`&&`操作符在这里的应用。 4. **A/B测试和聚合**:在进行A/B测试时,使用JSONB列式存储可以轻松地按指定键(Key)进行流式处理和批处理一体,提高实验分析的准确性和实时性。 总结来说,阿里搜推在面临高数据量、高并发和数据灵活性需求的挑战时,通过引入JSONB列式存储,显著提升了系统的性能和成本效益,为大规模搜索推荐业务提供了强大的数据存储和分析解决方案。这是一次成功的实践,值得其他面临类似问题的公司参考和借鉴。