Interrogation des tables catalogue - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Interrogation des tables catalogue

En général, vous pouvez joindre des tables et des vues du catalogue (relations dont les noms commencent par PG_) à des tables et des vues Amazon Redshift.

Les tables du catalogue utilisent un certain nombre de types de données non pris en charge par Amazon Redshift. Les types de données suivants sont pris en charge lorsque des requêtes joignent des tables de catalogue à des tables Amazon Redshift :

  • bool

  • "char"

  • float4

  • int2

  • int4

  • int8

  • name

  • oid

  • text

  • varchar

Si vous écrivez une requête de jointure qui fait référence explicitement ou implicitement à une colonne avec un type de données non pris en charge, la requête renvoie une erreur. Les SQL fonctions utilisées dans certaines tables du catalogue ne sont pas non plus prises en charge, à l'exception de celles utilisées par les tables PG_ SETTINGS et LOCKS PG_.

Par exemple, la STATS table PG_ ne peut pas être interrogée dans une jointure avec une table Amazon Redshift en raison de fonctions non prises en charge.

Les tables et vues du catalogue suivantes fournissent des informations utiles qui peuvent être jointes à des informations dans les tables Amazon Redshift. Certaines de ces tables autorisent uniquement un accès partiel en raison de restrictions de type de données et de fonction. Lorsque vous interrogez les tables partiellement accessibles, sélectionnez ou faites référence à leurs colonnes avec soin.

Les tables suivantes sont totalement accessibles et ne contiennent pas les types ou fonctions non pris en charge :

Les tables suivantes sont partiellement accessibles et contiennent certains types, fonctions et colonnes de texte tronquées non pris en charge. Les valeurs dans les colonnes de texte sont tronquées en valeurs varchar(256).

Les tables du catalogue qui ne sont pas répertoriées ici sont inaccessibles ou probablement inutiles pour les administrateurs Amazon Redshift. Cependant, vous pouvez interroger librement une table ou une vue du catalogue si votre requête n'implique pas de jointure avec une table Amazon Redshift.

Vous pouvez utiliser les OID colonnes des tables du catalogue Postgres pour joindre des colonnes. Par exemple, la condition de jointure pg_database.oid = stv_tbl_perm.db_id fait correspondre l'ID d'objet de base de données interne pour chaque DATABASE ligne PG_ à la colonne DB_ID visible dans la table STV _ _TBL. PERM Les OID colonnes sont des clés primaires internes qui ne sont pas visibles lorsque vous les sélectionnez dans le tableau. Les vues du catalogue ne comportent pas de OID colonnes.

Certaines fonctions Amazon Redshift ne doivent s'exécuter que sur les nœuds de calcul. Si une requête fait référence à une table créée par l'utilisateur, elle SQL s'exécute sur les nœuds de calcul.

Une requête qui fait référence uniquement aux tables du catalogue (tables avec un préfixe PG, comme PG_ TABLE _DEF) ou qui ne fait référence à aucune table s'exécute exclusivement sur le nœud principal.

Si une requête qui utilise une fonction de nœud de calcul ne fait pas référence à une table définie par un utilisateur ou à une table système Amazon Redshift, elle renvoie l’erreur suivante :

[Amazon](500310) Invalid operation: One or more of the used functions must be applied on at least one user created table.