2016-06-06 14 views
0

Ich bin neu bei RedShift. Unten ist mein Prozessablauf:Postgres RDS-Schema nach Redshift kopieren

  1. CSV Erstellen Sie Kopien meiner Datenbank (Postgres RDS) Tabellen in S3.
  2. Erstellen Sie einige Staging-Tabellen (für ETL-Zwecke) in RedShift mit "Tabelle erstellen" von SQL-Client verbunden mit Rotverschiebung.
  3. Verschieben von Daten von S3 zu RedShift mit dem Befehl Kopieren.

Problem:

Meine Staging-Tabelle (die mit anderen Importiertabellen nach ETL-Prozess fallen gelassen wird) hat gleiche Schema wie Quelltabelle von RDS. Aber jedes Mal, wenn ich eine neue Staging-Tabelle erstelle, muss ich einen langen "create table" -Befehl schreiben und es wird frustrierend, wenn ich einen Tisch mit 100 Features habe. Gibt es eine einfache Methode, das Schema zu kopieren? oder Muss ich etwas mit meinem aktuellen Prozess ändern, um dies zu vereinfachen?

Antwort

1

Wir verwenden Redshift 'CREATE TABLE LIKE' Befehl. Es sieht so aus: create table staging_table (like current_table);. Es hat ein Manko, dass es die Primärschlüssel- und Fremdschlüsselattribute current_table nicht erbt, aber wir sind in Ordnung, damit zu leben.

Blick in der Dokumentation für weitere Informationen: http://docs.aws.amazon.com/redshift/latest/dg/performing-a-deep-copy.html

+0

Vielen Dank für Ihre Antwort. Also meine aktuelle Tabelle wäre CSV-Tabelle in S3? –

+0

aktuelle Tabelle wird eine Redshift-Tabelle sein –

+0

Erstellen Sie Ihre Redshift-Tabellen einmal, und verwenden Sie dann "create table like" nach dem –

Verwandte Themen