mongodb-as-a-service

2539 results

MongoDB助力腾讯游戏 优化游戏开发体验

客户简介 腾讯游戏提倡超级数字场景 连接数亿游戏玩家 作为“超级数字场景”理念的倡导者和实践者,腾讯游戏致力于为用户创造高品质数字生活体验,为产业和社会发展创造更多建设性的价值。 腾讯游戏为全球知名的游戏开发与服务运营商,在全球连接超过8亿的用户。在开放发展的模式下,腾讯游戏采取自主研发和多元化的外部合作相结合的方式,在网络游戏众多细分市场领域形成专业化布局,打造覆盖全品类的产品阵营,为全球网络游戏玩家提供休闲游戏平台、大型网游、中型休闲游戏、桌面游戏、对战平台五大类。另外,腾讯游戏与全球顶级游戏开发公司建立深度合作,将国外优质的前沿产品体验带到中国,也将中国的游戏带向世界。 2021年3月,腾讯游戏针对国际业务推出了在线游戏开发平台Level Infinite PGOS(Level Infinite Game Online Service)。Level Infinite PGOS是一种游戏在线服务解决方案,旨在降低游戏后端开发和维护的难度,同时降低成本,从而使开发者专注于游戏玩法与核心逻辑开发。 业务挑战 产品力主导游戏行业竞争 游戏出海面临多重挑战 全球游戏市场规模不断扩大,游戏产业已成为一种重要的文化产业。据市场调查机构 Newzoo 最新数据显示,2023年全球游戏市场规模预计将超过1877亿美元,同比增长2.6%。 游戏市场潜力巨大、前景看好,与此同时游戏开发竞争也变得异常激烈。游戏品类越来越多、玩法越来越多,给游戏开发带来更高要求:游戏设计和架构越来越复杂,游戏开发成本水涨船高,游戏复用性较低,新项目启动门槛更高等等。 尤其对于腾讯游戏海外业务来说,研发更需要具备全球发行、全球部署的能力,直接拉升了对于底层数据架构的要求,当中包括:需要提供多租户SaaS模式;能够物理隔离每个游戏大区,满足全球各个区域的隐私保护;以及可在全球各个地区进行分布式部署、自动扩容、缩容等。 解决方案 深度契合游戏业务场景 为了应对游戏行业的最新趋势和海外市场的挑战,腾讯游戏推出为海外游戏而设的Level Infinite PGOS通用平台。Level Infinite PGOS是一套多租户SaaS游戏后台解决方案,采用全球化分布式架构,在欧洲、北美、日韩、东南亚等游戏发行热点区域部署运行。 数据库是游戏软件的核心组件,游戏玩家的各种信息、运营数据、游戏场景数据等都需要借助数据库来保存。对于数据存储系统,Level Infinite PGOS根据自身场景进行了严格的测试选型,最终采用MongoDB作为核心存储组件,成为一整套覆盖游戏各个维度、各个生命周期的解决方案。 玩家数据存储 – 与传统游戏开发有所不同,使用MongoDB去存储玩家的基础数据,不会将MongoDB直接暴露给游戏去使用,开发者无需关心底层的数据细节,即可直接灵活定义数据,例如,不同游戏可定义不同数据模板。此外,MongoDB 支持多种数据类型和数据原子运算,易于实现幂等操作;而且基于MongoDB的分片可横向扩容,对于一些爆款游戏来说,这一点很重要,可以不用担心玩家规模的快速增加。 智能对局匹配 – 在很多游戏中,都需要在平台上匹配两名玩家去进行对局竞技。以腾讯游戏为例,如果是一款全球发行的游戏,就有可能在不同游戏大区匹配到两名玩家,这种匹配看似随意,但却需要后台具备强有力的数据处理能力。技术调度要同时满足不同区域的服务器集群,也就是满足不同场景需求下的服务器扩容。腾讯游戏底层通过MongoDB实现原子化操作,经过玩家各种属性的对比,找到一个距离各个玩家最近的服务器,并进行服务器分配,最终形成一个对局。 游戏内经济系统闭环 – 假设把游戏内的经济系统理解为一个特殊的交易场景,在处理游戏交易的过程中,涉及到订单、退款、跟踪回溯等多个环节,而通过MongoDB的原子化、事务性操作可以将整个交易流程一次性完成。虽然游戏内交易是虚拟的、复杂的,但采用MongoDB可以保证交易是规范的、完整的。 数据流能力 – 游戏开发者需要跟踪玩家各种行为事件,以便形成流水日志,同时要保证玩家的所有事件是可追溯、可查询的。MongoDB的数据库实例,可将这些流水日志存储起来,并基于灵活的文档结构,让开发者不论是在开发期间、还是游戏已经发行的期间,都可以快速检索玩家的所有事件流。 客户价值 优化开发体验 拉升运维能力 根据数据显示,2023年一季度,腾讯的游戏领域收入达到483亿元,而其中132亿元来自国际市场,占游戏整体收入的27%,可见腾讯在海外市场的巨大潜力和影响力。对腾讯游戏而言,全球化协作体系已然成型。在多元化布局和全球化视野之下,中国游戏既要在内容创新、玩法创新上学习更多,也要将支持大规模玩家在线的后台技术越做越强。 回顾与MongoDB的合作历程,腾讯海外游戏Level Infinite PGOS平台负责人谢磊谈到,无论在功能还是性能上,MongoDB都很好地契合了游戏业务场景,带给腾讯游戏的不只是功能价值,还有运维价值: 简单、易用的控制台 实现全面托管服务,即时自动扩缩容的专用服务器,为实时游戏提供低延迟和高可靠性。 丰富的可视化监控 提供实时可视化日志、监控面板,研发人员、管理人员可以实时监控业务运行状态。 一键升配、降配能力 在访问量突增时,一键自动扩容保障业务的正常运行;在流量低谷,一键自动缩容以节约成本。 多维告警能力 提供运行时间、状态异常等多维度告警能力,使问题可以在最短的时间内被捕捉并通知到用户。 客户证言 腾讯海外游戏Level Infinite PGOS平台负责人 谢磊: “游戏行业的发展越来越由产品力主导。Level Infinite PGOS平台最大的使命是要能够将更新、更现代化的开发模式与腾讯已有能力结合在一起,形成开发体验良好的平台,其中尤为重要的是需要符合海外开发人员开发习惯。正是在这样的背景之下,我们的底层技术选择使用MongoDB。可以说,MongoDB让腾讯游戏Level Infinite PGOS如虎添翼。”

November 29, 2023

How Canara HSBC Life Insurance Optimized Costs and Claims Processing with MongoDB

Since 2008, Canara HSBC Life Insurance has focused relentlessly on bringing a fresh perspective to an industry known more for stability and conservatism rather than innovation. Since its inception in 2008 as a joint venture between Canara Bank and HSBC Insurance, Canara HSBC Life Insurance has strived to differentiate itself from the competition through enhanced customer interactions, launching cutting-edge digital products, and integrating digital services that cater to the evolving needs of customers. For the past six years Chief Operating Officer, Mr. Sachin Dutta, has been on a mission to bring this customer-first mindset to the digital products and touchpoints his team creates. Speaking at MongoDB’s annual .local developer conference in Delhi, Dutta outlined Canara HSBC Life Insurance’s ongoing digital transformation journey, and how his team's focus on customer success and business efficiency led them to work with MongoDB for improved efficiencies and results. “I truly value the partnership we have with MongoDB. We are building a future-ready organization, and this partnership clearly helps us achieve our aim of reaching the last mile possible in customer servicing. Mr. Sachin Dutta, Chief Operating Officer, Canara HSBC Modernizing the architecture and driving developer efficiency Canara HSBC’s digital transformation was centered on three technical pillars: the cloud, analytics, and mobility. The company focused on creating a more integrated organization and automating manual processes within the system. “We try to remove human intervention with a life insurance policy delivered in seconds and claims that are settled virtually in seconds,” Dutta says. To get there, Canara HSBC Life Insurance had to move on from its existing architecture, which required multifaceted changes and several new implementations: Monolithic applications made alterations a time-consuming process A reliance on rigid relational databases prolonged development timelines, forcing developers to spend time wrangling data when they could be building better products for customers. The fully on-premises system had supported the organization in the past but required future-proofing to support growth and deliver a better customer experience. Because of this valuable development time and money were spent managing, patching, and scaling databases, rather than getting new products into the hands of customers. These technical issues impacted the speed of business, particularly during month-end and year-end data processing, when the volumes were high. In addition, batch processing stood in the way of creating the real-time availability of information customers wanted. Dutta and his senior team also realized that their existing infrastructure would make it more challenging to find the right talent in the market, as the existing infrastructure was increasingly becoming outdated. Dutta realized early on that, in order for Canara HSBC to attract and retain the best and brightest developers, the insurer had to offer the chance to work with the latest technologies. Platforms like MongoDB would be integral to this effort. “I want to create an organization that is attracting talent and where people start to enjoy their work, and that benefit then gets passed on to the customers, ” Mr. Dutta says. Looking to overhaul its existing infrastructure, Canara HSBC Life Insurance wanted to move fast and hire the talent required to best serve its end customers. Dutta summarized the situation succinctly: "We found that some of those relational structures that had worked for us would not take us through the next 10 years.” Migrating to a secure, fully managed database platform After evaluating the solutions on the market, the team decided to transition from their existing on-premises relational databases, like IBM DB2, MySQL, and Postgres, to MongoDB Atlas . In the last six years of my work, I’m pleased to say that MongoDB has seamlessly integrated all the processes in the backend. We migrated from a completely legacy-based setup to the new fully managed MongoDB service to enhance IT productivity Mr. Sachin Dutta The first stage of the journey was moving from monolithic applications and relational databases to a microservices architecture. With its flexible schema and capabilities for redundancy, automation, and scalability, MongoDB served as the best partner to help facilitate the transition. Next, the team moved to modernize key parts of the business, such as underwriting, freeing their data to power more automation in straight-through processing (STP) of policies and faster claims processing. The adoption of a hybrid cloud model shifted Canara HSBC Life Insurance away from on-premises databases to MongoDB Atlas. As a fully managed cloud database, MongoDB Atlas solves issues related to scalability, database management, and overall reliability. MongoDB Atlas is also cloud agnostic, giving the insurance company an option to work with Azure, AWS, and Google Cloud. Mongo Atlas’ BI Connector bridged the gap between MongoDB and traditional BI tools. This seamless integration allowed Canara HSBC Life Insurance to deploy its preferred reporting tools and, when coupled with MongoDB Atlas’ real-time analytics capability, made batch processing a thing of the past. Halving delivery times and driving business efficiencies Moving to MongoDB Atlas has had a profound impact on the breadth of digital experiences Canara HSBC Life Insurance can offer customers and the speed at which new products can be developed. Something that used to take months, with the implementation of our new tools could be completed in a couple of weeks or days Mr. Sachin Dutta And it’s not only the customer experience and product delivery that has benefited from the partnership. Canara HSBC Life Insurance has also realized substantial efficiency gains and savings as a result of working with MongoDB. We are leveraging artificial intelligence as a core capability to predict human behavior and auto-underwrite policies wherein around half of the policies issued today are issued by the system Mr. Sachin Dutta Highlighted results include: Straight-through processing (STP) surged from 37% to an impressive 60%. This is set to increase further with AI/ML integrations and rule suggestions. Policy issuance turnaround time improved by 60%. Efficiency in operations led to a 20% cost-saving per policy issuance. Canara HSBC experienced 2x top-line growth due to seamless integration with analytical tools. Looking ahead, Canara HSBC Life Insurance has already outlined three key areas where the MongoDB partnership will grow. First, Dutta wants to take advantage of MongoDB Atlas’ flexible document data model to collect and organize data on customers from across the business, making MongoDB Atlas the sole database at Canara HSBC Life Insurance and creating a true customer 360 data layer to power sophisticated data analytics. In financial services, this capability is referred to as know your customer (KYC). “We want to build a data layer that provides a unique experience to the customer after getting to know them,” he says. “That’ll help the company generate better NPS scores and retain customers.” Second, the adoption and integration of AI and machine learning tools also factor heavily into future plans. MongoDB Atlas, with its flexible schema, compatibility with various machine learning platforms, and AI-specific features — such as Vector Search and storage — is a good fit for the company. In Dutta's words, "We are going to scale up and capture the GenAI space.” Last, Dutta wants to take advantage of the MongoDB Atlas SQL interface, connectors, and drivers to augment business intelligence for reporting and precise SQL-based report conversions. Learn More about how MongoDB Works with global Insurers

November 29, 2023

A Year of Thrill: Celebrating the New MongoDB University

Staying ahead in the ever-evolving tech world is like being on a rollercoaster - it’s exciting but it can also make your head spin! When we set out to revamp MongoDB University , we wanted to provide developers with frictionless access to the learning content they needed to conquer their challenges. It’s been one year since the launch and we are over the moon about how far the new MongoDB University has come - a one-stop hub with fresh certifications and new content, all available online. But none of this would have been possible without the incredible support of our engaged learners who have embarked on this ride with us. Our commitment to delivering top-notch educational resources has been nothing short of award-winning, earning us the prestigious Silver Excellence Award from the Brandon Hall Group in the category of ‘Best Advance in Creating an Extended Enterprise Learning Program’. The success of the new University has also been featured at industry events, including Cognition and the Customer Education Management Association Conference. So, let’s buckle up and take a tour through the revamped MongoDB University! New content With over 1,000 learning assets, including videos, hands-on labs, code recaps, quizzes, and courses, there’s something for everyone. Plus, now we have you covered with language subtitles in Chinese (Traditional and Simplified), Korean, Spanish, Deutsch, Japanese, Italian, French, and Portuguese. The best part? All of the content is free, online, and you can take your time and learn at your own pace. Let’s explore three of our newest courses: Data Modeling for MongoDB: This course guides you through the foundational steps of creating an effective data model in MongoDB, including identifying entities and workloads, mapping and modeling relationships between entities, and using key schema design patterns. Atlas Essentials: In this course, you’ll gain the foundational knowledge and skills needed to use MongoDB Atlas, the multi-cloud developer data platform. MongoDB for SQL Professionals: This course will help you leverage your SQL skills to get started with MongoDB quickly. You can practice what you learn and gain valuable real-world skills with labs hosted in our in-browser development environment. The new experience allows you to explore hands-on exercises as part of our courses, or you can dive directly into a standalone lab . The labs include step-by-step instructions that guide you through each scenario and even provide hints along the way. And for those looking for nuggets of MongoDB wisdom, explore the catalog of over 30 Learning Bytes . These short videos cover a wide variety of topics and are designed to help you get the knowledge you need quickly. New certifications Our freshly revamped certifications are recognized by professional institutions and are your ticket to having your knowledge and skills formally validated and recognized by MongoDB. They are a great way to elevate yourself in your current role and increase your marketability for future roles. Certifications come with bragging rights, inclusion in the Credly Talent Directory, and a shiny Credly badge that makes it easy for you to share your achievement. So, let’s explore the two new certifications: MongoDB Associate Developer: Certify that you possess the essential skills to create beginner-level applications utilizing MongoDB as a backing database for Java, Python, C#, PHP, or Java applications. MongoDB Associate Database Administrator: Validate your MongoDB database administration skills by certifying your knowledge of building, supporting, and securing MongoDB infrastructure. And if you need a boost, once you complete one of the certification learning paths you will automatically unlock a 50% discount on a certification exam. Educators and students can check out the Academia program to learn how to receive a free exam. All aboard! This is just the beginning of the adventure and we are excited for what is yet to come. So, fasten your seatbelt, and let’s keep learning together! With over 1,000 learning assets, MongoDB University has what you need to pick up new skills and advance your career. Explore free courses, practice with hands-on labs, and earn MongoDB certifications.

November 28, 2023

深入理解用户需求,利用 AI 和 MongoDB 提升内容个性化

内容无处不在。 无论消费者寻找什么,也无论消费者所处任何行业,找到内容并不困难,关键在于如何找到对应的内容。而这就是 Concured 专注的领域。 Concured 是一家来自蒙特利尔的 AI 初创企业,致力于协助市场营销团队对标受众,有的放矢地打造网站和销售内容;同时,帮助内容营销团队脱颖而出,加速基于洞察驱动的内容个性化。 2015 年,首席执行官 Tom Salvat 创立 Concured,旨在助力内容营销机构更深入地理解受众需求,交付更具影响力的内容。 Built with MongoDB 栏目采访了公司成立约一年后加入公司的 首席技术官 Tom Wilson ,话题围绕 Concured 的人工智能使用情况、Wilson 加入 Concured 的过程以及公司未来的发展。 Built with MongoDB: Concured 是做什么的? Tom Wilson: Concured 是一家软件公司,以过去 5-10 年间发展的人工智能技术为基础,帮助市场营销机构了解如何撰写具体领域的宣发物料,发掘自身内容亮点,把握竞争对手以及行业宣发现状。进而打造个性化的客户网站使用体验,最大化内容投资收益比。 Concured 已成功推出一套内容推荐系统,能够为每位访问者提供针对性服务。这套系统注重用户隐私,不使用任何第三方 cookie 或用户监视技术,完全基于网站用户的操作,通过访问者的点击行为勾勒出其兴趣领域。随着用户的兴趣和目的逐渐清晰,这套系统会尝试推荐新的阅读内容,比如博文、产品介绍或其他类型的内容。 Built with MongoDB:您刚刚提到了人工智能,那么 Concured 是如何使用人工智能的呢? Wilson: 我们运用人工智能的场景有很多。有别于其他个性化系统,Concured 的卖点之一是不需要过长的整合期,也无需在日常管理中进行维护。实现的途径是借助 AI 机器人剖析客户网站的内容,发掘相关性,提取文本、标题和其他所有相关元数据,然后完成自动索引。 我们的系统利用先进的自然语言处理 (NLP) 技术,为每个文档生成语义元数据,在多维空间中与特定点相对应。另一方面是理解其中的关键实体,以及同一个网站中某一篇特定文章与其他文章之间的关系。我们利用 AI 支持的网络爬虫找到的所有内容都会自动附上海量元数据。 [图片] Built with MongoDB:AI 并不总是 100% 准确,您在 Concured 打造的 NLP 的准确度怎么样呢? Wilson: 以内容推荐系统而言,很难断定什么是最佳推荐,因为即便是同一个人,根据日期或网络操作的不同,推荐也会有所变化。例如一些知名的推荐系统,如 Netflix、Amazon 和 Spotify,总是在猜我们接下来想看什么,但却没有一个是对应的答案。 正因如此,绩效评价变得非常困难。所以,我们采取的方式是不提供 100% 对应的答案,而是通过改变算法,来看访问者是否会点击更多的文章,是否会进入网站运营商定义的目标页面,比如产品页面或注册表单。在网站访问人员中,最终执行该操作的人数比例越高,说明推荐系统越出色。我们可以对比客户在启用 Concured 个性化系统前后的网站成功率。截至目前,我们已经看到 2-3 倍的提升,算法一直在完善中。 Built with MongoDB:您是何时加入到 Concured 团队的? Wilson: 当时公司已经得到第一笔来自外部的巨额投资,条件之一是引入一位专业的首席技术官。这种情况在企业初创期比较常见,投资方想要介入企业架构,把控资金流向,减少鲁莽行事。所以,有些企业将其戏称为“家长式监督”。我不知道这算不算是我的角色。不过虽然当时团队已经很强大,但我还是从架构入手,从根上上确保我们能够实现后续的目标,以及更长期的战略规划和技术愿景。 Built with MongoDB:您的团队是如何选择 MongoDB 的? Wilson: 我加入时,团队已经在使用 MongoDB。加入后的几个月里,我们讨论过是否要换用结构化的数据库,并且必须制定出一项决议。所以我才参与其中,经过深思熟虑,决定继续使用 MongoDB。事实证明是一项完全正确的决议,有利于我们实现最初的愿景。同时,我们将弃用 Google Cloud Platform 上的社区版本,换用 MongoDB Atlas Serverless。令人欣喜的是,因为新平台无服务器,我们将不再需要管理各种机器,还能够使用 Atlas 上的文本搜索功能,顺便简化一下我们的技术堆栈。作为一家企业,就我们当下所处的位置以及未来五年的发展方向而言,MongoDB 始终是我们正确的选择。 Built with MongoDB: Concured 的未来是什么样的? Wilson: 就在我们交谈的过程中,未来已经被书写。此时此刻,越来越多和我们大客户有着相同需求的企业正在找到我们。这些企业那些有着海量、已存档的内容,需要继续从中盈利,继续发布更多内容。无论是否是大型企业,比如咨询或金融服务行业或传统的出版商,确定的一点是,以相应的 KPI 为基准,产出利益最大化的对应内容。 Built with MongoDB:您收到的最好反馈是什么? Wilson: 我的团队给我的一条正面反馈,是说我有担当。如果他们遇到问题,我会出手解决或者减少阻力,这样他们就可以全力以赴解决问题。这是我的人生观:如果你用心领导团队,事情就会自然顺利推进。 对于任何投资内容宣发的企业而言,最大化投资回报都是无可争议的商业诉求。

November 28, 2023

MongoDB性能系列最佳实践-分片

什么是MongoDB分片? 分片是一种将数据分布或分割到多台计算机上的方法。相较于单个计算机,分片技术允许您进行水平扩展,这在大型现代工作负载的场景下是非常有用的。 水平扩展,也称为横向扩展,是指添加计算机来共享数据集和负载。水平扩展允许进行接近无限的扩展,以处理大数据和强烈的工作负载。 通过分片实现横向扩展 通过分片,您可以自动将MongoDB数据库跨多个节点和区域进行扩展,以处理写入密集型工作负载、不断增长的数据大小以及数据存储要求。 使用MongoDB的分片,您可以在应用程序增长超出单个服务器的硬件限制时,在无需增加应用程序复杂性的情况下,无缝地扩展数据库。 为了响应不断变化的工作负载需求,可以在分片之间迁移文档,并随时向群集中添加或删除节点 - MongoDB将自动根据需要重新平衡数据,无需手动干预。 分片的好处 分片允许您将数据库扩展以处理几乎无限的负载增加。它通过增加读/写吞吐量和存储容量来实现这一点。具体来说: 增加的读/写吞吐量:通过将数据集分布到多个分片上,您可以利用并行处理来增加读/写的吞吐量。假设一个分片可以每秒处理一千次操作,每增加一个分片,您将多获得额外的一千次每秒的吞吐量。 增加的存储容量:同样地,通过增加分片的数量,您还可以增加总体的存储容量。假设一个分片可以容纳4TB的数据。每增加一个分片,您的总存储容量将增加4TB。这样可以实现接近无限的存储容量。 数据本地性:区域分片允许您轻松创建分布式数据库,以支持地理分布的应用程序,并通过强制数据在特定区域内驻留的策略来实现。每个区域可以有一个或多个分片。 MongoDB中的分片策略 大多数分布式数据库在处理数据分布时,是通过简单地对主键值进行散列,将数据随机分布在集群节点中。这在查询跨节点的数据时会带来性能损失,并且在需要将数据本地化到特定区域时会增加应用程序的复杂性。 MongoDB 可以提供多种分片策略,提供对于数据分布更好的方法。。数据可以根据查询模式或数据位置要求进行分布,从而在各种工作负载下实现更高的可扩展性: 范围分片。文档根据分片键值分区到分片上。分片键值彼此接近的文档可能位于同一个分片上。这种方法非常适用于需要优化基于范围的查询的应用程序,例如将特定区域所有客户的数据放置在特定分片上。 散列分片。文档根据分片键值的MD5散列进行分布。这种方法保证了写入在分片上的均匀分布,通常对于摄取时间序列和事件数据流是最优选择。 区域分片。提供了开发人员定义在分片群集中数据放置的特定规则的能力。 MongoDB Atlas中的全局群集 完全托管的云数据库服务MongoDB Atlas允许您使用可视化用户界面或Atlas API快速实现区域分片。您可以轻松创建分布式数据库以支持地理分布的应用程序,并通过强制在特定区域内存储数据的策略来实现数据存储。 使用阿里云MongoDB 分片集群为始终在线、全球分布式的写入应用程序提供服务 要确保充分发挥分片的优势,您需要遵循一系列最佳实践。 确保分片键的均匀分布 当读取和写入的分片键不均匀分布时,操作可能会受限于单个分片的容量。当分片键均匀分布时,没有单个分片会限制系统的容量。 避免散布-汇集查询用于运营工作负载 在分片系统中,不能基于分片键进行路由的查询必须广播到所有分片进行评估。由于这些查询涉及每个请求的多个分片,随着添加更多分片,这些查询不会呈线性扩展,并且需要额外的开销来合并来自多个分片的结果。您应该在查询中包含分片键,以避免散布-汇集查询。 这一规则的例外是大型聚合查询。在这些情况下,散布-汇集可以是一种有用的方法,因为它允许查询在所有分片上并行运行。 在适当的时候使用基于散列的分片 对于发出基于范围的查询的应用程序,基于范围的分片是有益的,因为操作可以路由到最少的分片,通常是一个分片。然而,基于范围的分片需要对数据和查询模式有很好的理解,在某些情况下可能不切实际。 基于散列的分片确保读取和写入的均匀分布,但不提供高效的基于范围的操作。 预分割和分发分片 在创建新的分片集合以加载数据时,首先做集合的预分片,并将它们均匀分布在所有分片上,然后再加载数据。对于基于散列的分片,您可以使用numInitialChunks来自动执行此操作。 下一步 以上就是MongoDB 性能最佳实践中关于分片的内容。接下来我们将介绍事务相关的实践。

November 28, 2023

性能系列最佳实践-数据建模

这个系列适用于谁? 虽然我们将要介绍的最佳实践并非面面俱到,但在本系列中会有一些建议对您很有用,无论您是: 刚开始您的第一个项目还是经验丰富的MongoDB开发人员。 在使用全托管云数据库MongoDB 服务,或自建MongoDB。 我们在本文中要涵盖什么内容? 我们将从两个关键考虑因素开始,这将为我们在接下来的博客系列中讨论的所有性能最佳实践奠定基础。首先,我们将讨论模式设计以及为您启动的关键资源,然后转向为您的应用程序中最常访问的数据和索引调整RAM大小。这就是我们所称的“工作集”。 数据建模至关重要 性能优化的第一步是了解应用程序的查询模式,从而设计数据模型并相应地选择适当的索引。根据应用程序的查询模式调整数据模型可以生成更高效的查询,增加插入和更新操作的吞吐量,并更有效地在分片集群中分配工作负载。 虽然MongoDB具有灵活的模式,但这并不意味着您可以忽视模式设计!虽然您随时可以修改模式,但在项目初期遵循模式设计的最佳实践将有助于避免未来的潜在重构工作。 JSON文档的一个主要优势是您可以根据应用程序的需要灵活地数据建模。数组和子文档的嵌套使得文档能够很好地表达数据之间的复杂关系。但您还可以将数据建模为平面、表格和列式结构,或者简单的键值对、文本、地理空间和时间序列数据,甚至是连接图数据结构的节点和边缘。最佳的模式设计将由您的应用程序查询模式来确定。 数据建模的关键考虑因素和资源 在设计数据模型时,您需要首先做出的决策之一是如何对数据之间的关系进行建模。决定何时在单个文档内嵌入一个文档,或者在不同集合中的单独文档之间创建引用,是一个应用程序特定的考虑。然而,在模式设计过程中,有一些通用的考虑因素可以指导这个决策。 嵌入 具有1:1关系的数据显然是单个文档内嵌入的明显和自然的选择。具有一对多关系的数据,其中“多”个对象始终与其父文档一起出现或在其上下文中查看,也最适合通过嵌入来处理。因为这些数据总是一起访问,将其一起存储在同一文档中是最优的。 由于数据的本地性,嵌入通常在读取操作方面提供更好的性能,因为可以通过单个内部数据库操作请求和检索相关数据,而不是查找存储在不同集合中的文档。嵌入数据模型还使得在单个原子写操作中更新相关数据成为可能,因为单个文档写入是事务性的。 然而,并不是所有的1:1和一对多关系都适合嵌入到单个文档中。在以下情况下应该在不同集合的文档之间使用引用: 经常读取一个文档,但包含的数据很少被访问。将这些数据嵌入只会增加集合的内存需求(工作集)。 文档的某个部分经常被更新,并且大小不断增长,而文档的其余部分相对静态。 组合文档大小会超过MongoDB的16MB文档限制,例如在建模多对一关系时,如产品评论与产品之间的关系。 引用 引用可以帮助解决上述提到的挑战,并且通常在建模多对多关系时使用。然而,应用程序需要发出后续查询来解析引用,需要额外的往返服务器通信,或者需要使用MongoDB的‘$lookup’聚合管道阶段执行“连接”操作。 深入挖掘 数据建模是一个广泛的主题,并且已经填补了以前的博客系列。为了帮助您做出正确的决策,以下是您应该审查的关键资源摘要: MongoDB文档提供了关于数据建模的广泛部分,从文档数据模型的高级概念开始,然后逐渐进展到实际示例和设计模式,包括有关引用和嵌入的更多详细信息。 您还应该查阅我们的“使用模式构建”博客系列,以了解有关不同用例的特定模式设计最佳实践,包括目录和内容管理、物联网、移动应用、分析和单一视图(即客户360)。它将这些用例与特定的模式设计模式进行叠加,如版本控制、分桶、引用和图形。 MongoDB大学提供了一个免费的基于Web的数据建模培训课程。这是一个了解文档数据模型中模式设计的学习的好方法。 审查您的数据模型 一旦您开发了初始数据模型并开始填充样本应用程序数据,有能力对其进行审查将会很有帮助。 MongoDB Compass是MongoDB的免费GUI工具。您可以在Compass上做很多事情,所以在这个博客系列中我们会经常回到这个工具。其中最有用的功能之一是模式可视化,使您能够使用直方图探索您的模式,显示文档字段、数据类型和值。正如您将在系列后面看到的那样,您还可以直接从Compass UI可视化查询解释计划和索引覆盖范围。 图 1:在 MongoDB Compass 中可视化您的架构 在图1中,我们正在审查存储在"restaurants"集合中的文档模式。对于采样的文档,Compass显示字段在每个文档中出现的频率,它们包含的值的范围以及数据类型,以及"categories"数组中的元素数量。Compass文档中详细介绍了如何分析您的模式。 开始使用文档 探索和实验数据建模的最佳方法是在完全托管的阿里云云服务上启动MongoDB。 我们的文档将指导您如何在您选择的地区和云提供商上创建一个免费的MongoDB数据库集群。您还可以加载我们的示例数据集,以便轻松入门文档。 内存大小:确保您的工作集适合内存 除了数据建模之外,性能优化的第二个主要考虑因素是调整您的工作集大小。 与大多数数据库一样,当应用程序的工作集(索引和最常访问的数据)适合内存时,MongoDB的性能最佳。RAM大小是实例大小的最重要因素;如果内存不足,其他优化可能无法显著提高数据库的性能。如果性能与价格/性能之间存在权衡,那么使用快速的SSD来补充较小的RAM量是一种可行的设计选择。您应该测试以找到适合您工作负载和SLA的最佳平衡。 当应用程序的工作集适合内存时,从磁盘读取的活动将会很低。您可以使用我们将在查询分析博客文章中介绍的工具来分析这一点,这是本系列的下一步内容。 如果您的工作集超过所选实例大小或服务器的RAM,请考虑迁移到具有更多内存的实例,或者将数据库分区(分片)到多个服务器上。 无论您是使用云托管MongoDB还是自己管理MongoDB,正确调整工作集大小都是必要的。 如您使用阿里云,请查阅阿里云MongoDB 官方文档,以获取有关计算工作集大小的指导。 在本系列后面,我们将更深入地探讨自建的MongoDB硬件大小调整问题。 在阿里云MongoDB 中,扩展计算和存储非常简单。您可以选择进入集群层自动缩放,以响应应用程序需求的变化来调整计算容量。 在阿里云MongoDB中,集群层自动缩放会在定义的时间段内监控CPU和内存利用率,并在您配置的限制内调整实例大小。所有缩放事件都是以滚动方式执行的,因此不会对您的应用程序产生影响。撰写本文时,自动缩放是一个测试功能。如果您想要自己控制缩放事件,那么您可以在阿里云MongoDB 控制台中只需点击几下鼠标,或通过API调用来实现。

November 28, 2023

MongoDB性能系列最佳实践-索引

MongoDB中的索引 在任何数据库中,可以用索引支持高效执行查询。如果没有索引,数据库必须扫描集合或表中的每个文档,才能选择与查询语句匹配的文档。如果查询存在适当的索引,数据库可以使用索引来限制必须检查的文档数量,从而提升查询效率。索引的使用可以大大减少查询所需的时间和资源,让数据库能更快速地找到所需数据。因此,在设计数据库时,充分考虑并优化索引的使用,是提升数据库性能的关键一步。 MongoDB提供了丰富的索引类型和功能,并具有针对语言的排序顺序,以支持对数据的复杂访问模式。MongoDB索引可以根据应用程序的需求和查询模式随时创建和删除,并且可以声明在文档中的任何字段上,包括嵌套在数组中的字段。这些灵活的索引功能使得在MongoDB中进行高效的数据访问变得更加简单和便捷。无论是针对特定的字段还是针对文档中的嵌套字段,都可以根据实际需求来创建索引,以提升查询性能和响应时间。通过合理设计和使用索引,可以最大限度地优化MongoDB的性能,提供更好的数据访问体验。 因此,让我们讨论如何在MongoDB中最好地使用索引。 使用复合索引 复合索引是由几个不同字段组成的索引。例如,如果您对“姓氏”和“名字”都进行查询,通常最高效的做法是创建包含“姓氏”和“名字”的索引。这样的复合索引不仅可以高效地处理同时指定“姓氏”和“名字”的查询,还可以用于过滤只指定“姓氏”的查询。 遵循ESR规则 在设计复合索引时,有一个经验法则有助于确定字段的顺序:根据查询的频率和选择性,将最常用且选择性高的字段放在索引的前面。这样做可以使索引更有效地过滤数据,提高查询的性能: 在设计复合索引时,以下经验法则可以帮助您确定字段的顺序: 首先,将用于执行等值查询的字段添加到索引中。这些字段通常是经常用于查询条件的字段,例如进行精确匹配的字段。 接下来,考虑对查询结果进行排序的字段。将这些字段添加到索引中,可以使查询在排序时更加高效。 最后,将需要访问的数据范围的字段添加到索引中。这些字段可以帮助缩小索引的范围,提高查询性能。 通过遵循这个经验法则,您可以设计出更优化的复合索引,以适应不同的查询模式和需求。根据具体情况,按照等值查询字段、排序字段和数据范围字段的顺序,灵活地确定索引字段的排列,以提供更好的查询性能和响应时间。 在可能的情况下,请尽量使用覆盖查询(Covered Queries)。 覆盖查询可以直接从索引中返回结果,而无需访问源文档,因此非常高效。 要确定查询是否是覆盖查询,可以使用explain()方法。如果explain()的输出显示totalDocsExamined为0,说明查询是由索引覆盖的。 在尝试实现覆盖查询时,有一个常见的陷阱是_id字段默认始终返回。您需要明确地将其从查询结果中排除,或者将其添加到索引中。 在分片集群中,MongoDB内部需要访问分片键的字段。因此,只有在分片键是索引的一部分时,覆盖查询才可行。通常最好将分片键作为索引的一部分。 在考虑低基数字段上的索引时要小心 对具有少量唯一值(低基数)的字段进行查询可能会返回大的结果集。复合索引可能包含具有低基数的字段,但合并字段的值应该具有高基数。 消除不必要的索引 索引是资源密集型的:即使在MongoDB的WiredTiger存储引擎中使用压缩,它们也会消耗RAM和磁盘。此外,随着字段的更新,相关的索引也必须进行维护,这会增加额外的CPU和磁盘I/O负载。因此,我们应该谨慎评估和删除不再需要的索引。 MongoDB 还提供了工具来帮助您了解索引使用情况: 通配符索引不能替代基于工作负载的索引规划 对于具有许多临时查询模式或处理高度多态文档结构的工作负载,通配符索引提供了额外的灵活性。您可以定义一个过滤器,自动为集合中的所有匹配字段、子文档和数组创建索引。 与任何索引一样,它们也需要存储和维护,因此它们会给数据库增加开销。如果您的应用程序的查询模式事先已知,那么应该使用更有选择性的索引来处理查询访问的特定字段。 使用文本搜索来匹配字段中的单词 常规索引用于匹配字段的整个值。如果您只想在包含大量文本的字段中匹配特定单词,则应使用文本索引。 如果您在Atlas服务中运行MongoDB,请考虑使用Atlas全文搜索,它提供了一个与MongoDB数据库集成的完全托管的Lucene索引。全文搜索提供更高的性能和更大的灵活性,用于对数据库进行过滤、排序和排序,以快速呈现与用户最相关的结果。 使用部分索引 通过仅包含将通过索引访问的文档来减小索引的大小和性能开销。例如,在orderID字段上创建部分索引,只包括orderStatus为“正在进行中”的订单文档,或者仅在文档中存在emailAddress字段时创建索引。 利用多键索引查询数组 如果您的查询模式需要访问单个数组元素,请使用多键索引。MongoDB会为数组中的每个元素创建一个索引键,并且可以构建在持有标量值和嵌套文档的数组上。 避免未以左锚定或根据的正则表达式 索引按值排序。前导通配符效率低下,可能导致完整索引扫描。如果表达式中有足够的大小写敏感的前导字符,后置通配符可能是高效的。 避免大小写不敏感的正则表达式 如果使用正则表达式的唯一原因是大小写不敏感,请改用大小写不敏感索引,因为它们更快。 使用WiredTiger存储引擎中提供的索引优化 如果您自己管理MongoDB,可以将索引放在单独的卷上,从而实现更快的磁盘分页和较低的争用。有关更多信息,请参见WiredTiger选项。 使用解释计划 我们在前面的查询模式和性能分析帖子中介绍了使用MongoDB的解释计划,这是检查单个查询的索引覆盖的最佳工具。 从解释计划中工作,MongoDB提供了可视化工具,以帮助进一步改善您对索引的理解,并提供智能和自动化的建议,可添加哪些索引。 使用MongoDB Compass和Atlas数据浏览器可视化索引覆盖 作为MongoDB的免费GUI,Compass提供许多功能来帮助您优化查询性能,包括探索模式和可视化查询解释计划,这些都是本系列之前介绍过的两个领域。 Compass中的索引选项卡为您的工具库增加了另一个工具。它列出了集合的现有索引,报告索引的名称和键,以及其类型、大小和任何特殊属性。通过索引选项卡,您还可以根据需要添加和删除索引。 使用MongoDB Compass管理索引 图1:使用MongoDB Compass管理索引 一个非常有用的功能是索引使用情况,它显示了索引的使用频率。拥有太多索引可能对性能造成几乎与拥有太少索引一样的破坏性影响,因此这个功能在帮助您识别和删除未使用的索引方面尤其有价值。这有助于释放工作集空间,并消除由于维护索引而产生的数据库开销。 如果您在我们全面托管的Atlas服务中运行MongoDB,则数据浏览器中的索引视图将为您提供与Compass相同的功能,而无需使用单独的工具连接到数据库。 您还可以使用$indexStats聚合管道阶段检索索引统计信息。 自动化索引建议 即使MongoDB的工具提供了所有的遥测信息,您仍然需要负责获取和分析所需的数据,以做出添加哪些索引的决策。 慢查询的阈值根据集群上操作的平均时间而异,以提供与您的工作负载相关的建议。 建议的索引附带有示例查询,根据查询形状(即具有相似谓词结构、排序和投影的查询)分组,这些查询运行在可以受益于添加建议索引的集合上。性能顾问不会对Atlas集群的性能产生负面影响。 如果您对建议满意,可以自动推出新的索引,而无需产生任何应用程序停机时间。 接下来 这就是性能最佳实践系列的最新一篇。MongoDB University提供了一门关于MongoDB性能的免费Web培训课程。这是了解索引的强大之处的好方法。 本系列的下一篇是分片。

November 28, 2023

文档模型为何比 RDBMS 更划算

合适的文档数据模型可映射应用程序使用的对象,并借助应用程序代码已定义的相同 结构来存储数据。 关系型数据库的发展 关系数据库管理系统 (RDBMS) 擅长处理随机问题。事实上,这也是研发 RDBMS 的初衷。 规范化数据模型代表数据的最小公分母,即与所有访问模式无关,也未曾随之优化过。 曾打造第一代 RDBMS 的 IBM System R 团队始终致力于帮助用户查询数据,规避编写复杂 的代码,也无需深入了解数据的物理存储方式。RDBMS 的创始人 Edgar Codd 在其著名的 文章“大型共享数据库的数据关系模型”中这样写道: “未来的用户不需要了解数据在机器中的组织机制,就能够使用大型数据库。” 关系型数据库面临的挑战 对于在线分析处理 (OLAP) 工作负载的需求认证了这一论断。有时,用户需要提出新问题 或运行复杂的数据报告。在 RDBMS 出现之前,查询存储在原有分层管理系统 (HMS) 中的 数据需要编写代码,这不仅要求软件工程技术,还需投入大量的时间。而 RDBMS 不但 能够提升信息可用性的周转率,确保快速增长,还缩短了获得新解决方案的时间。 不过,数据灵活性的代价是高昂的。有批评者很快指出,RDBMS 的时间复杂性或查询标准化 数据模型所需时间远高于 HMS。因此,或许并不适用于占用 90% IT 基础设施的高速线上交 易处理 (OLAP) 工作负载。Codd 本人意识到了权衡的必要性。他在相关文章中也提及了标 准化的时间复杂性: “如果命名集存在强冗余,并且直接反映在存储集中(或者引入了其他强冗余),那么一 般而言,会消耗额外的存储空间和更新时间,进而可能缩短某些查询的查询时间,降低中 央处理单元的工作负载。” 如果没有摩尔定律的存在,RDBMS 可能早已被否定,根本无法从概念进入雏形阶段。随着 处理器效率的提升,人们对于 RDBMS 的感知成本开始降低。从总拥有成本 (TCO) 的角度 来看,利用规范化数据运行 OLTP 工作负载最终变得可行;并且在 1980 年至 1985 年间 ,RDBMS 平台被誉为大多数新企业工作负载的首选解决方案。 这也说明,摩尔定律实际上是一个财务方程,而非物理定律。只要市场能够承受每两年翻 倍一次的晶体管密度成本,摩尔定律就依然有效。 不幸的是,对于 RDBMS 技术而言,这种情况在 2013 年左右发生了变化。当时,升级至 5 纳米制程对服务器 CPU 而言成本过高,成为几乎无法逾越的需求屏障。移动市场采用 5 纳米技术作为亏本产品,数年间,通过与移动设备相关的订阅服务来收回成本。 然而,服务器处理领域并不能通过订阅服务带来收益,导致近 10 年间,制造商一直无法 提升 5 纳米 CPU 的产量,每个核心服务器 CPU 的性能也始终没有新的突破。 去年二月,AMD 称由于服务器 CPU 成本过高,导致市场需求疲软,将无限期减少 5 纳米 晶圆库存。现实情况是,服务器 CPU 效率要实现数量级提升,需要一场跨世纪的技术变革 ,而这在短期内很难实现。 与此同时,存储的成本却在直线下降。RDBMS 解决方案采用的规范化数据模型需要用廉价 的 CPU 周期来打造高效的解决方案,而 NoSQL 解决方案依赖于高效的数据模型来降低执 行常规查询所需的 CPU 占用率。这通常就要对数据进行反规范化操作,本质上来说,就是 用 CPU 换存储。随着 CPU 的效率趋于平稳,存储成本持续下跌, NoSQL 解决方案成为了企业降本增效的手首选。 NoSQL数据库备受青睐 在近十年的时间里,RDBMS 与 NoSQL 之间的差距一直在拉大。包括 Amazon 在内的《财 富》前 10 强企业已经进行综合评估,并全面采用以 NoSQL 为首要开发策略的方式支持所 有关键任务服务。 客户在使用诸如 MongoDB Atlas 的 NoSQL 数据库之前,常见的阻力之一是开发人员已经掌 握 RDBMS 的使用方法,因此更倾向于“保持现状”。在我看来,最简单的方法是按照应 程序用实际使用的方式来存储数据。 合适的文档数据模型能够映射应用程序所使用的对象,借助应用程序代码中已定义的相同 数据结构来存储数据,其中利用到模拟数据实际处理方式的容器。这样避免了物理存储之 间的抽象层,也不会增加查询时间复杂度,并最终缩短 CPU 处理重要数据查询所需的时间 。 有人可能会觉得这类似于将数据结构硬编码到存储中,比如之前的 HMS 系统。 那么 ,RDBMS 支持的那些 OLAP 查询又当如何解释呢? MongoDB 始终在投资打造 API,助力用户开展常见企业工作负载所需的特殊查询。近期新 增的 SQL-92 适配 API 意味着 Atlas 用户可通过连接 MongoDB Atlas 时的常用工具来运行企 业报告,这和 ODBC(开放数据库互连)中的任何其他 RDBMS 平台别无二致。 复杂的 SQL 查询成本高昂,高速运行更是意味着需要将大量资金投入到资本支出预算中。 而 NoSQL 数据库通过优化高速查询的数据模型成功地规避了这一问题,进而触及了问题的 关键所在。这种设计的深远影响在运行 OLAP 查询时得以显现,因为对非规范化数据执行 查询时,效率始终很低。 以往日常报表需要 5 秒,而现在需要 10 秒,这种事情实际上没人会在意,因为每天只需 要运行一次。同样地,需要运行特殊查询寻找答案的数据分析师或支持工程师也不会留意 到 10 毫秒和 100 毫秒之间的差别。事实上,OLAP 查询的性能从来都不是重点,人们只 需要获得答案。 MongoDB 采用文档数据模型和 Atlas 开发者数据平台,不仅能提供更好的 OLTP 性能,还 可支持绝大多数 OLAP 工作负载。 关于作者:Rick Houlihan 在 MongoDB 担任面向战略客户的开发者关系团队主管。他负责公司大客户的咨询工作,在行业最佳实践、技术转型、分布式系统实施、云迁移等方面提供指导。点击 阅读 Rick Houlihan 的更多文章 。

November 28, 2023

THL Digital 如何使用MongoDB 为离网旅行者提供始终在线的用户体验

面临的问题 为 6,000+ 辆租赁车提供实时通知 林火通知、速度限制警报、不同位置的促销活动等,租赁汽车体验的未来已来,THL Digital 的 车载智能通讯平台让这一切成为可能。 THL Digital 在全球为 6,000+ 辆租赁车提供技术支持,业务遍及澳大利亚、新西兰、英国和美国。这家公司的核心产品 Insights 是一款驾驶指导应用程序,可用于改进驾驶员行为、降低驾驶的风险。每一辆租赁车上都安装了车载智能通讯设备,用以记录行驶速度和位置等核心信息。每一辆车的设备都会向驾驶员提醒各类危险,如超速行驶、意图将非机动车辆驶入机动车道。 技术水平以及客户满意度与能否向车辆提供实时通知息息相关,在网络连接顶多只能算参差不齐的澳大利亚内陆等偏远地区,更是如此。这项工作困难重重,但MongoDB的应用程序服务的数据同步服务让一切得以成真。 内部研发的同步中隐藏的痛点 THL Digital 设想 Insights 会成为确保租赁车驾驶员安全的一种方式,同时期望其能够让车队经营者更深入了解自己的业务。难题在于许多人租 RV 前往澳大利亚内陆度假,而这个地区的互联网连接又龟速又稀少。 为向租赁人提供实实在在的价值,THL Digital 的应用程序需要在客户未联网的情况下如常运作,并在车载设备连上网络后马上提供相关通知。这就意味着,THL Digital 需要通过一种方式在本地存储数据,以及在设备连上网络时自动在车辆的主机和后端服务器之间同步数据。 THL Digital 选择先将其构建在 SQLite 上的应用程序重建为 Realm 移动数据库。THL Digital 团队希望能够发挥 Realm 的跨平台功能和快速查询的价值,从而让重建简单一些。 THL Digital 的解决方案架构师 Emanuel Balea 表示,“从技术角度出发,Realm 让一切简单得多。Realm 启动后就可开始运作。将我们的应用程序从 SQLite 重建为 Realm 的移动数据库之后,我们得以移除了成千上万行样板代码,最终打造出更精简的应用程序。”整个项目的用时不超过 5 小时。 尽管如此,THL Digital 依然需要开发从客户端到服务器端的同步。一开始,公司试用了几款以云方式提供的现成解决方案,结果是,要么太贵了,要么限制条件太多了。最终,THL Digital 决定自行构建,但很快就意识到构建实时数据同步功能的难度超过预期。 为简化工作,团队决定部署基于时间的同步,即,每 15 分钟执行一次同步,而不是最初计划的实时同步。即便简化了解决方案,THL Digital 的开发人员仍有大量的工作要做:他们需要构建自己的 API 和 Web 服务,并创建高效的错误处理逻辑。 每 15 分钟执行一次同步的局限性很快就显现出来。租赁汽车的驾驶员收到超速通知时才意识到几分钟前有超速行为,或是在驶达林火附近后才了解有火情。多个不相关的通知同时送达,而这样会惹恼不少驾驶员。 “缺乏离线优先自动数据同步令人十分头疼,但实时同步会给我的团队带来好几个月的工作量。”Balea 解释道。 解决方案 MongoDB Atlas 设备同步:“它只是有效!” 这就是THL Digital团队了解到MongoDB Atlas Device Sync的时候。它提供了一个解决方案,可以节省大量的时间,并提供可靠的实时数据同步。 由客户端端的Realm和后端的MongoDB Atlas提供支持,MongoDB Atlas Device Sync消除了Balea团队编写错误处理逻辑或复杂网络代码的需要。它被优化用于脱机使用,并自动处理冲突解决。 对于Balea和他的团队来说,这是一个游戏改变者。“您可以根据您希望的方式构建您的应用程序,使其在脱机运行,然后集成同步,它就会生效!”他分享道。 “您可以根据您希望的方式构建您的应用程序,使其在脱机运行,然后集成同步,它就会生效!” Emanuel Balea,解决方案架构师,THL Digital。 THL Digital在不到一周的时间内使用MongoDB Atlas Device Sync就投入运营。同步无缝地集成了多个事件驱动的后端系统,包括数十个终端点和大量数据,涵盖GPS位置、客户移动、可用性和价格等信息,同时使用的总数据量比以前少。 根据Balea的说法:“MongoDB Atlas Device Sync使我们能够以最小的延迟实时通信。它让我一个人能够完成以前需要一支开发团队的工作。” 对于THL Digital来说,MongoDB Atlas Device Sync发生了深刻的变革:它改变了开发者的体验,使一个小团队能够构建通常需要数十名开发者才能完成的工作;它通过提供独特的警报系统,使司机在任何地方出行时更加安全,改变了客户体验;并且它还在整个业务中推动了成本节约。 Insights平台界面 客户价值 安全旅行和满意的旅客 现在,THL的客户可以在需要通知的时候和相关的时候收到通知,即刻而不是事情发生后的15分钟。通知从几乎瞬间到事件发生后的1.2秒内就能传达到全球任何地方。车队所有者可以实时了解车辆的位置和状态,这意味着工作人员可以优化分配汽车和货车,并更好地处理道路故障协助请求。自部署MongoDB Atlas设备同步以来,整体客户满意度和用户评价都得到了显著改善。 同样重要的是,通过实时让驾驶员了解他们的驾驶行为,Insights帮助他们更安全地驾驶。超速事件减少了98.8%,THL还看到了昂贵的恶劣驾驶事件减少了93.1%。 驾驶员行为的改善也为车队所有者带来了重大的运营成本节约。维护和维修成本已经下降,而企业的保险费用也随着时间的推移有所降低。由于使用新的解决方案进行更高效的同步查询,THL Digital也节省了数据使用费用。 从开发者的角度来看,Insights团队非常高兴:在使用Realm的移动数据库、MongoDB Device Sync和Atlas之间,他们节省了数月的开发时间。这个解决方案可以无缝集成多个事件驱动的后端系统,包括数十个终端点和大量数据,利用各种数据,如特定的GPS位置、客户动态、可用性和定价。开发团队能够专注于构建创新的新技术,并快速迭代新功能。 “MongoDB 的设备同步功能使我们能够以最小的延迟实时通信,”Balea总结道。“它让我一个人能够完成以前需要一支开发团队的工作。” “MongoDB Atlas设备同步使我一个人能够完成以前需要一支开发团队的工作。” Emanuel Balea,解决方案架构师,THL Digital

November 28, 2023

数据模型让企业付出多少成本?

经济波动导致商业环境不可预测,迫使组织进一步收紧支出,用更少的资源做更多的事。每一笔投资都得经过严格审查,项目负责人则竭力从现有资源身上获取全部产能。IT 支出引人担忧,许多 IT 决策者不清楚哪个环节导致成本上升。是不合理的高配置?还是云无序扩张?抑或是影子 IT(即未经批准使用软件、硬件或其他系统和服务)?遗憾的是,对于数据在数据库中如何建模,人们却没有给予足够重视。而数据建模恰恰又会从多个方面产生重大影响,如数据库的运营成本高低、处理工作负载需要的实例配置、开发和维护应用程序需要的工作量等。 帕累托模式 (Pareto pattern) 数据访问模式往往能够证明帕累托法则的确在起作用,即,少数原因驱动着多数结果。现代 OLTP 应用程序处理的往往是小区块的数据。大多数数据访问模式(应用程序访问和使用数据的方式)要么处理单行数据,要么处理单张表格中的多行数据。在对我们部署的、基于 RDBMS 的多样服务中 10000 项服务进行评估后,我们发现 亚马逊与此情况吻合 。标准化数据模型能够高效处理这些简单的单表查询,但是不常见的复杂模式需要数据库联接表来生成结果,这暴露了 RDBMS 效率低下。与这些查询相关的高时间复杂度意味着需要更多的基础设施支持。 关系数据库会将大量此类额外成本隐藏在幕后。当你将向关系数据库发出查询时,实际上并不能够真正查看全部表格上打开的所有连接,或合并的所有对象。尽管亚马逊上 90% 的访问模式都是针对简单事务,而 10% 的用户在进行更加复杂的访问时候却消耗了惊人的 CPU。据本团队估计,后者的消耗量之大导致基础设施成本升高了约 50%。此时就需要 NoSQL 数据建模来发挥颠覆性作用。NoSQL 数据模型经过专门设计,能够消除昂贵的联接表、降低 CPU 占用率、节省计算成本。 利用 NoSQL 提升建模效率 在 NoSQL 数据库中对关系数据进行建模的两种基本方法: 嵌入式文档 - 所有相关数据都会存储在单一富文档中,可在需要时高效检索该文档。 单一集合 - 相关数据可拆分为多个文档,从而高效支持需要用到较大型关系结构中子集的访问模式。相关文档存储在一个公共集合中,并包含可供索引的属性,以支持对相关文档的各种分组的查询。 要打造高效 NoSQL 数据模型并降低计算成本,关键在于要使用工作负载来影响数据模型的选择。例如,读取密集型工作负载,如执行类似“获取产品全部数据”或“获取本类别所有产品”查询的产品目录,可从嵌入式文档模型获益,该模型能够避免因读取多个文档而产生的额外成本。 另一方面,写入密集型工作负载,其写入的是零碎更新的较大关系结构的各个部分,将较小文档存储在单一集合中能够提升运行效率。这类单一集合可供独立访问和索引,在需要所有数据时支持高效检索。最终的选择取决于写入模式的频率和性质,以及是否存在并行运行的高速读取模式。如果是读取密集型工作负载,就需要一次读取尽可能多的文档。对于写入密集型工作负载来说,需要避免文档一有更改就得重新写入完整文档。 联接提升时间复杂度。在 NoSQL 数据库中,视访问模式组合而定,关系表中所有行可能会存储在单一嵌入式文档中,也可能会存储为按索引连在一起的一个集合中的多个文档。将多个相关文档存储为一个集合就不需要联接。只要是在常见范围的多个文档间索引,就能够非常高效地查询相关文档。 例如,面对在一个关系数据库中联接三张表格的查询,机器需要完成其中的 1000 个查询。此时,需要从多张表格读取至少 3000 个对象才能满足这1000个查询的要求。文档模型将所有相关数据嵌入一个文档之后,查询就只要从单一集合中读取 1000 个对象。同样地,机器不必合并三张表格中的 3000 个对象,只需从一个集合中读取 1000 个对象,如此,就不需要功能更强大、费用更高的实例。关系数据库并不能提供很好的控制能力。有些查询会产生大量联接,导致时间复杂度更高,换句话说,需要更多基础设施才能支持工作负载。 减少主要限制 在 NoSQL 数据库中,人们希望产生较高成本的要害环节能够实现最高效率的数据建模。分析查询的频率一般较低。100 毫秒内或是 10 毫秒内回传查询结果都不是最紧要的,用户只想要一个答复。对于每小时、每天或每周运行一次的事务来说,执行效率不及标准化关系数据库也没关系。一秒执行成千上万笔事务的事务性工作负载则需要尽可能提高处理效率,因为此时能够节省的潜在成本要大得多。 部分用户尝试运用这些数据建模技术来提高 RDBMS 平台的效率,因为大部分平台现在都支持类似 MongoDB 的文档结构。这个做法可能适用于工作负载的小型子集。但是,列式存储专为相同大小但相对小型的行而设计。这种存储方式的确很适合小型文档,但当关系数据库中行尺寸增加时,就需要行外存储。在 Postgres 中,这就是所谓的 TOAST(超尺寸属性存储技术)。这个做法会将数据存放在两个位置以避开尺寸限制,然而,过程中的性能也会降低。现代 RDBMS 平台所使用的、基于行的存储引擎在设计时就并未考虑到大型文档,因此,无法对其进行配置以高效存储大型文档。 绘制关系图 对数据建模时,我们建议先通过几个关键问题来确定工作负载的特征: 工作负载的性质是什么? 实体-关系图是怎样的? 有哪些访问模式? 每个模式的速度是多少? 需要得到优化的最关键查询在哪里? 识别实体以及相互间的关系将为数据模型打下基础。这个步骤完成后就可以开始提取访问模式。如果是产品目录类的读取密集型工作负载,用户很可能需要处理大型对象,这点无伤大雅。有大量用例可供参考。然而,如果处理的是较复杂的访问模式,需要独立访问或更新零碎的较大型关系结构时,那么就需要将数据分成较小型文档,如此才能够高效执行这些高速更新。我们的 MongoDB University 课程 "M320:MongoDB 数据建模里会教授前述这些技术 。 处理索引 使用适用于高频率模式的索引能够享受到最佳性能。没有索引,就必须读取集合中的每一个文档,观察并确定哪一个文档匹配查询条件。索引是提供快速解析的 B 树结构,能够识别出匹配查询所指定之索引属性相关条件的文档。 出于多种原因,用户可能会选择不对不常见模式进行索引。所有索引都会产生成本,因为只要文档一更改,就必须作出相应更新。用户将面对按一致方式执行的高速写入模式,以及最终会发生的低速读取。这种情况下,用户会接受读取查询的完整集合扫描所产生的较高成本,而不是每次写入更新索引所产生的成本。如果 1 秒写入集合 1000 次且每天只读取 1 次,用户最不应该做的就是为保证读取的效率而针对每一次写入添加索引更新。当然,还得由工作负载决定。总的来说,应当为高速模式而创建索引,在某种程度上(全部或部分)索引应当覆盖频率最高的访问模式。 请注意,不论是经常读取,还是完全不读取,索引都会产生成本。请始终记住,定义索引时必须有充分理由,且这个充分的理由应当是高频率访问模式需要利用此索引来确保高速读取数据。 数据建模和开发人员工作效率 即便已经优化了自己的数据模型,用户还是发现可以在下游再实现成本节省,因为开发人员能够找出比关系数据库更高效的方法来开发、迭代和维护系统。特定文档设计模式和 NoSQL 的特征能够降低维护额外成本,很多时候还能够一并消除维护任务。例如,类似 MongoDB 的文档数据库支持灵活的架构,如此就能够消除与架构迁移相关的维护时段,也不必重构与 RDBMS 一样的目录。关系数据库中的架构变化通常都会影响到 ORM 数据适配器,都需要对其进行重构以适应变化。这就会给开发人员造成惊人的代码维护工作。 有了类似 MongoDB 的 NoSQL 数据库后,就不必再配置繁琐且脆弱的 ORM 抽象层。开发人员能够存储采用原生格式的对象数据,不必对数据执行标准化就能生成表格模型。在 MongoDB 中更新数据对象几乎不需要任何维护。应用程序只需要注意文档是否获得了新属性;如果没有新属性,就需要了解如何按照目前架构版本对其进行更新。 MongoDB 将大幅降低许可费用和基础设施成本,但组织弃用 RDBMS 实现的最高成本节省很可能来自开发成本的降低。因为需要维护的代码减少了,且应用程序更方便未参与代码写入的人员理解。MongoDB 不仅大幅降低了迁移的复杂性,且确保不会轻易受故障和停机的影响。此外,还能够以更简单的方式更频繁地更新应用程序,完全不必操心架构更新是否会失败、是否需要回滚。总体来说,利用类似 MongoDB 等 NoSQL 数据库全程维护应用程序的难度大大降低。各个环节的效率提升之后,长远下来就能够节省大量成本。 另外,值得一提的是,开发群体中的许多后起之秀将关系数据库看作过时技术,不会优先考虑该技术。MongoDB 能协助组织吸引顶尖人才,而组织必须配备人才这个关键因素才能够开发出最佳产品、加速实现价值。 提升 NoSQL 数据建模的技能 要想通过学习如何对数据建模来遏制软件开发生命周期中隐藏的成本,请选择 MongoDB University 。我们提供了特殊课程 M320: MongoDB 数据建模 。我们还提供大量其他免费课程、可自我调节进度的视频课、按需开放的实验室和认证,各个课程都配有数字徽章,能够协助用户全方位掌握 MongoDB 开发知识。

November 28, 2023

国泰航空开发基于 MongoDB 和 Device Sync 的机上移动应用

当国际航班上的乘客享用茶点休憩时,机组人员却忙着分析成百上千份纸质图表、全球地图、紧急通知和空域变化,以确保能够安全执行飞行任务。虽是常规操作,但这个执飞流程远非“简单且有效”。 作为香港本土的航空公司,国泰航空提供的客运和货运服务覆盖全球不同目的地。国泰航空清楚这个流程及其他许多关键业务级流程都需要进行数字化转型。国泰航空积极寻找可提高其运营效率、工作效率和可持续性能力的重大机会,优先开发创新性的数字解决方案。例如,在 2001 年,国泰航空率先推出线上办理登机手续的服务。此外,国泰航空还通过 Flight Folder 这款 iPad 飞航及天气电子应用程序率先实现了飞行流程的数字化。2019 年 9 月,国泰航空成为全球首批实现无纸化飞行的航空公司。MongoDB 的开发者数据平台满足了国泰航空对这个项目及其他多个项目的需求,成功削减了成本,提高了运营效率和准确率,同时还减少了对环境的影响。 面临的挑战 数字化时代的成堆纸张 为执飞从香港前往纽约的长途航班,国际机组人员在抵达位于香港的航行调度办公室时,必须马不停蹄地审阅 150 多页印刷精美的文本和图表。操作宽机身飞机穿越全球最长航线本来就不容易,而要学会从成百上千个通知、空域及机场变更、全球地图和图表中挖掘出深埋其中的关键数据要素,这更是机组人员需要多年打磨才能掌握的一项技能。 飞行签派员需要综合考量飞机性能、载客量、气流、风暴和湍流,才能提供具体的飞行路线。计算结果还可能随时发生改变。例如,因恶劣天气、技术问题或燃料问题,有时不得不在最后一刻进行航线变更或紧急信息更新。打印出来的新飞行路线往往需要派人即刻徒步送达机组人员手中,而这仅仅是飞行途中需要参考的几十份纸质材料的其中一份。或者,也可以向即将起飞的飞行员发送紧急电子邮件。然而,这些紧急情况多数会产生数目庞大的电子邮件。因此,电子邮件注定无法成为可靠、及时的通信方式。 飞行期间,飞行员用纸笔手动记录风速、高度、油压和油耗等关键飞行数据。即便是同一航班上的机组成员,也很难实现协作和信息共享。飞行报告需要在着陆之后手动递交给会计部门,由会计部门计算飞行成本。手动流程中有时出现的延迟还会导致付款延迟,而这最终会反过来导致航班延误。 国泰航空决意打造 Flight Folder,一款能够精简这些任务的应用。飞行员、机组人员和签派员可用这款应用来替换当前的纸质和电子邮件流程。如此,即使飞行期间网络条件不稳定,也能够改进协作、精简通信,提高准确性,并通过提高燃油效率来减少对环境的影响。 对 Flight Folder 的要求 事实上,没有现成可用的解决方案情有可原。首先,要攻克诸多重大技术障碍。要推出成功的应用,就需要满足以下标准: 机组人员完成飞行任务及提供出色用户体验所依赖的所有信息源都必须经过整合并实现数字化。 可靠、及时地向机组人员推送紧急信息更新,确保任意位置的员工之间都能够进行即时且可靠的通信。 长时间正常运行 - 连接中断时应用仍可使用、离线时仍可存储数据、并在网络可用时立即在机上的所有设备间实现同步。如此可确保机组人员在飞行期间追踪到最新信息并保持高效协作。 数据应能够在着陆后即刻同步回主要后端数据库,供其他企业职能部门取用。 高度可靠 - 不丢失任何飞行数据,避免给财务计算带来严重误差。 此外,开发团队不得不: 在一年之内推出应用 - 团队十分看重 Fight Folder 这种行业领先的解决方案何时能实现商用。 实现高应用采用率并提升商业信心。 明确了对这款应用的技术要求后,领导层愈发明白,即便专门划拨出一年时间,也无法在公司内部开发完全部功能。国泰航空的应用开发经理 Jacky Shum 分享道,“我参与过这类应用的开发,因此,我早就知道,在资源和时间都受限的情况下,从零开始开发并不可行。我也明白,在解决方案推出之后,我们需要花费大量时间对其进行维护。而我希望团队能够集中精力,在附加价值高的功能方面实现创新。因此,我寻找了一款能够兼顾功能和可靠性的平台,以此来确保团队能够实现既定目标。” 解决方案 巧干胜于蛮干 MongoDB可满足国泰航空对开发者数据平台的要求,能够提供创新所需的速度、灵活性和可靠性,让国泰航空三条航线的所有飞行员都能够使用其业务关键型 Flight Folder 应用。 首先,飞行计划是非常复杂的数据结构,只有关系图才能最好地呈现出航班之间关系的复杂性。MongoDB 的文档模型恰好能够满足这个结构需求,同时提供支持迅速演变的飞行数据所需要的灵活性。此外,对开发者来说,在 MongoDB 中处理数据就如同用自己的代码处理本地对象一样简单。这一点有助于加速其敏捷开发流程。 除了数据库本身,平台服务经过特殊设计,能够更轻松、更快速推进开发。具体来说,平台的完全托管移动后端即服务产品 发挥着关键作用。它决定了国泰航空的团队能否满足功能需求、能否在紧迫的时间内完成任务。平台服务提供现成可用的基础设施以及通常只有主要移动应用中才会提供的数据层功能,即,强大的网络处理以及能够理清并发用户、权限、安全性等的成熟冲突解决机制,让团队能够专心开发其他创新功能。 Flight Folder 可通过 Realm 在本地存储数据,让离线功能发挥功用。飞行员可直接将信息记录到应用中,即便没有网络连接,数据也不会丢失,使用应用时也不会出现滞后。只要应用与机上 WiFi 的连接恢复,所有变更都会立即同步回云,再同步至机上以及地面上的全部设备,以反映最新状态。信息更新出现冲突(例如,调度员和飞行员编辑同一个字段)时,Device Sync 的内置冲突解决功能 Operational Transformation 算法(类似于处理谷歌文档中协同编辑的算法)就会派上用场。这个功能确保 Flight Foder 能够捕捉到最准确的状态,防止关键数据丢失。 在这种情况下,MongoDB的高并发处理能力十分关键。对于空域通行量达到国泰航空规模的公司来说,通信可靠度成为他们评估技术合作伙伴时最关心的问题。团队已将 Atlas 用于其他业务应用中,团队也相信 MongoDB 能够交付该用例所需的成果。 最后,MongoDB 提供的企业支持协助保护国泰航空的业务关键型应用。在对机组人员的现有工作流程和简报风格进行全面调研之后,我们又详尽地考量了应用用户体验和界面,以此来确保应用用户(即国泰航空的机组人员和员工)能够更自然、更高效地完成数字化转型。 飞行操作的航线运行主管 James Toye 解释道,“Flight Folder 注重卓越运营的核心支柱,它经过专门设计,能在正确的时机将多个来源的信息直接汇总到机组人员手上,为运行规划和决策提供基础。Flight Folder 也能在全体员工之间、在更广阔的航空公司运营环境中实现地面和机上的实时数字化协作。将过往航班的信息处理成实用的见解让 Flight Folder 能够将几十年的全球运营知识分享给新进员工。” 成果 焕然一新的飞行体验 Flight Folder 对国泰航空的发展产生了深远的影响。自这款解决方案推出以来,国泰航空已完成超过 34 万次飞行,驾驶舱实现了全数字化集成。方方面面的效率提升给公司的发展带来不容小觑的影响。除了大大改善了机组人员的体验外,飞行时间也相应减少,数字化加油流程平均节省了 8 分钟的地面时间。 飞行文档的数字化将文书量减少了 50 公斤。累计下来,在 5 年的时间里,Flight Folder 实现的改进预计已为公司节省了 1 亿港币。此外,合理优化每架飞机的重量后,减少了向大气的碳排放量达 1.5 万吨/每年。 这些举措都是国泰航空对坚持可持续发展的承诺,也是在全球范围内,对减少航空业对气候变化影响的所作出贡献。 James 补充道,“Flight Folder 项目彻底改变了飞行简报领域的技术,颠覆了飞行员与简报数据交互的方式。将现代数字化协作工具与数据见解相结合之后,员工会获得充分信息、保持互联,还能够取用所有可用信息资源,从而作出更明智的决策、实现卓越运营。” 国泰航空有志成为全球主要服务品牌。为实现这个目标,他们正努力转型成为拥有强大数字文化和能力的数字化领军企业。Flight Folder 着眼于打造更丰富的飞行性能和协作,同时也完美展现出了这种数字文化和强大功能。 国泰航空致力于通过技术创新来打造更安全、更高效、更环保的飞行,与 MongoDB 携手开发 Flight Folder正体现了这一决心。 数字和 IT 主管 Lawrence Fong 表示。 我们通过此番合作明白,专为复杂、现代和高风险用例而设计的数据平台若能够支持业务关键型技术及能够优先考虑开发体验,就能够带来可喜成果。我们期待能够继续揭示更多行业领先的数字化转型成果,为公司、为整个行业带来更深远的影响。

November 28, 2023

Volvo Connect 利用MongoDB 提升数据库效率

Volvo Connect 利用 MongoDB 提升追踪6,500 万起日常事件时的数据库效率。 车队管理新愿景 Volvo Group Connected Solutions 负责开发互动门户Volvo Connect,让驾驶员和车队经理能够从同一个数字界面追踪卡车和活动,甚至能够追踪其中蕴含的见解。Volvo Connect 能够节省时间、消除分歧,为客户提供更高可见性,协助客户做好准备和规划并持续改善。 Volvo Connect 每一天管理的事件数目达 6,500 万,而未来两年内该数值预计会达到 20 亿。公司需要一款可扩展、灵活的无压力数据库平台来支持这些事务,最终选择了 MongoDB 以享受其易用性和功能。 Atlas 提供的解决方案几乎无需维护,能够帮助用户轻松地按需扩展数据库。 面临的挑战 开创新的联网方式 总部设于瑞典哥德堡的沃尔沃集团 (Volvo Group) 生产和销售卡车、客车和施工设备,以及海洋和工业驱动系统。集团旗下员工超过 95,000 名,在 85 个国家(地区)拥有 1,500 名经销商。Volvo Group Connected Solutions 主导集团互联服务和解决方案的开发,交付了有竞争力的产品和服务,同时缩短新服务的上市时间,为全新服务创新提供了新舞台。 其中一个创新成果是 Volvo Connect,Volvo Connect 提供的数字服务界面可让公司以全新方式将企业关键环节串联起来。Volvo Connect 平台会收集车辆的事件,例如,燃料储备量、位置、行驶里程;且会同以往一样,将事件馈送回庞大的旧 Oracle 数据库中。“将 Oracle 数据库扩展为 Volvo Connect 需要的体量绝非易事,因此,公司将目光投向 MongoDB,考察 云托管式 MongoDB 能否成为更灵活的替代方案。” “我们的旧数据库需要大量维护和人力才能持续运作,因此,我们转为采用以 MongoDB 为基础构建的微服务方法。”Volvo Group Connected Solutions 的首席解决方案架构师 Erik Wernqvist 解释道。“然而,几年后,我们把自托管式版本的价值发挥到极致之后,,然后发现很难再对其进行扩展了。” Volvo Connect 重新评估了市面上的一系列替代方案,之后才确定完全托管的 MongoDB 云服务是最能满足其标准(即利用平台的高级功能和压缩能力轻松管理和扩展)的云服务。公司之后策划了向新平台的顺畅迁移。 “有了 MongoDB 的协助后,迁移到 云服务就非常顺畅了,建立新的分片集群也很简单。” Volvo Group Connected Solutions 的首席解决方案架构师 解决方案 追踪数百万起日常事件 Volvo Connect 联合 MongoDB 专业服务设计出定制迁移计划,只需不到两天半就能够转换 8TB 的数据,且不干扰业务、不引发停机。 “有了 MongoDB 的协助后,迁移到云服务就非常顺畅了,建立新的分片集群也很简单。”Wernqvist 补充道,“MongoDB 专业服务团队提供的技能和专业知识触手可及,有助于确保项目成功推进,知道这一点让我们十分安心。” 现在,全球超过 100 万辆车每日生成的 6,500 万起事件的相关数据全部存储在 MongoDB 上,可通过客户门户提供给用户,供其实时查看每一辆车的事件历史记录。用户也可以生成报告、利用地图策划行程并创建油耗图表等等。 “其主要供车队经理使用,使其能够更全面了解车队中每一辆车的状态,因此得以更高效地进行规划。”Wernqvist 继续说道,“我们使用 Atlas Admin API 提取指标数据并将其自动推送到我们的控制面板中。 这样大大减轻了我们的工作负担。” 最后再加一个阿里云MongoDB 试用

November 28, 2023