搜索
旅遊和交通运輸

Grab: 借助 Elastic Cloud Enterprise,支持独特旅程搜索功能

概览

  • 3亿
    次的每日查询
  • 10亿
    多次行程
  • 7700万
    名客户

灵活可靠的创新工具

Elasticsearch 是支持 Grab 数据库运行的核心技术之一,不但能够提供快速准确的位置搜索功能,还具备支持新服务所需的灵活性。

完整操控,更轻松的管理过程

迁移至 Elastic Cloud Enterprise 之后,Grab 能够更好地控制其 Elastic Stack 资产,从而有可能在数分钟之内完成新集群的设置,而不用像以前需要耗时数周。

资源利用率得以优化

迁移至 Elastic Cloud Enterprise 后,Grab 能够轻松地进行管理,从而节约更多系统资源,减少系统管理员人数。

专家服务直通车

Grab 能够直接连线 Elastic 专家,由于这些专家能够快速回答艰深问题并解决面临的难题,Grab 无需再将难题升级至内部数据库管理团队寻求支持。

公司概览

Grab 由几名好友于 2012 年创立于马来西亚,公司成立的初衷是让人们能够更加轻松、更加安全地出行。该公司的业务目前已遍及该地区的八个国家,其宏大愿景是让东南亚的每个人都能够安全、舒适、轻松地出行。为了实现这一目标,Grab 创建了一个面向所有人的平台,无论其收入、年龄或需求如何。作为东南亚最深受信赖的品牌之一,Grab 正在建设该地区规模最大的消费者互联网平台和电子钱包,以便此地区的新兴消费者可以享受金融包容性。

支持独特旅程搜索功能

Grab 致力于完成一项重大使命“让人们轻松出行,给东南亚地区的人们提供更多出行选择”,因为 Grab 相信“出行是一项权利,而不是一项特权”。这是东南亚规模最大的网约车公司,该地区的人口数量为 6.2 亿,而此公司每天就为超过 350 万人提供出行服务。每次行程的背后,都离不开 Elasticsearch,因为乘客正是通过 Elasticsearch 快速准确地定位其位置和目的地。为了向用户提供更佳的服务,Grab 迁移至 Elastic Cloud Enterprise,从而改善了整体表现并拥有相关技术和支持来助力发展更广泛的产品系列。

支持位置搜索、日志记录和崭新功能

Grab 采用 Elastic 的历程

当乘客打开叫车应用并确定自己的当前位置和希望前往的目的地时,网约车体验就开始了。Grab 过去通过一款开源关系型数据库来实现这一关键性的位置(又称“兴趣点”)搜索功能,但是公司内只有一名数据库管理员熟悉此数据库。这一解决方案面临的难题就是,除了该人之外,其他人都不知道如何管理这一软件,所以当这名数据库管理员离职之后,Grab 需要作出一项重大决策:再聘用一名新专家,还是另行寻找新的解决方案。

Grab 的数据工程和数据库运行主管 Edwin Law 表示:“我们需要的兴趣点搜索解决方案需要满足两个条件:一是应用更加普遍,二是管理员和开发人员能够理解。Elasticsearch 是针对这一特定用例最为热门的解决方案,是我们的理想之选。”

Grab 于 2013 年改用 Elasticsearch,目前该公司用其来对数百万个位置建立索引并进行搜索。对于每个兴趣点,都有一个包括经纬度、GPS 坐标和精确位置的文件。Elasticsearch 会对所有这些内容进行搜索,返回搜索结果,然后再根据 Grab 的自有算法对其进行评分,进而快速准确地对乘客的位置和目的地进行定位。

就在 Grab 采用 Elasticsearch 进行兴趣点搜索的同一年,还改用 Elastic Stack 进行日志记录。Grab 开始使用 Elasticsearch、Logstash 和 Kibana 来储存和分析与位置搜索相关的日志,并且最近也开始用其来储存和分析审计日志。

“如果我们的服务出现问题,我们能够追溯并查看日志,了解到底发生了什么事情。故障排查过程变得极为轻松,也更加快捷。"

– Edwin Law, 数据工程和数据库运行主管,Grab

随着 Grab 业务的增长,Elasticsearch 的使用也实现了进一步发展。例如,针对该公司在印度尼西亚的送餐服务,其现在支持菜单文本搜索。该公司也正在评估通过此种方式来改善客服部门搜索能力的可行性。当前,在搜索客户详情和其他信息时,客服代表需要在关系型数据库内使用繁琐的搜索功能,而且还面临着诸多限制。通过使用更加自然的文本搜索功能,Elasticsearch 可以帮助他们更加快速地找到所需内容。其还能允许客服代表在单一文本框内进行搜索,目前客服代表必须同时使用多个栏位进行搜索。

从开源软件转至 Elastic Cloud Enterprise

随着 Grab 业务的扩张,其当然需要增加新的基础设施来确保服务性能。然后,长远来看,这一战略并不具有可行性。“我们之前不能主动对集群进行管理,而且不能实现线性的扩展性能,”Law 说道。“我们想采取更加主动的方式来管理集群并优化工作负载。”

Grab 深入研究了部署 Elasticsearch 的多种方式,并且过去曾使用第三方托管 Elasticsearch 服务。然而,该公司需要更佳的管理工具,希望通过其 Elasticsearch 集群实现更为卓越的性能。Elasticsearch 能够提供高品质的支持,这也是 Grab 希望达成的一项目标。

在寻求备选托管服务和技术支持时,Grab 针对 Elastic Cloud设定了概念验证流程,让性能和功能的提升立竿见影。就在 Grab 正准备改用 Elastic Cloud 的时候,我们推出了 Elastic Cloud Enterprise 。由于此方案的面世,Grab 选择了自我管理型 ECE 解决方案,而没有选择外部托管型 Elastic Cloud 方案。

“虽然我们对 Elastic Cloud 十分满意,但是 ECE 也能实现同样的功能,而且其还能允许我们对整套服务器和底层软件拥有完整的管理控制权限。正是这一点促使我们选择了 ECE。”

– Edwin Law, 数据工程和数据库运行主管,Grab

Grab 现已将其 Elasticsearch 工作负载 100% 迁移到 Elastic Cloud Enterprise。这一转型能够让 Grab 更好地了解其集群,也简化了资源和角色的预置过程。数据库管理员如今仅需数分钟即可完成新集群的设置,而在之前这一过程需要数天甚至数周才能完成。由于具有所有这些优势,数据库管理员现在拥有更多时间和工程师一起协作来优化工作负载,并帮助工程师研发新产品。

作为 ECE 白金订阅服务的一部分,Elastic 与 Grab 开展直接合作,确保实施过程顺利无阻。这一直接支持带来了回报,因为 Elastic 的支持工程师发现了相关机遇来改善 Grab 的兴趣点搜索工作负载。最终,该公司能够将集群负载降低达 70%。

Elasticsearch 如今是支持 Grab 数据库运行的四大核心技术之一。Law 表示:“Elasticsearch 不仅十分灵活可靠,而且我们还能从 Elastic 和 Elastic 社区获得卓越的支持和专业知识,所以对于需要融入文本搜索或整理 JSON 文档的任何用例而言,其可谓完美之选。”

Grab 的集群

  • 集群数量
    10
  • 每日消化速率
    5000 万份文档
  • 节点数量
    50
  • 查询速率
    ~3000次/秒
  • 托管环境
    在 AWS 上部署的 Elastic Cloud Enterprise
  • 副本数量
    1
  • 文件数量
    100 亿份
  • ECE 主机规格
    M4.16XL - 10 个主机(256GB/主机)