通过Python客户端开始使用MyScale

使用Python客户端轻松启动你的MyScale之旅

数据几乎成为了今天每个组织的核心。随着数据量的不断增长,公司必须找到有效存储、处理和分析数据的方法。这导致了数据库市场的爆炸,公司既利用传统的SQL数据库,也利用较新的向量数据库来完成不同的任务。

然而,每种类型的数据库都有不同的权衡。传统的SQL数据库为结构化数据提供一致性、准确性和易用性,而向量数据库则针对速度和可扩展性进行了优化,尤其是对于大量的非结构化数据。但是,如果你不必做出选择呢?如果有一个数据库可以让你兼具两者的优点呢?

在这篇博客中,我们将从非常基础的部分开始介绍MyScale,比如创建表和定义索引,然后介绍高级的SQL向量搜索。最后,我们还将将MyScale与市场上的其他数据库进行比较,并看看为什么MyScale更好。所以,让我们开始吧。

MyScale是什么?

MyScale(新窗口打开)是一种基于云的SQL向量数据库,专门设计和优化用于管理大量数据的人工智能应用。它构建在ClickHouse(新窗口打开)(一个SQL数据库)之上,将向量相似性搜索的能力与完整的SQL支持结合在一起。在一个界面中,一个SQL查询可以同时快速利用不同的数据模式来处理复杂的AI需求,否则这些需求将需要更多的步骤和时间。

与专门的向量数据库不同,MyScale将向量搜索算法与结构化数据库融合在一起,使得可以在同一个数据库中管理向量和结构化数据。这种整合带来的好处包括简化的通信、可调整的元数据过滤、对SQL和向量联合查询的支持,以及与通用多用途数据库常见关联的成熟工具的兼容性。实质上,MyScale提供了一个统一的解决方案,提供了一种全面的、高效的和易于学习的方法来解决AI数据管理的复杂性。

如何在MyScale中启动集群

在开始使用MyScale之前,首先需要创建一个帐户并创建一个将存储您的数据的集群。这里我们向您展示以下步骤:

  • 登录/注册MyScale帐户,网址为myscale.com(新窗口打开)
  • 创建帐户后,点击页面右侧的“+新集群”按钮
  • 输入集群名称,然后点击“下一步”按钮
  • 等待集群创建完成,这需要几秒钟的时间

集群创建完成后,您将在弹出按钮上看到“集群启动成功”的文字。

现在,下一步是设置工作环境并访问正在运行的集群。让我们来做吧。

设置环境

要在您的环境中使用MyScale,您需要以下内容:

  • Python:MyScale提供了一个与数据库交互的Python客户端库,因此您的系统上需要安装Python。如果您的电脑没有安装Python,您可以从Python官方网站(新窗口打开)下载。
  • MyScale Python客户端:使用pip安装ClickHouse客户端(新窗口打开)包:

与集群连接

下一步是将Python应用程序与集群连接,而为了连接,我们需要以下详细信息:

  • 集群主机
  • 用户名
  • 密码

要获取这些详细信息,您可以返回到您的MyScale配置文件,将鼠标悬停在“Actions”文本下方的三个垂直排列的点上,然后点击“连接详细信息”。

点击“连接详细信息”后,您将看到以下框:

这些是您连接到集群所需的连接详细信息。只需在您的目录中创建一个Python笔记本文件,将以下代码复制粘贴到笔记本单元中,并运行该单元。它将与您的集群建立连接。

创建数据库

下一步是在集群上创建一个数据库。看看您可以如何做:

使用MyScale创建表

在MyScale中创建表的基本语法如下:

关键是ENGINE = engine_type子句,它决定了数据存储和处理方式。您可以指定ORDER BY expression,它决定了数据在表中的物理存储方式。这个PRIMARY KEY expression用于提高数据检索的效率。与传统的SQL数据库不同,ClickHouse中的主键不强制唯一性,而是用作性能优化工具,加速查询处理。

导入表格数据并创建索引

让我们通过导入数据集来亲自体验,并了解如何为数据集创建一列。

将数据插入到定义的表中

在表创建过程之后,下一步是将数据插入表中。因此,我们将插入之前下载的数据。

创建向量索引

下一步是创建一个向量索引。让我们看看如何做到这一点。

MSTG向量索引是由MyScale内部创建的,并且在速度、准确性和成本效益方面远远超过竞争对手。

为了检查向量索引是否创建成功,我们将尝试以下命令:

使用MyScale编写不同类型的SQL查询

MyScale允许您编写各种查询,从基本查询到复杂查询。让我们从一个非常基本的查询开始。

这将打印给定条目的前10个最近邻。

使用MyScale编写自然语言查询

您还可以使用自然语言查询对MyScale进行查询,但是为此,我们将创建另一个具有来自神经网络的特征的新数据的表。

在创建表之前,让我们加载数据。原始文件可以在此处下载(打开新窗口)。

MyScale引领SQL向量数据库的潮流

MyScale在SQL向量数据库市场上表现出色,具有无与伦比的准确性性能成本效益。它胜过诸如pgvector之类的集成向量数据库和Pinecone之类的专用向量数据库,在搜索准确性和更快的查询处理方面具有明显优势,并以较低的成本提供服务。除性能之外,SQL界面对开发人员非常友好,以最小的必要学习成本提供最大的价值。

MyScale确实提升了游戏水平。它不仅仅是通过向量实现更好的搜索;它在涉及复杂元数据过滤器的情况下,提供了高准确度和查询每秒(QPS)。此外,这是最重要的:如果您注册,您可以免费使用S1 pod,该pod可以处理多达500万个向量。对于任何需要强大而又具有成本效益的向量数据库解决方案的人来说,这都是首选。

MyScale通过与AI集成使应用程序更强大

MyScale增强了其功能,并通过与AI技术的集成使您能够创建更强大的应用程序。让我们看看其中一些集成,您可以通过这些集成来改进您的MyScale应用程序。

与LangChain集成

在当今世界,AI应用的用例日益增多,仅仅将LLMs与数据库组合起来就无法创建强大的AI应用程序。您将不得不使用不同的框架和工具来开发更好的应用程序。在这方面,MyScale提供了与LangChain的完全集成(打开新窗口),使您能够使用先进的检索策略创建更有效和可靠的AI应用程序。 MyScale的自我查询检索器(打开新窗口)实现了一种灵活而强大的方法,将文本转换为经过元数据过滤的向量查询,在许多实际场景中实现了高准确度。

与OpenAI的集成

通过将MyScale与OpenAI集成,您可以显著提高AI应用的准确性和鲁棒性。OpenAI允许您获得最佳的嵌入向量,保持上下文和语义。当您使用自然语言查询进行向量搜索或从数据中提取嵌入向量时,这非常重要。这是您提高应用程序的精确性和准确性的方法。要详细了解,请阅读我们的与OpenAI的集成(新窗口打开)文档。

最近,OpenAI发布了GPTs,允许开发人员轻松定制GPTs和聊天机器人。MyScale适应了这一转变,通过无缝地将服务器端上下文注入到GPT模型中,改变了RAG系统的发展方式。MyScale通过结构化数据过滤和SQL WHERE子句的语义搜索优化了上下文注入流程,以更经济高效的方式优化知识库存储,并实现在GPTs之间共享。欢迎您在GPT Store上尝试MyScaleGPT,或者使用MyScale将您的知识库与GPTs集成

结论

随着AI和机器学习应用的增长,对像MyScale这样专为现代AI应用设计的数据库的需求正在迅速增加。MyScale是一个最新的SQL向量数据库,将传统数据库的速度和功能与最先进的向量搜索能力相结合。这种组合非常适合提升AI应用。

最重要的是,由于MyScale与SQL语法的完全兼容,任何熟悉SQL的开发人员都可以快速上手MyScale。此外,MyScale的成本明显低于其他类型的向量数据库。(新窗口打开)这使得MyScale成为企业管理大量数据的理想选择,因为它提供了利用熟悉且强大的SQL构建生产级GenAI应用程序的明显优势。如果您希望及时了解MyScale的最新信息,欢迎您加入我们的Discord或关注我们的Twitter