准备开发环境

更新时间:

在创建向量数据库之前,请您先参考本文准备Python环境、安装SDK、配置环境变量和构建客户端。

步骤一:检查Python环境

本教程基于Python3版本的SDK。请执行以下命令,确认是否已安装Python3.9或以上版本,并安装pip。

如未安装或版本不符合要求,请安装Python

python -V
pip --version

步骤二:安装SDK

您需要安装alibabacloud_gpdb20160503alibabacloud_tea_openapiSDK,用于身份认证和构建客户端。本教程使用的SDK版本如下。

pip install alibabacloud_gpdb20160503==3.5.0
pip install alibabacloud_tea_openapi==0.3.8

步骤三:配置环境变量

将身份认证信息、实例ID等敏感信息配置到环境变量,避免硬编码造成的信息泄露。

Linux&macOS

  1. 执行vim ~/.bashrc 命令,打开~/.bashrc 文件。

    macOS系统,请执行vim ~/.bash_profile
  2. 在配置文件中添加以下内容。

    RAM访问控制用户列表页面,单击用户名称,获取RAM用户的AccessKey IDAccessKey Secret。
    云原生数据仓库AnalyticDB PostgreSQL版控制台查看实例ID和地域ID。
    # 用RAM用户的AccessKey ID替换access_key_id
    export ALIBABA_CLOUD_ACCESS_KEY_ID="access_key_id"
    
    # 用RAM用户的AccessKey Secret替换access_key_secret
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET="access_key_secret"
    
    # 用AnalyticDB for PostgreSQL的实例ID替换instance_id,例如gp-bp166cyrtr4p*****
    export ADBPG_INSTANCE_ID="instance_id"
    
    # 用AnalyticDB for PostgreSQL的实例所在地域的地域ID替换instance_region,例如cn-hangzhou
    export ADBPG_INSTANCE_REGION="instance_region"

    vim编辑器中,按下Esc,输入:wq保存并退出编辑器。

  3. 执行source ~/.bashrc 命令,使配置文件生效。

    macOS系统,请执行source ~/.bash_profile

Windows

在当前会话中临时设置环境变量,请在CMD中执行以下命令。

# 用RAM用户的AccessKey ID替换access_key_id
set ALIBABA_CLOUD_ACCESS_KEY_ID=access_key_id

# 用RAM用户的AccessKey Secret替换access_key_secret
set ALIBABA_CLOUD_ACCESS_KEY_SECRET=access_key_secret

# 用AnalyticDB for PostgreSQL的实例ID替换instance_id,例如gp-bp166cyrtr4p*****
set ADBPG_INSTANCE_ID=instance_id

# 用AnalyticDB for PostgreSQL的实例所在地域的地域ID替换instance_region,例如cn-hangzhou
set ADBPG_INSTANCE_REGION=instance_region

步骤四:构建AnalyticDB for PostgreSQL客户端

参考以下代码,构建客户端,用于后续创建向量数据库等操作。

from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_gpdb20160503.client import Client
import os

ALIBABA_CLOUD_ACCESS_KEY_ID = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
ALIBABA_CLOUD_ACCESS_KEY_SECRET = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
ADBPG_INSTANCE_ID = os.environ['ADBPG_INSTANCE_ID']
ADBPG_INSTANCE_REGION = os.environ['ADBPG_INSTANCE_REGION']


def get_client():
    config = open_api_models.Config(
        access_key_id=ALIBABA_CLOUD_ACCESS_KEY_ID,
        access_key_secret=ALIBABA_CLOUD_ACCESS_KEY_SECRET
    )
    config.region_id = ADBPG_INSTANCE_REGION
    # https://api.aliyun.com/product/gpdb
    if ADBPG_INSTANCE_REGION in ("cn-beijing", "cn-hangzhou", "cn-shanghai", "cn-shenzhen", "cn-hongkong",
                                 "ap-southeast-1"):
        config.endpoint = "gpdb.aliyuncs.com"
    else:
        config.endpoint = f'gpdb.{ADBPG_INSTANCE_REGION}.aliyuncs.com'
    return Client(config)