标题: “数据库和知识加载器” 权重: 33
在本节中,我们将配置 petstore
数据库并将必要的文件上传到 S3 以供知识库使用。此过程由 dataloader.sh
脚本自动化,我们将在之前步骤中连接的堡垒主机上运行该脚本。
访问堡垒主机:
执行设置脚本:
dataloader.sh
脚本
./dataloader.sh
# 将 dataloader.sh 下载到 ec2-user 的主目录
cd /home/ec2-user
sudo wget https://ws-assets-prod-iad-r-pdx-f3b3f9f1a7d6a3d0.s3.us-west-2.amazonaws.com/4b5336de-e5b8-4b90-b1d8-dec31125cd95/dataloader.sh
sudo chmod +x dataloader.sh
脚本功能:
dataloader.sh
脚本自动执行以下设置任务:
petstore
数据库。ddl.sql
) 以创建必要的表和关系。data.sql
将初始数据插入 petstore
数据库。Pet_Store_QnA_data.csv
上传到 Q&A 知识库 S3 存储桶,供知识库代理进行基于知识的查询使用。ddl.txt
上传到 DB 知识库 S3 存储桶,供查询代理参考数据库模式。提示输入:
postgres
用户的数据库密码。请确保我们准备好此信息,默认密码为 petstoremaster。验证设置:
petstore
数据库已在我们的 RDS 实例中创建,并且表和数据已填充。我们将使用 CloudShell 中内置的 psql 工具来验证:# 获取具有特定描述的堆栈信息
export STACK_DETAILS=$(aws cloudformation describe-stacks --query "Stacks[*]" --output json | jq -r '.[] | select(.Description == "Agentic AI with Bedrock Agents workshop")')
# 从堆栈详细信息中提取堆栈名称
export STACK_NAME=$(echo "$STACK_DETAILS" | jq -r '.StackName')
export DB_ENDPOINT=$(aws cloudformation describe-stacks --stack-name "$STACK_NAME" --query "Stacks[0].Outputs[?OutputKey=='DBClusterEndpoint'].OutputValue" --output text)
## 使用 psql 连接到 PostgreSQL
psql --host=$DB_ENDPOINT \
--port=5432 \
--username=postgres \
--password \
--dbname=petstore
-- 显示表中的数据:
SELECT * FROM public.address;
SELECT * FROM public.category;
SELECT * FROM public.customer;
SELECT * FROM public."order";
SELECT * FROM public.pet;
SELECT * FROM public.pettag;
SELECT * FROM public.tag;
SELECT * FROM public."user";
Pet_Store_QnA_data.csv
和 ddl.txt
也已上传到各自的 S3 存储桶,要验证,请运行以下 AWS CLI 命令:# 提取 Q&A S3 存储桶名称(用于 Pet_Store_QnA_data.csv)
QNA_BUCKET=$(aws cloudformation describe-stacks --stack-name "$STACK_NAME" \
--query "Stacks[0].Outputs[?OutputKey=='PetStoreQAKBBucket'].OutputValue" --output text)
# 提取 DB S3 存储桶名称(用于 ddl.txt)
DB_BUCKET=$(aws cloudformation describe-stacks --stack-name "$STACK_NAME" \
--query "Stacks[0].Outputs[?OutputKey=='PetStoreDBKBBucket'].OutputValue" --output text)
# 验证 Q&A 存储桶中的 Pet_Store_QnA_data.csv
aws s3 ls s3://$QNA_BUCKET/ --recursive | grep Pet_Store_QnA_data.csv
# 验证 DB 存储桶中的 ddl.txt
aws s3 ls s3://$DB_BUCKET/ --recursive | grep ddl.txt
运行 dataloader.sh
后,我们的数据库和知识库源将完全设置好,可用于本次研讨会。