尝试使用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时点的信息。
这个问题
开始使用的步骤
-
- 创建实例
-
- 选择数据库引擎和初始配置
-
- 进行网络设置并进行连接
-
- 确认网络安全选项,如Cloud SQL Proxy等。然后连接到云服务或本地机器。
-
- 仅设置私有IP地址
导入数据
从Cloud Storage导入或使用数据库迁移。
本次不进行数据导入。
我会料理的!
-
- 创建实例
-
- 点击”创建实例”按钮。
- 根据日语文档,可用版本如下。
另外,各个版本的使用开始日期如下:
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
-
- インスタンスID
-
- 管理ユーザ postgres のパスワード
-
- データベースのバージョン
- を設定します
这一次因为担心会有支付费用,所以选择了Enterprise版本,并且选择了沙盒预设。
虽然日本一直都很昂贵,但由于日元贬值,更加感到昂贵了一把。
嗯~虽然说是沙盒,但每天要花大约650日元。
拖拖拉拉弄一个星期的话,就要4450日元了。个人负担太高了呢。
点击创建实例按钮
进行部署
这些文件是可用于扩展功能的。
可以从中确认
其他的扩展功能 de
我在这里! pgVector !!!
似乎可以使用0.5.0版本。
尝一尝吧!味道如何?(连接确认)
Cloud SQL的私有IP和公共IP有何区别?
在这个验证期间内,我没能找到官方文件。
-
- パブリックIPは、外部アクセスできる(グローバルIPをマッピングできる)VPC内のIPアドレス
- プライベートIPは、プロジェクト内に定義されるVPCとは別のGoogle Cloud が管理するVPC内のIPアドレス
好像是这样
确认环境建设。
本次连接确认中,将在项目内的VPC中创建一个GCE实例进行确认。
为了能够通过私有IP访问CloudSQL,需要在VPC网络配置中进行VPC网络对等连接和私有服务访问的设置。
当部署完成后,我们将使用浏览器SSH连接服务器,并安装psql客户端。
sudo apt install -y postgresql-client
tail /var/log/apt/history.log
查询psql的版本
psql --version
在事前验证时,psql已经安装好了。
验证工作
psql "host=xx.xx.xx.xx user=postgres"
连接成功!
我会为您加点心(确认补充)
你需要新鲜的东西,对吧。
我对谷歌云博客(2023年7月13日)感到很感兴趣。
在空隙中,我不停地使用谷歌搜索来了解pgVector的身份是什么,尝试使用chatGPT,还向谷歌巴德先生寻求指导,但是完全无法理解…我真的是个笨蛋。
我创建了一个环境,先用复制粘贴方法来执行一下。
虽然也可以用word2vec之类的来创建样本数据,但我想确认一下向量的类型,所以我会用类似的数据来确认。
我使用了jwsan-2145这个资源。
表格定义
CREATE TABLE vitem (
pairid text PRIMARY KEY,
word1 text,
word2 text,
embedding vector(6)
)
只添加一个并尝试搜索,看起来没有特别的问题,所以我会重新创建并全部登记。
尽管有各种错误,但由于其真实性,我将其原样附上。
将测试数据插入。
确认方法如下:
使用心情愉悦且有趣的向量数据,在通过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)
我不太清楚这是否正确。因为我不知道数据准备本身是否正确。
我期望出现与舒适和愉快类似的关键词(这个世界并不那么简单)。
也许在这里指定的值不正确,或者值本身可能太大了。
最后
-
- 環境構築は頻繁に行うものではないので、見ることも少ないと思いますが、提供サービスの変化によりポチる前の確認・検討事項も変化します。
-
- デプロイ直前でやめてしまえば、環境構築時に必要な情報は確認できそうです
- クライアント端末パソコンの性能価格比も向上し、クラウドのインスタンスを起動しなくても、dockerやpostgreSQL WASM で確認が行えるようになっています
我对pgVector的使用方法不太清楚(知识不足)。
是否可以通过降低与云外通信的费用(数据传输成本)来进行向量分析和近似搜索?
当数据量庞大时,进行近似搜索需要机器的规格?
感谢您阅读到最后,如果能对您有一丝帮助就非常荣幸。