Nemo:Facebook 的数据发现


Facebook 写了关于其数据发现引擎 Nemo 的文章。Nemo 有两个主要组件,索引和服务,前端位于服务部分的顶部。索引又分为每天发生的批量索引和立即更新索引的即时索引。对于 Serving,Nemo 对采用基于 spaCy 的 NLP 库特别感兴趣,该库执行文本解析和 ML 方法进行后处理。

大型公司为数百万甚至数十亿人提供服务,这些人依赖这些公司提供的服务来满足他们的日常需求。为了保持这些服务运行并提供有意义的体验,它们背后的团队需要快速找到最相关和最准确的信息,以便他们能够做出明智的决策并采取行动。出于多种原因,找到正确的信息可能很困难。问题可能在于发现——相关表的名称可能晦涩难懂,或者不同的团队可能构建了重叠的数据集。或者,问题可能是信心问题——某人正在查看的仪表板可能在六个月前被另一个来源取代。 

许多公司,如AirbnbLyftNetflixUber,已经为这一挑战构建了自己的定制解决方案。对我们来说,让数据发现过程简单而快速是很重要的。每次我们需要做出决定时,通过数据专家汇集一切以定位必要的数据是不可扩展的。所以我们构建了 Nemo,一个内部数据发现引擎。Nemo 使工程师能够快速发现他们需要的信息,并对结果的准确性充满信心。 
我们有十几种不同类型的数据工件,包括存储原始数据的Hive 表Scuba表、仪表板、AI 数据集和Cubrick。在 Nemo 之前,内部调查表明,找到正确的数据是数据工程师的主要痛点。Nemo 显着改善了这一点,将数据搜索成功率提高了 50% 以上,即使工件总数增加了两倍多,每秒查询次数 (QPS) 增加了一倍多。