vlambda博客
学习文章列表

Ticketek将MongoDB Atlas与谷歌云相结合, 助力分析应用


Ticketek平台每年售出3,000万张门票,拥有 1,600万粉丝客户群, 每天要生成海量的数据。根据40年的行业经验,Ticketek熟稔地处理这些数据,并根据数据提取有意义的业务洞察,实现这些的工具正是MongoDB的生态系统。他们是怎样做的呢?


以下是我们与Ticktek企业架构师 Tane Oakes的共同探讨内容 :他们是如何处理实时数据, 经历了怎样的决策过程,并展示什么样的拓展新市场和开发新业务的能力。



Q & A

能描述一下你们的票务平台使用MongoDB的情况吗?

Ticketek亲身见证了很多活动的巅峰时刻。我们与世界上一些最大的和最具标志性的场馆合作(例如,墨尔本板球馆),同时还与澳大利亚和新西兰境内的顶级活动承办方合作,这意味着,在较短时间内,需要应对大型活动和巨大的票务销售量所带来的挑战。


当我们第一次去了解MongoDB时,我们需要一种技术栈,能够支持30分钟出售30万张门票。我们选择MongoDB作为栈中的事务数据库,是基于两个主要原因:速度和事务处理能力。

我们需要考虑将JSON作为数据格式时读取和写入MongoDB数据库的速度,它不仅要涵盖RESTful API微服务,涵盖事务数据库,还要考虑开发团队内部的技术熟悉程度。我们与MongoDB在悉尼的团队紧密合作,利用MongoDB理念的优势开发自己的应用。
在MongoDB之前你们用过哪些数据库?考虑过其它选择吗?
我们过去使用关系型数据库和定制的Ticketek数据库引擎。 在搭建概念验证模型并确定如何按照Ticketek的需求进行系统交付时,我们曾考虑过市场上的所有关系型数据库,以及其它的一些NoSQL数据库,以支持几分钟内出售几十万张门票的业务需求。

我们向云端迁移的过程可以追溯到六年前。最初,我们引入MongoDB作为事务数据库,用于支持我们的电子商务平台,并且自己管理这个数据库。 MongoDBAtlas 推出之后,作为我们更为广泛的、向无服务器战略的一部分,我们完成了向云端的迁移。

2018年,我们与谷歌合作,搭建了一个二手票务平台,名为 TicketekMarketplace 。Marketplace是一个安全的平台,粉丝们可以在这里安全地购票,以前从Ticketek买过票的客户也可以很方便地在这里列出他们待售的票。对我们来说,将Atlas用在Marketplace平台上是一件很自然的事,这个平台让人很放心,能够处理我们交给它的任何工作负载。
能介绍一下MongoDB的部署情况吗?

今天,Ticketek在MongoDB Atlas中有多个MongoDB集群,它们分布在亚马逊网络服务(AWS)和谷歌云平台(GCP)公有云的不同区域,并为整个Ticketek平台提供支撑。就Ticketek Marketplace平台而言,MongoDB Atlas中的专用MongoDB集群部署在谷歌云平台的悉尼区域,同时还部署了MongoDB高可用性最佳实践,利用MongoDB Stitch功能提供的Query Anywhere模块访问任何地点的数据库和集合。Query Anywhere允许我们通过前端应用代码直接请求存储在Atlas中的信息。我们的开发人员可以利用MongoDB数据库的所有功能特性和可扩展性,同时还能确保服务、数据和客户端之间的协同。

Ticketek将MongoDB Atlas与谷歌云相结合, 助力分析应用Ticketek MongoDB架构

为什么选择在谷歌云上搭建Ticketek Marketplace?
为Marketplace选择使用谷歌云平台的关键因素之一是: 谷歌的应用引擎服务吸引了我们,即使我们的业务量为零,它也能提供支持,这意味着,我们不用担心配置浪费或配置不足的问题。 从成本角度来看,这一点很有吸引力。 在举办重大活动时,它还可以支持我们轻松地进行扩展。
在向上扩展时,MongoDB是如何发挥作用的?

我们的票务平台一直在不断扩展,以满足娱乐活动的票务需求。我们决定为Marketplace选用MongoDB的原因在于它能够成功处理所需的工作负载,我们需要在不到30分钟的时间之内销售30万张门票,有时甚至要在15分钟内完成。我们的票务平台位于企业的核心位置,我们需要一个强大的数据库引擎,它必须具备高可用性以及快速读写能力。我们将MongoDB作为整个电子交易平台的事务数据库,目前已成功运行了六年,事实证明,它正是我们所需要的。


Ticketek将MongoDB Atlas与谷歌云相结合, 助力分析应用

Hugh Jackman:“男人、音乐和表演”——由Ticketek提供票务服务的活动之一

在MongoDB Atlas内部,你们是否对数据实施了可视化?

是的,我们将MongoDB Charts用于关键报表,因为它能跟踪Marketplace上的二手门票销售情况。我们将它用于一般由运营方处理的事务场合,例如,对门票挂在网上的时长以及活动举办情况进行可视化操作。我们还评估了将MongoDB Chart用于事务端报表处理的可能性。如有可能,我们希望将它迁移到我们完整的报表套件中。

你们希望将MongoDB与某些分析处理技术相集成吗?

目前,我们使用BigQuery在整个平台上开展数据分析工作。通过变化流和操作日志轮询应用,将从Atlas获取的数据放在BigQuery中,然后数据被推送给谷歌云的发布/订阅服务。利用从这些数据采集到的信息,并与我们的销售报表相结合,就能开展相应的数据分析工作。


实施这一战略的原因是:票务服务高度依赖实时数据。当然,也存在这样的场景,即我们可以通过分析过去的数据辨识出某种趋势,不过,在大多数情况下,我们关注的是获取实时数据。实时访问数据能够帮助我们制定关键的商业决策,例如,是否需要开放场馆的更多部分或安排更多演出。对我们来说,能够访问可靠的时间点数据非常重要,我怎样强调这种重要性都不过分。MongoDB与谷歌服务的集成为我们提供了必要的分析能力,这种能力对于实现个性化交流以及提供更好的数字优先的客户体验是必需的。

对于海量数据,你们是否尝试使用过Atlas数据湖?

Ticketek是TEG集团的一部分,TEG的经营范围更广,它在生活娱乐行业还有多家公司,涉及内容、营销和活动场地等领域。这导致客户数据和事务数据存在很多种不同形式。Atlas数据湖可以帮助我们整合数据,还可以使用MongoDB查询语言进行查询,我们目前正在对这一产品进行评估。


在处理不同形式的数据时,考虑使用数据湖是非常有意义的。它属于我们信任并且熟悉的技术基础,也就是说,我们不需要冒险进入未知领域。


如何看待MongoDB与你们的数据分析路线图相契合?

我们的数据分析愿景的核心是通过目标营销实现个性化服务。我们希望聚焦于个性化,将客户吸引到我们的网站上,并推动票务销售。我们的目标是在客户浏览我们的网站时,通过向其呈现更有相关性的内容,提供最合适的报价,以一种更智能的方式与客户接触。达到这个目标的重要一步是成功整合数据,从而提炼出更出色的洞察力。目前,我们想知道如何通过一种战略方法整合我们的数据,这样才能避免把自己逼到墙角而无法挣脱。


对于考虑将MongoDB用在后续项目上的公司,你们想为他们提供哪些建议?

我们确实非常喜爱MongoDB,因为它方便了数据的查询和使用,同时还保持了数据的一致性。为了充分发挥MongoDB的功能,你需要认真思考,如何才能使你的系统最好地利用这款数据库,以及应如何利用文档数据库的理念对这些系统进行设计和重构。



感谢Tane与MongoDB分享的故事。

 

Ticketek是一家澳大利亚活动票务公司。 该公司成立于1979年,由TEG Pty Ltd拥有,总部位于悉尼,在澳大利亚和新西兰经营娱乐和体育赛事的票务业务。


更多学习资源,请访问MongoDB官方网站www.mongodb.com/zh


MongoDB数据库



扫描关注,获取更多精彩内容