使用 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 命令,检查实例是否已准备就绪(如果暂停,则自动恢复),执行查询并显示结果。
Cortex Code 不执行写入操作(INSERT、UPDATE、DELETE、DROP、TRUNCATE),除非您明确询问。写入操作需要确认后才能继续。
Postgres 运行状况检查¶
pg_doctor 是一种只读诊断工具,可对 Postgres 实例运行状况检查,语句超时时间为 30 秒。
检查 |
描述 |
阈值 |
|---|---|---|
|
索引和表缓存命中率 |
通过:>= 99% / 警告:95-99% / 失败:< 95% |
|
表和索引膨胀估算 |
通过:< 30% / Warn: 30-50% / Fail: > 50% |
|
死行和自动清理状态 |
如果表需要清理,则发出警告 |
|
每个角色的连接数 |
信息化 |
|
持有的独占锁 |
如果存在锁,则发出警告 |
|
阻止的查询 |
如果查询被阻止,则失败 |
|
运行时间超过 5 分钟的查询 |
如果发现,则发出警告 |
|
最慢的查询(需要 |
信息化 |
|
从未扫描过的索引 |
如果发现任何内容,则发出警告 |
|
表大小细分(总计、索引、Toast) |
信息化 |
在显示结果后,Cortex Code 会解释标记的检查并提供进一步调查。任何补救措施(VACUUM、REINDEX 等)需要在执行前明确确认。
设置 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 在执行可计费、破坏性或安全敏感的操作之前需要确认。
操作 |
原因 |
|---|---|
创建/暂停实例 |
可计费资源或删除活动连接 |
网络策略变更 |
修改访问控制 |
创建/修改存储集成 |
云资源,需要 |
更新 AWS 信任策略 |
修改 IAM 权限 |
删除/破坏性操作 |
数据永久丢失 |
通过诊断执行写入操作 |
|
只读操作(SHOW、DESCRIBE、运行状况检查、SELECT 查询)不需要审批。