汤森路透 Thomson Reuters --使用多模型数据库ArangoDB 打造快速安全的简单视图分析

技术不断改变企业。咱们汤森路透(Thomson Reuters)一直致力于利用技术,使咱们在业务过程当中收集的信息更具相关性和更个性化,同时更快地向咱们的客户和员工交付信息。经过使用共享平台并在咱们的业务部门工做,咱们但愿使咱们的数据更易于访问和深刻咱们的人员,不管经过哪一种渠道。sql

为了促进这种方法,咱们但愿建立一个复杂的业务分析和智能(BA / BI)平台,为全部汤森路透员工提供一切视图。这是一个至关大的挑战,由于咱们必须将包含半相关数据的许多不一样数据源集成到不一样的结构中,以知足多个部门和角色的各类需求。数据库

选择正确的数据存储

对于数据访问和管理,很显然,咱们须要一个快速,无模式的数据存储来处理咱们的BA / BI应用程序中愈来愈多的非结构化数据。咱们的应用程序使用了二十多个数据源,提供了各类信息。这须要一个强大的查询语言,可以表达咱们员工想要快速回答的普遍问题。

一个关键的要求是支持即席链接,以及图遍历,为应用程序的不一样部分使用正确的数据访问策略,并可以提出更多的问题。咱们的选择是开源代码解决方案,以及一个积极响应的社区安全

为何咱们选择了ArangoDB ?

首先,ArangoDB是一个真正的开源项目,具备开发者友好的Apache 2 许可证。另外,其背后的团队很是友好且透明。通过至关短的调整阶段,咱们便开始沉迷于ArangoDB查询语言(AQL)。对咱们来讲,用AQL 编写查询很是直观,咱们能够利用各类各样的函数和数据访问模式。 AQL 更使人称赞的方面是它使用嵌套的FOR循环来组合查询。所以,使用AQL 编写代码和写入查询之间的转换很是顺畅。他们的”多模型“ 方案以及在AQL 本地链接和图表遍历的可能性也很是好, 由于有时在相同的查询中结合链接和遍历是很方便的。框架

另外一个重要的是ArangoDB 的微服务框架Foxx。咱们使用Foxx 至关频繁; 咱们已经为咱们的应用程序建立了二十多个Foxx 服务。坦率地说, Foxx 入门有点难:文档能够进一步改进,更多的示例或最佳实践都会有很大的帮助。不过,目前ArangoDB 团队和社区支持已经缓解了这一缺陷。他们很是专业,也很积极回应。这是咱们决定使用ArangoDB 数据库的缘由之一。函数

目前,咱们在ArangoDB中存储了270GB以上的数据(转储到408GB的磁盘)。随着数据量的稳步增加,咱们很快将转向三节点集群,主要是为了提升可用性(参见下图)。微服务

咱们当前单节点设置的设置是24个vCPU和512GB的RAM。对于集群设置,咱们计划为主设备使用相同的机器。
咱们的应用程序自己是读/写密集型的,在高峰期每秒至少有三次写入和每秒两千次更新。咱们体系结构中的队列有助于阴影写入,甚至能够加载ArangoDB。读数通常稳定, 咱们预计不会出现大规模的高峰。性能

咱们从ArangoDB 中得到了什么 ?

首先,咱们了解到,在查询中结合不一样的数据模型其实是可能的,有时也是很是有用的。查询运行速度很是快,AQL 很是直观,即便咱们的产品负责人和业务分析师如今也在写至关容易的超过二百行的庞大查询。有时候他们不得不问哪一个索引应该被使用,可是大多数查询的性能均可以接受,并且不须要额外的工做。测试

Foxx 框架帮助咱们大大减小了咱们的开发时间。正如咱们将与许多REST 服务集成同样,咱们过去为集成测试编写了大量的模拟器。如今REST 服务能够随即由 Foxx 得出。咱们还能够定义本身的路由,这样运行的数据没必要发送给客户,相反,它能够在数据库中进行处理,以后只将结果发送给客户。经过这种方法,咱们能够减小不少麻烦,并在须要时提升安全性。对于咱们来讲,Foxx与ArangoDB 提供了极大的帮助,使用经验也很是棒。优化

总的来讲,咱们如今能够将得所需的全部数据 --保证,报告,移动,API门户-- 在一个地方得到,从而提供快速和安全的访问。 AQL的灵活性,以及​​不一样数据模型的组合,能够轻松地得到所需的查询运行和优化。因为Foxx和AQL,咱们轻松地扩展了应用程序的功能。这样咱们能够将更多的时间花在实际的应用程序开发上,并更迅速地得到所需的结果答案。毕竟,咱们被称为“答案公司”。spa

关键特征的重要性

致谢 Tanvir Mansuri 的原创使用案例

相关文章
相关标签/搜索