导读
本文根据 TiDB Cloud Serverless 团队技术负责人孙晓光老师的分享《TiDB Cloud Serverless:AI 应用创新的最佳搭档》整理。在本次演讲中,孙晓光老师详细介绍了 TiDB Cloud Serverless 如何为 AI 应用的开发和部署提供支持。
TiDB Cloud Serverless 通过按用量付费模式,帮助企业实现成本节约,并提供零停机时间的业务连续性,还集成了向量搜索功能,满足 AI 应用在数据库方面的敏捷开发需求。 TiDB Cloud Serverless 有能力成为 AI 时代应用开发者最得力的基础设施。
TiDB 是什么?
TiDB 作为 AI 领域中的一位新兴参与者,自成立以来便以开源项目的形式在 GitHub 上 进行开发,代码完全公开透明。截至目前,TiDB 在 GitHub 上已获得 36.7k 个 stars,拥有 3,000+ 家客户和 1,000+ 贡献者。
接下来,我们将深入探讨 TiDB 的核心能力。TiDB 是一款 NewSQL 数据库,旨在解决 OLTP 场景中的可扩展性问题。它是一个原生的分布式数据库,同时严格遵循联机交易数据库的 ACID 语义,并且完全兼容 MySQL 生态系统。除了在 OLTP 领域的应用,TiDB 还扩展到了实时分析领域,成为了一款 HTAP(混合事务/分析处理)产品,能够为应用程序提供实时的数据洞察能力,无需将数据 ETL 导出至外部系统即可进行分析。
此外,TiDB 凭借其 NewSQL 分布式架构,具备原生的系统级高可用性。整个系统支持横向扩展,不存在单点故障,从而确保业务的连续性。
TiDB Cloud 是什么?
大约在 2015 年,TiDB 项目正式启动开发。开源项目的一个显著优势在于它的低门槛,我们鼓励并欢迎任何人在数据中心自行部署 TiDB,这极大地降低了接触和使用我们产品的障碍。
起初,我们的产品主要面向线下部署,然而随着 NewSQL 产品的复杂性日益增加,不可避免地带来了维护上的高门槛。这成为了进一步扩展产品用户范围和应用领域的阻碍。
为了解决这一问题,我们推出了 TiDB Cloud。**TiDB Cloud 旨在简化部署和运维过程,降低用户在使用 NewSQL 产品时的技术门槛。**通过 TiDB Cloud,用户可以享受到更加便捷、高效的数据库服务,而无需担心背后的复杂性。
TiDB Cloud Serverless 是什么?
TiDB Cloud Serverless 即 TiDB Cloud 的 Serverless 版本。TiDB Cloud 分为 Dedicated 与 Serverless 两个版本,之间存在许多差异,这里我做一个简要的总结。
TiDB Cloud Dedicated 可以理解为 TiDB 产品在云端的一种完全独立且独享资源的部署方式。由于其独占性,用户可以自由调整各种参数和配置。这款产品主要面向那些需要持续且确定性负载的大型应用场景。
TiDB Cloud Serverless 旨在进一步简化过去的复杂性 ,使其更加易于使用。它通过屏蔽所有与硬件和管理相关的复杂问题,为用户提供了一种简便的、全自动化的服务。**用户无需再担心扩展性问题,所有功能均为弹性配置,并实现自动化管理。**此外,每位用户可以免费获得 5 个包含免费配额的集群(cluster)。
今天的主题是 TiDB Cloud Serverless 这款产品。在深入探讨之前,我想先尝试对其进行简要描述。
TiDB Cloud Serverless 是 TiDB 产品系列中的一部分,因此 TiDB 所具备的强一致性、高可用性以及水平扩展能力在这款产品中依然存在。除了这些特点之外,TiDB Cloud Serverless 还能为大家带来哪些额外的价值呢?
首先,它是一款完全 Serverless 的产品,这意味着用户不再需要关心购买多少服务器或如何分配存储和计算资源的配比等容量规划的问题。这些问题虽然不再需要用户操心,但它们依然需要被解决,而这正是自动弹性机制为您提供的支持。当您的业务随着增长或减少时,后台的资源配比会自动调整。在业务需求增加时,系统会自动扩展以承载流量的上涨;而在流量减少时,系统会将多余的资源释放,从而大幅降低运营成本。
在这样的条件下,我们能够为客户提供按使用量计费的模式,即在您不使用资源时,系统会自动缩减资源分配,避免不必要的浪费。因此,客户无需承担额外成本,从而有效避免了资源浪费。
拥抱云原生:简化技术栈,加速应用创新
在没有云计算和云托管基础服务的过去,应用开发是一个涉及多个层面的复杂过程。从最底层的数据中心基础设施,包括物理服务器、网络和基础软件,到后端工程师设计的各种服务,再到前端开发,无论是 Web 还是移动端,都需要巨大的投入和复杂的技术栈。
然而,随着云技术的成熟和云原生理念的普及,我们的基础软件也开始拥抱云原生。在这个时代,许多能力已经变得非常成熟和标准化,可以被重用。这使得我们在开发应用时,如果是一个创新的应用,很可能只需要面对右边这样一个简化的技术栈。
最底层,云服务提供商如 AWS 为我们提供了成熟的基础设施;往上一层,像 PingCAP 这样的公司为大家提供了更高层次的软件基础设施,PingCAP 主要专注于数据库领域,我们开发了 Data Service 服务,可以视为一个低代码开发平台。基本上,只要有产品经理或对后端有一定了解的开发人员,有业务流程设计和数据模型设计,就可以非常简单地利用 SQL 生成后端 API ,释放后端开发的工作;再往前,还有像 Vercel 这样的全托管前端平台,它们提供的技术栈也可以帮助我们统一开发移动端和 PC 端的前端产品。
今天,从底到上,这个技术栈如果应用于没有历史负担的新应用,你可能只需要关注最上面的一小部分------基本的业务层面。许多负担已经消失,开发变得非常高效。
在创新中,高效率至关重要,因为时间窗口可能就在那里,你的竞争对手可能就在那里。关键是" time to market ",在这个时代,大家可以享受到新的迭代开发模式带来的敏捷。
PingCAP 在这里扮演的角色是帮助大家解决后端开发担忧的厂商之一。我们相信,通过这些技术和服务,开发者可以更快速地将创新想法转化为现实,抓住市场机遇。
Git 工作流与数据库的融合:TiDB Cloud Serverless 的高效开发体验
尽管我们已经将数据库托管出去,后端开发也变得更加轻量,但我们的日常开发流程中仍然有许多与数据相关的任务。幸运的是,现在有一个新的开发趋势,那就是将数据库也纳入到我们熟悉的 Git 工作流程中。
过去,我们非常熟悉 CI/CD 的持续交付流程,我们的代码通过分支进行管理,运行环境也可以通过分支方式进行管理。现在,TiDB Cloud 正在尝试将数据库服务推向这样一个熟悉的 Git 工作流程。
如果你在 TiDB Cloud 上进行应用开发,你不仅可以享受到代码和前端环境的分支化管理和多人协作开发,甚至连数据库也可以实现这一点。 换句话说,如果你有一个线上数据库,并且希望为每个开发者或每个小的功能迭代快速获得一个与环境完全一致的数据库,或者你的 Data Service 希望使用与当前版本完全一致的数据源进行开发测试,你可以通过 GitHub 上的 GitHub Actions Integration 来使用 Data Branch 功能。
当你创建一个分支或发起一个 Pull Request 时,系统会自动为你创建一套完整并且包含数据的数据库环境、Data Service 环境,以及对应的 Vercel 环境。这样,你的整个开发过程都是完全一致的。当你完成测试并合并回主分支时,在发布过程中,所有资源都会被释放。
这是一个非常流畅的过程,确保了开发过程中不会出现由于环境不一致而带来的意外风险。这样的开发体验是非常好的。
TiDB Serverless 与 AI 的融合:Vector Search 引领数据库新纪元
接下来,让我们转向一个令人兴奋的话题------人工智能(AI)领域。今天,我将与大家分享 TiDB Serverless 在 AI 领域的首次尝试。我们的探索始于 Vector Search 能力,这是 TiDB Serverless 上的一个创新功能。这一功能首次开发完成,并在 6 月 25 日对外发布了公测版本。这意味着从 6 月 25 日起,任何人都可以在 TiDB Serverless 上使用 Vector Search 能力,利用关系数据库对现有数据和新创建应用的向量数据进行综合开发。
为了支持这一开发工作,我们已经整合了 AI 领域中十分常见的技术栈。 这包括了 LlamaIndex 和 LangChain 等工具。鉴于 Python 在 AI 领域的广泛应用,我们也确保了对 Python 的 ORM 和开发框架的全面支持。无论是 peewee、SQLAlchemy 还是 Django,我们都提供了相应的支持。
通过这些整合,TiDB Serverless 不仅为传统的数据库操作提供了强大的支持,也为 AI 领域的探索和应用开发提供了便利。我们相信,这些工具和技术的结合将为开发者带来更加丰富和高效的开发体验。
接下来,我将深入探讨 TiDB Cloud Serverless 在生成式 AI(GenAI)领域的具体价值。
AI 领域的技术种类繁多,而在数据库与 AI 的结合探索中,尤其是在检索增强生成(Retrival Augmented Generation,RAG)方面,我们找到了可行的结合点。
RAG 的工作流程
在此,我想简要介绍一个关于检索增强生成(RAG)的示意图。在 RAG 的工作流程中,我们首先利用私有领域的知识,通过抽取和切片,将这些知识存储在不同的存储单元中。当需要与大型模型进行交互时,我们从这些存储单元中召回与问题相关的私有领域内容,并将其输入大模型,以获得更准确的结果。
在这一过程中,向量搜索(Vector Search)最初被用于内容召回的起点。随着不断的尝试与探索,我们发现,只要能够丰富内容供给,便可在这一场景中应用多种召回方式。因此,传统的全文检索也被纳入了这一流程。如今,图数据库(Graph Database)也在该场景中占据一席之地,因为它们同样能够提供高质量的私有领域知识。
我相信未来还会有更多的技术手段被发掘并逐步应用于这一领域。目前,我在此标注了一个"Others",代表这一领域仍有待进一步探索与发展。
一栈式解锁 RAG 场景下的数据库潜能
我还想深入探讨数据库在检索增强生成(RAG)场景中的记忆能力,以及 TiDB Cloud Serverless 如何在这个领域提供具体的价值和功能。
首先,数据库需要具备记住自有领域知识的能力,并能够快速地取出这些记忆,这是最基本的能力。接着,我们需要向量语义搜索功能,能够将嵌入(embedding)放入数据库,并根据语义将其搜索回来。此外,我们还需要倒排索引,以支持全文检索,并根据文本语义召回所需内容。当然,还有图数据库,无论是人工建立的知识图谱还是 AI 助力建立的知识图谱,都可以用来快速召回有价值的内容。
接下来,如果我们根据这些需求来考虑,我们需要什么样的数据库?这里会涉及到快速存储、实时分析、OLAP 数据库需求,以及面向 C 端的灵活开发模式,可能需要无 schema 约束的文档存储。我们可能会用到 Vector Search、Full-Text Search、Graph Database 等技术。传统 TiDB 已经覆盖了 OLTP 的可扩展性、HTAP 能力以及对 JSON 的支持,而 TiDB 的分布式和可扩展性也解决了扩展性问题。
现在,TiDB Cloud Serverless 进一步提供了 Vector Search 的支持,我们也正在针对 RAG 领域进行新的开发。 几个月后,大家可以通过 TiDB Cloud Serverless 一栈式解决 AI 应用对数据库各个方面的需求。
这给大家带来的价值不仅仅是从理解 5 个数据库变成理解一个数据库的 5 个功能,而是在于数据流水线建设和管理的成本降低。 管理多个数据库时,数据同步和维护是一个繁重的工作。而当这些功能集成在一个产品中时,数据同步的负担就消失了。此外,全托管服务则解决了数据库的长期维护问题。
总的来说,五合一的解决方案给大家带来的实际价值是长期成本的下降,特别是在数据流水线建设和管理的成本开销上,而不只是初期学习 5 个 API 接口的开销。
在分享的最后,我将总结 TiDB Cloud Serverless 对开发者的价值:
首先,TiDB Cloud Serverless 是 MySQL 兼容的,这意味着大家在可以基于自己熟悉的技术栈构建应用;它还具备 HTAP(混合事务/分析处理)能力,让你能够进行实时分析而无需搭建复杂的数据流水线;同时,TiDB Cloud Serverless 建立在开源的 TiDB 内核基础上,如果你对某些功能不满意,或者想要了解功能的实现方式,代码是开放的,可以自行探索;我们还加入了 Data Branch 和 Data Service,无论是 GenAI 还是其他应用开发,都能利用这些工具加速你的应用开发;此外,Vector Search 作为 AI 领域的能力,现在已经对所有人开放使用。我们为每个账号提供了共 25GB 的免费空间,以及与之对应的 250 million RU,作为免费的资源。这表示在创新时,除了你的时间和你的想法,你几乎不需要担心成本开销。在你的应用真正面向海量用户之前,这些免费的资源已经足够。
我相信,AI 时代的应用开发,TiDB Cloud Serverless 将是你最得力的基础设施。