T + Conf 2019:Aeroflot的Tarantool或即时MDM



今天,我们与T + Conf 2019“ Aeroflot中的Tarantool或MDM(主数据管理)即时发布”一起发布了Nikolai Shevtsov和Rustam Kildiev的报告的抄本从该报告中,您将学到:

  • 为什么需要MDM?
  • 为什么我需要实时?
  • 数据科学不仅仅是Jupyter笔记本。
  • Tarantool的优点。
  • 为什么Lua擅长销售。

信息技术积极帮助我们公司吸引客户。今天,我们正在积极介绍许多大数据项目。这些是营销项目,可帮助我们细分数据并与客户交流信息,进行社会研究,处理投诉和申诉等等。此外,正在实施一些项目,以帮助提高业务的盈利能力和盈利能力。例如,项目之一是分析机上可用行李,以便按时销售剩余行李,或预测飞机的单个零件和备件的故障,以进行及时维护。

我们正在呼叫处理平台中积极使用Tarantool,以及更多有关它的信息。

大数据对我们的主要价值在于分析数据的能力。我们正在尝试在一个信息字段中收集与Aeroflot有关的所有新信息源,以进行进一步处理。

Aeroflot的Nikolay Shevtsov。信息系统部项目经理。

人们通常如何买票?有一个关于旅行的想法,一个人在社交网络和论坛中与亲朋好友分享它,然后在该站点上购买票。信息来源很多,我们的任务是收集所有信息并进行分析,以了解乘客对服务和整个航空公司的态度。

我们的项目之一称为呼叫平台。我们从众多来源收集所有评论,上诉和投诉。 “平台”是我们在网站或移动应用程序中的单个收集窗口,通过该窗口我们可以接收用户的信息。我们还将收集与Aeroflot相关的社交媒体评论。

Aeroflot的许多部门都参与投诉和申诉的处理:在船上,离港区,进港区从事维修的员工等。大多数投诉(每天约2.5千)来自遇到任何问题的到达乘客。每个投诉都需要进行处理,分类,然后重定向到相应部门,以解决可以解决乘客问题的特定员工。可以将相同的投诉归为一组,以节省分析情况和做出决定的时间。

该项目的目的是优化应用程序的处理并减少处理时间。为此,有必要创建一个系统,该系统可在投诉时自动确定其主题,并将其发送给负责员工的相应部门。在处理投诉的过程中,系统必须找到客户的所有可用信息,包括其个人资料,计划的未来航班等。

在项目开始时,我们考虑了一些可以帮助我们解决此问题的工具,最终选择了Tarantool。事实证明,这是正确的选择:它使您能够满足SLA要求,并同时随着负载的增加而扩展。

实作


Aeroflot引入了一个处理投诉的平台。这是一个非结构化信息的存储库,在此基础上,可以对唯一的客户配置文件进行分析和综合。


根据请求收到的信息必须进行处理和系统化。申诉是指无法以原始格式存储的文本,因此整个文本均被矢量化。搜索一组命中,编译唯一单词和短语的映射,基于此映射,计算初始向量以转换所有后续命中。最初,我们的数据分析专家使用了经典工具-群集或本地笔记本电脑上的Python和Jupyter Notebook。向量具有动态大小,这会造成困难。

与许多其他工具不同,Tarantool是一个完整的应用程序服务器。我们可以使用许多库,例如SciLua,以常规编程语言编写逻辑等。现在,我们可以直接在Tarantool中使用SicLua库实时矢量化数据。然后,使用余弦距离方法,系统在三个月的时间内搜索相似的向量。结果,我们收到了两次或类似的电话以进行进一步处理。在搜索过程中,执行了大量数学计算:在3个月内,从所有可用来源中处理了大约10万个呼叫。平均处理时间为120毫秒。

Innodata首席技术官Rustam Kildiev。

基础设施


我们的Tarantool数据库在具有大量RAM的四个16核服务器上运行。由于使用了Vshard模块,因此可以用蛮力实现快速搜索。数据分为多个部分-存储桶,从而使查询处理并行化。该系统易于扩展,只需添加服务器即可。尽管大多数DBMS现在都已实现了主-主复制。另外,我们不需要添加模块,管理也没有问题。

如果从RAM进行计数,我们的数据量约为1 TB。在启动,调试和修复项目中的错误的阶段,出现了问题。几乎所有表都包含7-8个索引,因此1 TB的Tarantool数据库花费了我们20-40分钟,这是不可接受的。在启动过程中,系统将构建索引,如果将其删除,则加载会快得多。在这种情况下,热备份功能为我们提供了帮助。

计划


客户和我们(表演者)都喜欢Tarantool。我们考虑了其他基础,但最终我们选择了Tarantool。首先,我们需要一个非常快速的基础。其次,它将需要大量工作,编写逻辑等,因此成熟的Lua对我们来说是一个优势。第三,Tarantool立即写入磁盘,并且不拍摄快照,这对我们也有好处,因为尽管有很多客户打来电话,但我们却输不起一次。

Tarantool已经证明了其在生产中的有用性,我们将向其中加载更多数据,添加业务逻辑。与其他数据库不同,它不需要不断地进行调整和更改。顺便说一下,数据的转换和从另一个系统到Tarantool的加载是自动化的,并且每天执行一次。

将来,我们计划切换到Tarantool Enterprise,这将使我们能够方便地管理和配置多个Tarantool实例。该数据库中的专家仍然很少,并且对他们的需求正在不断增长。我们的资格有时还不够。在这种情况下,Tarantool开发人员内部聊天会有所帮助,您可以在其中寻求帮助。这不在任何其他系统中。

我们还计划升级到Tarantool2和SQL。劳动力市场上有很多SQL专家,因此过渡不会很困难。

发现


这个项目的主要问题是Lua。很少有开发人员知道它,但他们甚至不喜欢它。最初,我们使用另一种语言编写,但是由于大量请求,系统运行缓慢。因此,我们使用Lua复制了所有内容很长时间很痛苦,但是最终系统只有少量的更正和发布,系统才能清晰,快速地工作。Lua非常接近机器代码,是C家族中最快的语言之一。尽管它是一种小型脚本语言,但它具有所有必需的库,并且我们能够传输搜索,向量化,余弦距离等算法。

Tarantool具有很高的容错能力,开箱即用。我们进行了许多实验:关闭Tarantool,提升等。-一切正常,并且中间数据已写入磁盘,因此我们不会丢失数据。

All Articles