• 热门
  • 基础
  • 数据库
  • 安全
  • 大数据
  • 人工智能
  • 混合云
  • 开发与运维
  • 企业应用

应用服务

行业引擎

全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

快速入门

最近更新时间:2024-11-26 20:31:12

连接至数据库

如需使用第三方客户端工具,对数据库中的数据或数据库对象进行管理,你需要先连接到数据库。

本章节以 psql 为例说明如何连接至 Relyt 数据库。

前提条件

环境中存在至少一个向量版数仓服务单元。

  • 执行向量分析该数仓服务单元中存在至少一个数据库。

  • 已获取对应账号的用户名和密码,且该账号拥有目标数据库的 CONNECT 权限。

步骤 1. 安装 psql

本节分别介绍如何在 Windows、Linux、Mac 系统上安装 psql 工具,请根据实际情况选择恰当的安装方式。

如环境中已安装 psql,可跳过此步骤。

Windows 安装

  1. PostgreSQL 官网下载对应版本的安装包。

  2. 双击下载的安装程序,按照提示完成安装。

在安装过程中,确保选择安装 psql 工具。

  1. 安装完成后,选择 系统属性 > 高级 > 环境变量

  2. 系统变量 中找到 Path,并添加 PostgreSQL 的 bin 目录路径(例如:C:\Program Files\PostgreSQL\13\bin)。

  3. 打开命令提示符 cmd,输入 psql --version,如果显示版本信息,则安装成功。

Linux 安装

  1. 使用包管理器安装:

    a. 对于 Debian/Ubuntu 系统:

sudo apt update
sudo apt install postgresql postgresql-contrib

b. 对于 CentOS/RHEL 系统:

sudo yum install postgresql-server postgresql-contrib
  1. 打开终端,输入 psql --version,如果显示版本信息,则安装成功。

MacOS 安装

本节介绍如何通过 Homebrew 进行安装,你也可以采用其他方式完成安装。

  1. 安装 Homebrew。如系统中已完成 Homebrew 安装,请跳过此步骤。

 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 使用 Homebrew 安装 PostgreSQL:

brew update
brew install postgresql
  1. 打开终端,输入 psql --version,如果显示版本信息,则安装成功。

步骤 2. 连接数据库

执行以下命令连接到 Relyt 数据库。

psql -h <endpoint_domain> -p <endpoint_port> -U <dw_user_name> -d <db_name>

参数说明:

参数

描述

endpoint_domain

数仓服务单元的公共端点。

endpoint_port

数仓服务单元的端口号,默认为 5432

dw_user_name

用于登录数仓服务单元的数仓用户名。

db_name

连接的 Relyt 数据库名称。

导入数据

本节介绍如何在向量数据库中导入数据

前提条件

  • 环境中存在至少一个向量版数仓服务单元。

  • 已获取对应账号的用户名和密码。

数据准备

本文使用如下测试数据集作为示例:

你可以通过命令行进行下载:

使用 wget 下载:

wget https://commontestdata.ks3-cn-beijing.ksyuncs.com/quickstart/glove-25-angular-train.csv

使用 curl 下载:

curl -O https://commontestdata.ks3-cn-beijing.ksyuncs.com/quickstart/glove-25-angular-train.csv

测试数据表结构说明:

字段

数据类型

说明

id

varchar

编号。

vector

float16[]

特征向量数据

post_publish_time

timestamp

数据更新时间。

步骤 1. 创建数据库、表和索引

Relyt 支持通过控制台进行数据库表和索引的创建,也支持通过其它兼容的客户端工具进行操作。如通过 psql 等客户端工具,请确保已 连接至 Relyt 数据库。

通过控制台创建

创建数据库

  1. 登录目标数仓服务单元控制台。

  2. 在左侧导航栏中,选择 数据库,点击页面右上角的 + 数据库

  1. 输入数据库名称和描述(可选)。

此处以 testdb 为例。

创建 Schema 和表

  1. 在左侧树上选择 testdb,选择 + Schema,输入 Schema 名称和描述(可选)。

本文以 vector_test 为例。

  1. 进入 vector_test Schema,点击 + 创建 >

  1. 在打开的工作簿中,输入 CREATE TABLE 语句。

CREATE TABLE test_tbl
(
    id                  VARCHAR,
    vector              vecf16(25),
    post_publish_time   TIMESTAMP
)
DISTRIBUTED BY(id);  
  1. 在 SQL 编辑器中,选中对应 CREATE TABLE 语句,点击右上角的 运行 按钮。

创建索引

  1. 在左侧导航栏中,选择 工作簿,点击 + 工作簿

  2. 在打开的工作簿的编辑器的左上角,将数据库和 Schema 分别选择为 testdbvector_test

  3. 在 SQL 编辑器中,输入如下 SQL 语句:

-- 修改向量列的存储格式为 PLAIN
ALTER TABLE vector_test.test_tbl ALTER COLUMN vector SET STORAGE PLAIN;

-- 创建向量索引
CREATE INDEX test_vector_idx ON vector_test.test_tbl USING vectors (vector vecf16_l2_ops);
  1. 选中上述语句,点击右上角的 运行 按钮。

通过客户端工具创建

  1. 执行如下命令创建名为 testdb 的数据库,并连接至该数据库。

-- 创建一个名为 testdb 的数据库
CREATE DATABASE testdb;

-- 连接至该数据库
\c testdb
  1. 执行如下命令创建名为 vector_test 的 Schema 和名为 test_tbl 的表。

CREATE SCHEMA IF NOT EXISTS vector_test;
CREATE TABLE test_tbl
(
    id                  VARCHAR,
    vector              vecf16(25),
    post_publish_time   TIMESTAMP
)
DISTRIBUTED BY(id);
  1. 执行如下命令,为表 test_tbl 创建索引。

-- 修改向量列的存储格式为 PLAIN
ALTER TABLE vector_test.test_tbl ALTER COLUMN vector SET STORAGE PLAIN;

-- 创建向量索引
CREATE INDEX test_vector_idx ON vector_test.test_tbl USING vectors (vector vecf16_l2_ops);

步骤 2. 导入数据

本文以使用 psql 的 \copy 命令为例。

  1. 连接 psql 至 testdb 数据库。关于如何连接 psql 至 Relyt 数据库,参考连接至数据库。

2. 执行如下命令:

\copy test_tbl from '/<save_directory>/glove-25-angular-train.csv' WITH CSV DELIMITER '|';

请将示例中的 <save_directory> 替换为测试数据实际所在的存储目录。例如,测试数据下载到了 /home 目录下,那么此处应该为 /home/glove-25-angular-train.csv

导入完成后,系统会返回 COPY 295879(表示本次共拷贝了 295879 条数据)。

执行向量分析

本文旨在指导新手用户快速上手向量分析。

前提条件

  • 环境中存在向量版数仓服务单元,且数仓服务单元中已有数据库。

  • 目标数据库中已存在目标表和数据。关于如何在数据库中导入数据,参考本文“导入数据”部分。

向量分析示例

下述查询以获取欧氏距离(平方)为例。

Q1: 查询所有向量中离目标向量最近的 10 个向量

SELECT id,
vector <-> '[0.6377800107002258,0.9509999752044678,0.9408400058746338,-0.5509499907493591,0.06180400028824806,-1.6734999418258667,-0.5704600214958191,-1.5750000476837158,0.5274199843406677,-0.3642300069332123,0.5622000098228455,0.009283199906349182,0.391759991645813,0.46647000312805176,-0.7589899897575378,0.3084399998188019,0.4611699879169464,0.30028998851776123,1.5491000413894653,1.2386000156402588,-0.7254599928855896,1.7488000392913818,0.4075799882411957,-1.96589994430542,0.05322200059890747]'
AS dist FROM test_tbl ORDER BY dist LIMIT 10;

如使用控制台工作簿执行该命令,返回结果如下图所示:

Q2:查询 8 月 8 号到 15 号区间内,由公式 dist \* 10 为算法计算相似度,获得相似度大于 67,最相似的 20 条数据

SELECT b.* FROM (SELECT a.id, a.dist * 10 AS similarity FROM
(SELECT id,
vector <-> '[0.6377800107002258,0.9509999752044678,0.9408400058746338,-0.5509499907493591,0.06180400028824806,-1.6734999418258667,-0.5704600214958191,-1.5750000476837158,0.5274199843406677,-0.3642300069332123,0.5622000098228455,0.009283199906349182,0.391759991645813,0.46647000312805176,-0.7589899897575378,0.3084399998188019,0.4611699879169464,0.30028998851776123,1.5491000413894653,1.2386000156402588,-0.7254599928855896,1.7488000392913818,0.4075799882411957,-1.96589994430542,0.05322200059890747]'
AS dist FROM test_tbl
WHERE post_publish_time >= '2024-08-08 00:00:00'
AND post_publish_time <= '2024-8-15 10:52:00'
ORDER BY dist ASC LIMIT 5000) AS a) AS b  WHERE b.similarity > 67  offset 0 LIMIT 20;

如使用控制台工作簿执行该命令,返回结果如下图所示:

纯净模式常规模式

纯净模式

点击可全屏预览文档内容

鼠标选中内容,快速反馈问题

如果在文档使用中出现问题,可选中有问题的部分进行快速反馈,我们将跟进处理。
不再提示
好的,我知道了

聆听反馈