流行的开源-第一部分:3种处理数据的工具

我们决定准备一系列摘要,并回顾最受欢迎的开源项目。 该列表包括Hacker News中讨论最多的开源解决方案。 第一个集合的主题是用于处理日志和数据库的工具和服务


/图片AKT.UZ PD

我们将讨论诸如FoundationDBLogDeviceQueryparser的解决方案。 去年,他们在Hacker News上进行了积极讨论。 引起这种兴趣的原因是,大型IT公司-Apple,Uber和Facebook参与了他们的开发。 这意味着所有这三个工具都适合与大规模,高负载的IT基础架构一起使用。


基础数据库



FoundationDB是NoSQL类型的多模型DBMS。 它是由Visual Sciences的三名工程师在2012年推出的, 他们曾在数据可视化平台上工作(今天它已成为Adobe Analytics的一部分)。

与其他类似系统不同,FoundationDB中的操作符合ACID的原则:原子性,一致性,隔离性和数据持久性。 遵守该模型的DBMS被认为是最可靠和可预测的,但是在NoSQL中,通常为了更好的性能而牺牲了一些ACID原则。

FoundationDB的另一个优点是其强大的底层接口。 有了它的帮助,任何系统都可以使用DBMS进行分布式数据存储。 例如,基于FoundationDB,您可以为大型通用DBMS构建前端。

由于这些特性,FoundationDB迅速流行起来。 它多个云服务实现:Wavefront监视服务(现在是VMware的一部分)以及Snowflake和SkuVault存储系统。 自创建以来,该项目的源代码一直是开放的,这也影响了FoundationDB的普及。

苹果公司在2015年收购该公司后,一切都发生了变化。 这家IT巨头已经关闭了对FoundationDB代码的访问,并开始在其自己的在线服务中使用DBMS。 该解决方案给在项目中使用 FoundationDB的开发人员带来了一些问题。 但是在2018年4月,苹果决定退还开源DBMS。 这不仅使IT社区受益,也使Apple自身受益。 在两周内超过7,000名开发人员对该项目表现出兴趣 ,并在主题论坛上开设了一百个新线程。

这家IT巨头已决定继续坚持“开放”战略。 在2018年11月, 引入了一个新的DBMS组件-文档层-它允许您创建文档存储库。 将来,计划开发其他工具。 任何人都可以为产品的创建做出贡献。 您可以在GitHub上的官方存储库中了解如何执行此操作-有详细的说明


日志设备



LogDevice是在Facebook上创建的分布式日志存储系统。 它经过优化,可按顺序记录传入的数据:系统中的任何信息都不会保存为单独的文件,而是保存为某些“记录流”的一部分。 这使您可以准确确定接收数据的顺序。

最初,该项目用于Facebook的内部任务,但在2018年9月,该公司开放了其源代码。 直到那时,LogDevice在IT界还不是很知名,但是一些Hacker News读者已经对该工具感兴趣。 例如, 注意到其在机器学习存储系统中的潜力。

但是,有一种观点认为,Facebook解决方案将逐渐普及。 市场上有大量类似的工具(例如,Apache Kafka)。 而且它们已经有大量的集成,而LogDevice只需获取它们。 顺便说一下,现在该工具的开发人员正在努力实现LogDevice与Kubernetes容器编排系统的集成。

邀请所有人参加-代码要求在GitHub上的单独存储库文档中进行了描述。


/图片Alexander Day CC BY


查询解析器



Queryparser是用于三种SQL方言的解析系统:Vertica,Hive和Presto。 像LogDevice一样,Queryparser最初是为一家大型IT公司的内部任务创建的-这次该项目起源于Uber。

2015年,该公司的工程师决定更新数据库中的对象命名系统,并根据UUID标准用数字替换整数格式的名称。 要重写所有标识符,工程师必须识别表中的所有链接。 事实证明,这是一项艰巨的任务:数以万计的表,属于公司不同部门的数据存储在Uber中。 为了在多个数据库之间建立连接,开发人员创建了Queryparser。

该工具成功完成了任务,但是工程师发现了其他可能的应用程序。 例如,自动监视数据库中的更改。 Queryparser保存有关合并数据流或创建新数据流的所有查询,并通知受这些更改影响的数据库用户。

Queryparser还帮助Uber收集有关SQL查询的统计信息并优化存储:删除很少使用的表,并合并经常相互引用的数据库。

Queryparser的源代码从项目一开始就是开放的,但是直到2018年,Uber才发布了有关该工具详细文章。 它可以被视为使用系统的指南。 并且在存储库中,您可以找到安装说明以及那些想参与Queryparser开发的人员的说明。

将来,Uber 计划进一步开发该解决方案。 例如,添加对新的SQL方言的支持:PostgreSQL,MySQL和SQLite。 该公司的任务之一还包括在查询中添加数据类型检查,并将查询从一种方言转换为另一种方言。



下次我们继续讲述2018年流行的开源项目的故事。 让我们谈谈开源云管理解决方案和开发人员工具。



第一公司IaaS博客的几篇文章:


我们在电报频道中写的内容:

Source: https://habr.com/ru/post/zh-CN436962/


All Articles