尝试使用Google Cloud SQL(支持v15)

本篇是2023年PostgreSQL圣诞日历系列2第11天的文章。

首先

我已经连续第五年参与投稿 PostgreSQL Advent Calendar 了。

今年因为工作非常繁忙,所以无法参加PostgreSQL Unconference,更别提有时间来产出任何东西了。原本打算参加PostgreSQL Conference Japan 2023,但因突发状况出现身体不适,不得不取消计划。身体管理很重要!毕竟我们无法预测未来会发生什么事情。


坚持就是力量。我原本打算在圣诞倒计时日历中发帖,但想得太晚了,已经没有空位了。所以我决定制作第二部,并进行投稿。
今年的话题中,关于AlloyDB AI和pgVector已经有很多人发帖了,所以我决定回归初心,尝试启动Cloud SQL。

请用中文原生态地改述以下内容,只需给出一种选项:

本文章的主题

当您转至Google Cloud控制台的SQL服务菜单时,会显示”开始使用指南”。请按照该指南进行操作。我们将挑选出自上次发布(2020/12/17)以来的差异进行处理。请注意,此文档是截至2023/12/09时点的信息。

这个问题

开始使用的步骤

    1. 创建实例

 

    1. 选择数据库引擎和初始配置

 

    1. 进行网络设置并进行连接

 

    1. 确认网络安全选项,如Cloud SQL Proxy等。然后连接到云服务或本地机器。

 

    1. 仅设置私有IP地址

导入数据
从Cloud Storage导入或使用数据库迁移。
本次不进行数据导入。

我会料理的!

    1. 创建实例

 

    1. 点击”创建实例”按钮。

 

    根据日语文档,可用版本如下。

 

undefined

另外,各个版本的使用开始日期如下:

CloudSQLの利用開始日PostgreSQLのリリース日PostgreSQL 16
2023-09-14PostgreSQL 152023/05/242022-10-13PostgreSQL 142021/11/112021-09-30PostgreSQL 132020/11/052020-09-24PostgreSQL 122020/05/212019-10-03PostgreSQL 112019/09/272018-10-18PostgreSQL 102020/03/272017-10-05PostgreSQL 9.62018/04/012016-09-29
undefined
    • インスタンスID

 

    • 管理ユーザ postgres のパスワード

 

    • データベースのバージョン

 

    を設定します
undefined

这一次因为担心会有支付费用,所以选择了Enterprise版本,并且选择了沙盒预设。

undefined

虽然日本一直都很昂贵,但由于日元贬值,更加感到昂贵了一把。

undefined
undefined

嗯~虽然说是沙盒,但每天要花大约650日元。
拖拖拉拉弄一个星期的话,就要4450日元了。个人负担太高了呢。

点击创建实例按钮
进行部署

这些文件是可用于扩展功能的。

 

可以从中确认

其他的扩展功能 de

 

我在这里! pgVector !!!

似乎可以使用0.5.0版本。

undefined
undefined

尝一尝吧!味道如何?(连接确认)

如果使用私人IP配置的话,无法轻松地从Cloud Shell中使用。

Cloud SQL的私有IP和公共IP有何区别?

在这个验证期间内,我没能找到官方文件。

    • パブリックIPは、外部アクセスできる(グローバルIPをマッピングできる)VPC内のIPアドレス

 

    プライベートIPは、プロジェクト内に定義されるVPCとは別のGoogle Cloud が管理するVPC内のIPアドレス

好像是这样

确认环境建设。

本次连接确认中,将在项目内的VPC中创建一个GCE实例进行确认。

为了能够通过私有IP访问CloudSQL,需要在VPC网络配置中进行VPC网络对等连接和私有服务访问的设置。

スクリーンショット 2023-12-10 114351.png

当部署完成后,我们将使用浏览器SSH连接服务器,并安装psql客户端。

sudo apt install -y postgresql-client
tail /var/log/apt/history.log

查询psql的版本

psql --version
スクリーンショット 2023-12-10 115147.png

在事前验证时,psql已经安装好了。

验证工作

psql "host=xx.xx.xx.xx user=postgres" 
スクリーンショット 2023-12-10 120344.png

连接成功!

我会为您加点心(确认补充)

你需要新鲜的东西,对吧。

我对谷歌云博客(2023年7月13日)感到很感兴趣。

 

在空隙中,我不停地使用谷歌搜索来了解pgVector的身份是什么,尝试使用chatGPT,还向谷歌巴德先生寻求指导,但是完全无法理解…我真的是个笨蛋。

我创建了一个环境,先用复制粘贴方法来执行一下。
虽然也可以用word2vec之类的来创建样本数据,但我想确认一下向量的类型,所以我会用类似的数据来确认。
我使用了jwsan-2145这个资源。

 

表格定义

CREATE TABLE vitem (
    pairid text PRIMARY KEY,
    word1 text,
    word2 text,
    embedding vector(6)
)
スクリーンショット 2023-12-10 130346.png

只添加一个并尝试搜索,看起来没有特别的问题,所以我会重新创建并全部登记。

スクリーンショット 2023-12-10 131902.png

尽管有各种错误,但由于其真实性,我将其原样附上。

将测试数据插入。

确认方法如下:
使用心情愉悦且有趣的向量数据,在通过COS相似度(<=>)进行搜索。

SELECT * FROM vitem WHERE pairid = 'p0107';
 pairid |  word1   | word2  |        embedding        
--------+----------+--------+-------------------------
 p0107  | 心地良い | 楽しい | [3,3.44,4.48,180,130,0]
(1 row)

我收到了结果,看起来运行正常。

postgres=> SELECT *, embedding <-> '[3,3.44,4.48,180,130,0]' as cossim 
FROM vitem
ORDER BY embedding <-> '[3,3.44,4.48,180,130,0]'
LIMIT 5;
 pairid |  word1   |   word2    |        embedding        |       cossim       
--------+----------+------------+-------------------------+--------------------
 p0107  | 心地良い | 楽しい     | [3,3.44,4.48,180,130,0] |                  0
 p0493  | 入れる   | 差し込む   | [2,3.77,4.38,180,130,0] | 1.0577806679290358
 p0152  | 煩い     | 騒々しい   | [3,2.94,3.7,180,130,1]  | 1.3632314066259898
 p0137  | 尊い     | 恐れ多い   | [3,2.67,3.86,180,130,1] | 1.4061650568420978
 p0289  | 交ぜる   | 掻き混ぜる | [2,3.69,4.2,180,130,1]  | 1.4631815113102964
(5 rows)

我不太清楚这是否正确。因为我不知道数据准备本身是否正确。
我期望出现与舒适和愉快类似的关键词(这个世界并不那么简单)。
也许在这里指定的值不正确,或者值本身可能太大了。

undefined

最后

    • 環境構築は頻繁に行うものではないので、見ることも少ないと思いますが、提供サービスの変化によりポチる前の確認・検討事項も変化します。

 

    • デプロイ直前でやめてしまえば、環境構築時に必要な情報は確認できそうです

 

    クライアント端末パソコンの性能価格比も向上し、クラウドのインスタンスを起動しなくても、dockerやpostgreSQL WASM で確認が行えるようになっています

我对pgVector的使用方法不太清楚(知识不足)。

是否可以通过降低与云外通信的费用(数据传输成本)来进行向量分析和近似搜索?
当数据量庞大时,进行近似搜索需要机器的规格?

感谢您阅读到最后,如果能对您有一丝帮助就非常荣幸。

广告
将在 10 秒后关闭
bannerAds