Utilisation de Cortex Code CLI avec Snowflake Postgres

La capacité Cortex Code CLI Postgres vous permet de poser des questions en langage naturel sur une base de données Postgres et de faire en sorte que Cortex Code génère et exécute du code SQL pour vous. Elle est conçue pour le débogage, l’exploration de schémas et les analyses simplifiées, sans besoin d’écrire à la main chaque requête.

Pour plus d’informations sur l’installation, la configuration de la connexion et l’utilisation générale de Cortex Code CLI, consultez CLI de Cortex Code.

Cette capacité spécifique à Postgres :

  • Aide à créer et gérer les instances Snowflake Postgres.

  • Traduit les questions en langage naturel en SQL Postgres.

  • Exécute le code SQL généré sur une instance Postgres configurée.

  • Renvoie un bref résumé lisible, ainsi que des résultats bruts facultatifs.

  • Peut configurer pg_lake pour le stockage d’objets et le déplacement de données entre Postgres et Snowflake via des zones de préparation Snowflake ou des compartiments S3.

Gestion des connexions

La compétence stocke les connexions à l’aide des fichiers ~/.pg_service.conf et ~/.pgpass natifs de PostgreSQL, les rendant compatibles avec tous les clients PostgreSQL standards (psql, pgAdmin, DBeaver, etc.). Lorsque vous demandez à Cortex Code de créer une instance ou de réinitialiser des identifiants, la connexion est enregistrée automatiquement via pg_connect.py.

Avertissement

N’affichez jamais de contenu .pgpass dans le chat ou les journaux. Utilisez pg_connect.py pour toutes les opérations liées aux identifiants.

Exécution des requêtes

Une fois qu’une connexion est enregistrée, Cortex Code peut exécuter des commandes psql sur vos instances directement depuis le chat. Les mots de passe sont résolus automatiquement à partir de ~/.pgpass. Vous pouvez utiliser des invites en langage naturel :

  • « Affiche-moi toutes les tables sur my_instance »

  • « Exécute SELECT sur la table des commandes pour obtenir les 10 dernières lignes »

  • « Quels index existent sur la table des utilisateurs ? »

Cortex Code traduit ces invites en commandes psql, vérifie que l’instance est prête (reprise automatique si suspendue), exécute la requête et présente les résultats.

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 n’exécute pas d’opérations d’écriture (INSERT, UPDATE, DELETE, DROP, TRUNCATE), sauf si vous le lui demandez explicitement. Les opérations d’écriture nécessitent une confirmation avant d’être autorisées.

Contrôles de santé Postgres

pg_doctor est un outil de diagnostic en lecture seule qui exécute des contrôles de santé sur une instance Postgres avec un délai d’instruction de 30 secondes.

Contrôle

Description

Seuils

cache_hit

Taux de réussite du cache des tables et des index

Réussite : > = 99 %/Avertissement : 95-99 %/Échec : < 95 %

bloat

Estimation du chargement des tables et des index

Réussite : < 30% / Warn: 30-50% / Fail: > 50 %

vacuum_stats

Lignes inactives et état du vidage automatique

Avertissement si les tables ont besoin d’être vidées

connections

Nombre de connexions par rôle

À titre informatif

locks

Verrous exclusifs présents

Avertissement si des verrous sont présents

blocking

Requêtes bloquées

Échec si des requêtes sont bloquées

long_running

Requêtes s’exécutant plus de 5 minutes

Avertissement s’il y en a

outliers

Requêtes les plus lentes (nécessite pg_stat_statements)

À titre informatif

unused_indexes

Index jamais analysés

Avertissement s’il y en a

table_sizes

Répartition de la taille des tables (total, index, TOAST)

À titre informatif

Après avoir présenté les résultats, Cortex Code explique les contrôles signalés et propose une enquête plus approfondie. Toute action de remédiation (VACUUM, REINDEX, etc.) nécessite une confirmation explicite avant exécution.

Configuration de pg_lake

pg_lake est une extension PostgreSQL qui permet le stockage d’objets et le déplacement de données S3 sur des instances Snowflake Postgres. Pour plus de détails sur l’extension elle-même, consultez Configuration du stockage S3 pour pg_lake.

La compétence Cortex Code aide à la configuration multi-systèmes (SQL Snowflake, AWS IAM, SQL Postgres) pour les zones de préparation Snowflake et les compartiments S3 gérés en dehors de Snowflake. Vous pouvez demander à Cortex Code de vous guider à travers la configuration de manière interactive :

  • « Configure pg_lake sur my_instance avec s3://my-bucket/data/ »

  • « Configure pg_lake avec une zone de préparation gérée par Snowflake sur my_instance »

Étapes d’approbation

Cortex Code nécessite une confirmation avant d’exécuter des opérations qui sont facturables, irréversibles ou sensibles sur le plan de la sécurité.

Fonctionnement

Raison

Création/suspension d’une instance

Ressource facturable ou perte de connexions actives

Modifications d’une politique réseau

Modification du contrôle d’accès

Création/modification d’une intégration de stockage

Ressources Cloud, nécessite ACCOUNTADMIN

Mise à jour d’une politique de confiance AWS

Modification des autorisations IAM

Opérations de suppression/de destruction

Perte permanente de données

Écriture d’opérations à partir de diagnostics

VACUUM, REINDEX, pg_terminate_backend, etc.

Les opérations en lecture seule (SHOW, DESCRIBE, contrôles de santé, requêtes SELECT) ne nécessitent pas d’approbation.