使用 Cortex Code CLI 与 Snowflake Postgres

Cortex Code CLI Postgres 技能可让您询问有关 Postgres 数据库的自然语言问题,并让 Cortex Code 为您生成并运行 SQL。它专为调试、架构探索和轻量级分析而设计,无需手写每个查询。

有关安装、连接设置和常规 Cortex Code CLI 用法,请参阅 Cortex Code CLI

此 Postgres 特定技能:

  • 帮助创建和管理 Snowflake Postgres 实例。

  • 将自然语言问题转换为 Postgres SQL。

  • 针对已配置的 Postgres 实例执行生成的 SQL。

  • 返回简短、可读的摘要以及可选的原始结果。

  • 可以配置 pg_lake,用于对象存储以及通过 Snowflake 暂存区或 S3 桶在 Postgres 和 Snowflake 之间进行数据移动。

管理连接

该技能使用 PostgreSQL 的原生 ~/.pg_service.conf~/.pgpass 文件来存储连接信息,使其与所有标准 PostgreSQL 客户端(psql、pgAdmin、DBeaver 等)兼容。当您要求 Cortex Code 创建实例或重置凭据时,连接会通过 pg_connect.py 自动保存。

警告

从不显示聊天或日志中的 .pgpass 内容。使用 pg_connect.py 进行所有凭据操作。

运行查询

保存连接后,Cortex Code 可以直接在聊天中对实例运行 psql 命令。密码会自动从 ~/.pgpass 中解析。您可以使用自然语言提示:

  • “显示 my_instance 上的所有表”

  • “在订单表上运行 SELECT 获取最后 10 行”

  • “用户表上存在哪些索引?”

Cortex Code 将这些转换为 psql 命令,检查实例是否已准备就绪(如果暂停,则自动恢复),执行查询并显示结果。

You:          How many orders were placed this month?
Cortex Code:  Running: psql "service=my_instance" -c \
         "SELECT count(*) FROM orders
          WHERE created >= date_trunc('month', current_date);"

         count
        -------
           142

Cortex Code 不执行写入操作(INSERTUPDATEDELETEDROPTRUNCATE),除非您明确询问。写入操作需要确认后才能继续。

Postgres 运行状况检查

pg_doctor 是一种只读诊断工具,可对 Postgres 实例运行状况检查,语句超时时间为 30 秒。

检查

描述

阈值

cache_hit

索引和表缓存命中率

通过:>= 99% / 警告:95-99% / 失败:< 95%

bloat

表和索引膨胀估算

通过:< 30% / Warn: 30-50% / Fail: > 50%

vacuum_stats

死行和自动清理状态

如果表需要清理,则发出警告

connections

每个角色的连接数

信息化

locks

持有的独占锁

如果存在锁,则发出警告

blocking

阻止的查询

如果查询被阻止,则失败

long_running

运行时间超过 5 分钟的查询

如果发现,则发出警告

outliers

最慢的查询(需要 pg_stat_statements

信息化

unused_indexes

从未扫描过的索引

如果发现任何内容,则发出警告

table_sizes

表大小细分(总计、索引、Toast)

信息化

在显示结果后,Cortex Code 会解释标记的检查并提供进一步调查。任何补救措施(VACUUMREINDEX 等)需要在执行前明确确认。

设置 pg_lake

pg_lake 是 PostgreSQL 扩展,可在 Snowflake Postgres 实例上启用对象存储和 S3 数据移动。有关扩展本身的详细信息,请参阅 为 pg_lake 配置 S3 存储

Cortex Code 技能可协助多系统设置(Snowflake SQL、AWS IAM、Postgres SQL),适用于在 Snowflake 外部管理的 Snowflake 暂存区和 S3 桶。您可以要求 Cortex Code 以交互方式引导您完成设置:

  • “使用 s3://my-bucket/data/ 在 my_instance 上设置 pg_lake”

  • “在 my_instance 上使用 Snowflake 管理的暂存区配置 pg_lake”

审批关卡

Cortex Code 在执行可计费、破坏性或安全敏感的操作之前需要确认。

操作

原因

创建/暂停实例

可计费资源或删除活动连接

网络策略变更

修改访问控制

创建/修改存储集成

云资源,需要 ACCOUNTADMIN

更新 AWS 信任策略

修改 IAM 权限

删除/破坏性操作

数据永久丢失

通过诊断执行写入操作

VACUUMREINDEXpg_terminate_backend

只读操作(SHOWDESCRIBE、运行状况检查、SELECT 查询)不需要审批。