Obtenir un schéma de table en Redshift
Bonjour, je suis en train de récupérer le schéma d'une table existante. Je suis mysql développeur et suis en train de travailler avec amazon redshift. Comment puis-je exporter le schéma d'une table existante. Dans mysql, nous pouvons utiliser le show de la commande create table.
SHOW CREATE TABLE tblName;
OriginalL'auteur user3277217 | 2014-04-30
Vous devez vous connecter pour publier un commentaire.
Si vous voulez obtenir la structure de la table avec instruction de création, des contraintes et des déclencheurs, vous pouvez utiliser l'utilitaire pg_dump
Ce sera la sortie de la créer syntaxe avec toutes les contraintes. Espérons que cela vous aidera.
-d
drapeau a disparu depg_dump
, et la base de données est régulièrement l'argument de ligne de commande. Qui est:pg_dump -U user_name -s -t table_name db_name
.pg_dump ne comprendront pas d'info sur sortkeys, distkeys, diststyle, de colonne ou de codages si
OriginalL'auteur Anant
Cette requête va vous donner le schéma complet de la définition, y compris le Décalage vers le rouge des attributs spécifiques au type de distribution de clé, clé de tri, clé primaire, et la colonne des codages dans la forme d'une instruction de création ainsi que de fournir une instruction alter table qui définit le propriétaire du propriétaire actuel. La seule chose qu'il ne peut pas vous dire sont des clés étrangères. Je suis en train de travailler sur ce dernier, mais il est actuellement question du privilège de la RS qui nous empêche d'interroger les tables de droite. Cette requête pourrait utiliser un peu de tuning, mais je n'ai pas eu le temps ou le besoin de travailler davantage.
OriginalL'auteur mike_pdb
Récemment, j'ai écrit un script python pour cloner des schémas de table entre le décalage vers le rouge des clusters. Si vous souhaitez uniquement les colonnes et les types de colonne d'un tableau, vous pouvez le faire via:
Mais si vous avez besoin de les types de compression et distkey/sortkeys, vous avez besoin d'interroger une autre table:
OriginalL'auteur ciphor
Je n'ai pas trouvé de solutions complètes.
Et a écrit un script python:
https://github.com/cxmcc/redshift_show_create_table
Il fonctionnera comme pg_dump, plus de base redshift fonctionnalités, SORTKEY/DISTKEY/DISTSTYLES etc.
OriginalL'auteur cxmcc
Dans Postgres, vous souhaitez interroger le catalogue.
De avec
psql
utiliser les abréviations à une variété de commandes dont la liste que vous aurez obtenir en utilisant\?
(de l'aide). À cet effet, soit de:Pour une utilisation dans une application, vous aurez besoin d'apprendre les les questions en cause. C'est relativement simple en exécutant
psql -E
(pour echo caché requêtes) au lieu de la plainepsql
.Si vous avez besoin précis de l'instruction create table, voir @Anant réponse.
OriginalL'auteur Denis de Bernardy
Comme le montrent le tableau ne fonctionne pas sur Redshift:
Nous pouvons utiliser pg_table_def tableau pour obtenir le schéma:
REMARQUE: Si le schéma n'est pas sur le chemin de la recherche, de l'ajouter à chemin de recherche à l'aide de:
OriginalL'auteur Navjot Bhardwaj
Sont que vous avez besoin de récupérer par programmation ou de la psql invite?
Dans psql utilisation : \d+ tablename
Par programmation, vous pouvez interroger la norme ANSI INFORMATION_SCHEMA points de vue documenté ici:
La INFORMATION_SCHEMA.Des TABLES et des INFORMATION_SCHEMA.Des COLONNES de points de vue devraient avoir ce dont vous avez besoin.
OriginalL'auteur codenheim
Un moyen facile de faire cela est d'utiliser l'utilitaire fourni par AWS. Tout ce que vous devez faire est de créer la vue dans votre base de données, puis de requête pour obtenir une table ddl. L'avantage d'utiliser ce point de vue est qu'il vous donne la sortkey et distkey ainsi utilisé dans l'original de la commande create table.
https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_tbl_ddl.sql
Une fois que la vue est créé, pour obtenir le ddl d'une table. Vous avez besoin d'interroger ce
Note: Admin schéma peut ne pas être déjà dans votre cluster. Ainsi, vous pouvez créer ce point de vue dans le schéma public.
OriginalL'auteur Aashish Ola
Vous pouvez utiliser admin view fournies par AWS Redshift - https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_tbl_ddl.sql
une fois que vous avez créé le point de vue, vous pouvez obtenir de création du schéma de script en cours d'exécution:
OriginalL'auteur LiriB
La commande ci-dessous:
OriginalL'auteur user2086435