Migrieren Sie einen Amazon Redshift Redshift-Cluster in eine AWS-Region in China - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Migrieren Sie einen Amazon Redshift Redshift-Cluster in eine AWS-Region in China

Erstellt von Jing Yan (AWS)

Übersicht

Dieses Muster bietet einen step-by-step Ansatz zur Migration eines Amazon Redshift Redshift-Clusters aus einer anderen AWS-Region in China.

Dieses Muster verwendet SQL-Befehle, um alle Datenbankobjekte neu zu erstellen, und verwendet den Befehl UNLOAD, um diese Daten von Amazon Redshift in einen Amazon Simple Storage Service (Amazon S3) -Bucket in der Quellregion zu verschieben. Die Daten werden dann in einen S3-Bucket in der AWS-Region in China migriert. Der COPY-Befehl wird verwendet, um Daten aus dem S3-Bucket zu laden und in den Amazon Redshift Redshift-Zielcluster zu übertragen.

Amazon Redshift unterstützt derzeit keine regionsübergreifenden Funktionen wie das Kopieren von Snapshots in AWS-Regionen in China. Dieses Muster bietet eine Möglichkeit, diese Einschränkung zu umgehen. Sie können die Schritte in diesem Muster auch rückgängig machen, um Daten von einer AWS-Region in China in eine andere AWS-Region zu migrieren.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Aktive AWS-Konten sowohl in einer Region China als auch in einer AWS-Region außerhalb China

  • Bestehende Amazon Redshift Redshift-Cluster sowohl in einer Region China als auch in einer AWS-Region außerhalb China

Einschränkungen

  • Dies ist eine Offline-Migration, was bedeutet, dass der Amazon Redshift Redshift-Quellcluster während der Migration keine Schreibvorgänge ausführen kann.

Architektur

Quelltechnologie-Stack

  • Amazon Redshift Redshift-Cluster in einer AWS-Region außerhalb China

Zieltechnologie-Stack

  • Amazon Redshift Redshift-Cluster in einer AWS-Region in China

Zielarchitektur

AWS Cloud architecture showing data flow between Amazon Redshift and S3 buckets across two regions.

Tools

Tools

  • Amazon S3 — Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicherservice, der Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung bietet. Sie können Amazon S3 verwenden, um Daten aus Amazon Redshift zu speichern, und Sie können Daten aus einem S3-Bucket nach Amazon Redshift kopieren.

  • Amazon Redshift — Amazon Redshift ist ein vollständig verwalteter Data-Warehouse-Service im Petabyte-Bereich in der Cloud. 

  • psql — psql ist ein terminalbasiertes Frontend für PostgreSQL. 

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Starten und konfigurieren Sie eine EC2 Instanz in der Quellregion.

Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon Elastic Compute Cloud (Amazon EC2) -Konsole. Ihre aktuelle Region wird in der Navigationsleiste oben auf dem Bildschirm angezeigt. Diese Region kann keine AWS-Region in China sein. Wählen Sie im Dashboard der EC2 Amazon-Konsole „Instanz starten“ und erstellen und konfigurieren Sie eine EC2 Instance. Wichtig: Stellen Sie sicher, dass Ihre EC2 Sicherheitsgruppen für eingehende Nachrichten uneingeschränkten Zugriff auf den TCP-Port 22 von Ihrem Quellcomputer aus zulassen. Anweisungen zum Starten und Konfigurieren einer EC2 Instanz finden Sie im Abschnitt „Verwandte Ressourcen“.

DBA, Entwickler

Installieren Sie das PSQL-Tool.

Downloaden und installieren Sie PostgreSQL. Amazon Redshift stellt das psql-Tool nicht bereit, es wird mit PostgreSQL installiert. Weitere Informationen zur Verwendung von psql und zur Installation von PostgreSQL-Tools finden Sie im Abschnitt „Verwandte Ressourcen“.

DBA

Notieren Sie die Amazon Redshift Redshift-Clusterdetails.

Öffnen Sie die Amazon Redshift Redshift-Konsole und wählen Sie im Navigationsbereich „Clusters“ aus. Wählen Sie dann den Namen des Amazon Redshift Redshift-Clusters aus der Liste aus. Notieren Sie sich auf der Registerkarte „Eigenschaften“ im Abschnitt „Datenbankkonfigurationen“ den „Datenbanknamen“ und den „Port“. Öffnen Sie den Abschnitt „Verbindungsdetails“ und notieren Sie den „Endpunkt“ im <port><databasename>Format „Endpoint:/“. Wichtig: Stellen Sie sicher, dass Ihre Amazon Redshift Redshift-Sicherheitsgruppen für eingehende Nachrichten uneingeschränkten Zugriff auf den TCP-Port 5439 von Ihrer Instance aus zulassen. EC2

DBA

Connect psql mit dem Amazon Redshift Redshift-Cluster.

<userid><databasename><port>Geben Sie an einer Befehlszeile die Verbindungsinformationen an, indem Sie den Befehl „psql -h <endpoint>-U -d -p“ ausführen. <userid>Geben Sie an der psql-Passwort-Eingabeaufforderung das Passwort für den Benutzer „“ ein. Sie sind dann mit dem Amazon Redshift Redshift-Cluster verbunden und können interaktiv Befehle eingeben.

DBA

Erstellen Sie einen S3-Bucket.

Öffnen Sie die Amazon S3 S3-Konsole und erstellen Sie einen S3-Bucket für die aus Amazon Redshift exportierten Dateien. Anweisungen zum Erstellen eines S3-Buckets finden Sie im Abschnitt „Verwandte Ressourcen“.

DBA, AWS Allgemein

Erstellen Sie eine IAM-Richtlinie, die das Entladen von Daten unterstützt.

Öffnen Sie die AWS Identity and Access Management (IAM) -Konsole und wählen Sie „Richtlinien“. Wählen Sie „Richtlinie erstellen“ und dann die Registerkarte „JSON“. Kopieren Sie die IAM-Richtlinie für das Entladen von Daten aus dem Abschnitt „Zusätzliche Informationen“ und fügen Sie sie ein. Wichtig: Ersetzen Sie „s3_bucket_name“ durch den Namen Ihres S3-Buckets. Wählen Sie „Richtlinie überprüfen“ und geben Sie einen Namen und eine Beschreibung für die Richtlinie ein. Wählen Sie „Richtlinie erstellen“.

DBA

Erstellen Sie eine IAM-Rolle, um den UNLOAD-Vorgang für Amazon Redshift zu ermöglichen.

Öffnen Sie die IAM-Konsole und wählen Sie „Rollen“. Wählen Sie „Rolle erstellen“ und wählen Sie „AWS-Service“ unter „Typ der vertrauenswürdigen Entität auswählen“. Wählen Sie „Redshift“ für den Service, wählen Sie „Redshift — Customizable“ und dann „Next“. Wählen Sie die Richtlinie „Entladen“, die Sie zuvor erstellt haben, und klicken Sie auf „Weiter“. Geben Sie einen „Rollennamen“ ein und wählen Sie „Rolle erstellen“.

DBA

Ordnen Sie die IAM-Rolle dem Amazon Redshift Redshift-Cluster zu.

Öffnen Sie die Amazon Redshift Redshift-Konsole und wählen Sie „IAM-Rollen verwalten“. Wählen Sie im Dropdownmenü „Verfügbare Rollen“ und wählen Sie die Rolle aus, die Sie zuvor erstellt haben. Wählen Sie „Änderungen übernehmen“. Wenn der „Status“ für die IAM-Rolle unter „IAM-Rollen verwalten“ als „Sync“ angezeigt wird, können Sie den Befehl UNLOAD ausführen.

DBA

Beenden Sie Schreibvorgänge in den Amazon Redshift Redshift-Cluster.

Sie müssen daran denken, alle Schreibvorgänge in den Amazon Redshift Redshift-Quellcluster zu beenden, bis die Migration abgeschlossen ist.

DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Starten und konfigurieren Sie eine EC2 Instanz in der Zielregion.

Melden Sie sich bei der AWS-Managementkonsole für eine Region in China an, entweder Peking oder Ningxia. Wählen Sie in der EC2 Amazon-Konsole „Launch Instance“ und erstellen und konfigurieren Sie eine EC2 Instance. Wichtig: Stellen Sie sicher, dass Ihre EC2 Amazon-Sicherheitsgruppen für eingehende Nachrichten uneingeschränkten Zugriff auf TCP-Port 22 von Ihrem Quellcomputer aus zulassen. Weitere Anweisungen zum Starten und Konfigurieren einer EC2 Instance finden Sie im Abschnitt „Verwandte Ressourcen“.

DBA

Notieren Sie die Amazon Redshift Redshift-Clusterdetails.

Öffnen Sie die Amazon Redshift Redshift-Konsole und wählen Sie im Navigationsbereich „Clusters“ aus. Wählen Sie dann den Namen des Amazon Redshift Redshift-Clusters aus der Liste aus. Notieren Sie sich auf der Registerkarte „Eigenschaften“ im Abschnitt „Datenbankkonfigurationen“ den „Datenbanknamen“ und den „Port“. Öffnen Sie den Abschnitt „Verbindungsdetails“ und notieren Sie den „Endpunkt“ im <port><databasename>Format „Endpoint:/“. Wichtig: Stellen Sie sicher, dass Ihre Amazon Redshift Redshift-Sicherheitsgruppen für eingehende Nachrichten uneingeschränkten Zugriff auf den TCP-Port 5439 von Ihrer Instance aus zulassen. EC2

DBA

Connect psql mit dem Amazon Redshift Redshift-Cluster.

<userid><databasename><port>Geben Sie an einer Befehlszeile die Verbindungsinformationen an, indem Sie den Befehl „psql -h <endpoint>-U -d -p“ ausführen. <userid>Geben Sie an der psql-Passwort-Eingabeaufforderung das Passwort für den Benutzer „“ ein. Sie sind dann mit dem Amazon Redshift Redshift-Cluster verbunden und können interaktiv Befehle eingeben.

DBA

Erstellen Sie einen S3-Bucket.

Öffnen Sie die Amazon S3 S3-Konsole und erstellen Sie einen S3-Bucket für die exportierten Dateien aus Amazon Redshift. Hilfe zu dieser und anderen Geschichten finden Sie im Abschnitt „Verwandte Ressourcen“.

DBA

Erstellen Sie eine IAM-Richtlinie, die das Kopieren von Daten unterstützt.

Öffnen Sie die IAM-Konsole und wählen Sie „Richtlinien“. Wählen Sie „Richtlinie erstellen“ und dann den Tab „JSON“. Kopieren Sie die IAM-Richtlinie zum Kopieren von Daten aus dem Abschnitt „Zusätzliche Informationen“ und fügen Sie sie ein. Wichtig: Ersetzen Sie „s3_bucket_name“ durch den Namen Ihres S3-Buckets. Wählen Sie „Richtlinie überprüfen“ und geben Sie einen Namen und eine Beschreibung für die Richtlinie ein. Wählen Sie „Richtlinie erstellen“.

DBA

Erstellen Sie eine IAM-Rolle, um den COPY-Vorgang für Amazon Redshift zu ermöglichen.

Öffnen Sie die IAM-Konsole und wählen Sie „Rollen“. Wählen Sie „Rolle erstellen“ und wählen Sie „AWS-Service“ unter „Typ der vertrauenswürdigen Entität auswählen“. Wählen Sie „Redshift“ für den Service, wählen Sie „Redshift — Customizable“ und dann „Next“. Wählen Sie die Richtlinie „Kopieren“, die Sie zuvor erstellt haben, und klicken Sie auf „Weiter“. Geben Sie einen „Rollennamen“ ein und wählen Sie „Rolle erstellen“.

DBA

Ordnen Sie die IAM-Rolle dem Amazon Redshift Redshift-Cluster zu.

Öffnen Sie die Amazon Redshift Redshift-Konsole und wählen Sie „IAM-Rollen verwalten“. Wählen Sie im Dropdownmenü „Verfügbare Rollen“ und wählen Sie die Rolle aus, die Sie zuvor erstellt haben. Wählen Sie „Änderungen übernehmen“. Wenn der „Status“ für die IAM-Rolle unter „IAM-Rollen verwalten“ als „Sync“ angezeigt wird, können Sie den Befehl „COPY“ ausführen.

DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Überprüfen Sie die Zeilen in den Amazon Redshift Redshift-Quelltabellen.

Verwenden Sie die Skripts im Abschnitt „Zusätzliche Informationen“, um die Anzahl der Zeilen in den Amazon Redshift Redshift-Quelltabellen zu überprüfen und aufzuzeichnen. Denken Sie daran, die Daten für die UNLOAD- und COPY-Skripten gleichmäßig aufzuteilen. Dies verbessert die Effizienz beim Entladen und Laden von Daten, da die Datenmenge, die von den einzelnen Skripten abgedeckt wird, ausgewogen ist.

DBA

Überprüfen Sie die Anzahl der Datenbankobjekte im Amazon Redshift Redshift-Quellcluster.

Verwenden Sie die Skripts im Abschnitt „Zusätzliche Informationen“, um die Anzahl der Datenbanken, Benutzer, Schemas, Tabellen, Ansichten und benutzerdefinierten Funktionen (UDFs) in Ihrem Amazon Redshift Redshift-Quellcluster zu überprüfen und aufzuzeichnen.

DBA

Überprüfen Sie die Ergebnisse der SQL-Anweisung vor der Migration.

Einige SQL-Anweisungen für die Datenvalidierung sollten nach den tatsächlichen Geschäfts- und Datensituationen sortiert werden. Dies dient dazu, die importierten Daten zu überprüfen, um sicherzustellen, dass sie konsistent sind und korrekt angezeigt werden.

DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Generieren Sie Amazon Redshift DDL-Skripts.

Generieren Sie Data Definition Language (DDL) -Skripts, indem Sie die Links aus dem Abschnitt „SQL-Anweisungen zur Abfrage von Amazon Redshift“ im Abschnitt „Zusätzliche Informationen“ verwenden. Diese DDL-Skripts sollten die Abfragen „Benutzer erstellen“, „Schema erstellen“, „Schemaprivilegien für Benutzer“, „Tabelle/Ansicht erstellen“, „Benutzerrechte für Objekte“ und „Funktion erstellen“ enthalten.

DBA

Erstellen Sie Objekte im Amazon Redshift Redshift-Cluster für die Zielregion.

Führen Sie die DDL-Skripts mithilfe der AWS-Befehlszeilenschnittstelle (AWS CLI) in der AWS-Region in China aus. Diese Skripts erstellen Objekte im Amazon Redshift Redshift-Cluster für die Zielregion.

DBA

Entladen Sie die Amazon Redshift Redshift-Quellclusterdaten in den S3-Bucket.

Führen Sie den Befehl UNLOAD aus, um Daten aus dem Amazon Redshift Redshift-Cluster in der Quellregion in den S3-Bucket zu entladen.

DBA, Entwickler

Übertragen Sie die Bucket-Daten der Quellregion S3 in den Ziel-Bucket der Region S3.

Übertragen Sie die Daten aus Ihrem S3-Bucket der Quellregion in den S3-Bucket der Zielregion. Da der Befehl „$ aws s3 sync“ nicht verwendet werden kann, stellen Sie sicher, dass Sie den Prozess verwenden, der im Artikel „Übertragung von Amazon S3 S3-Daten von AWS-Regionen zu AWS-Regionen in China“ im Abschnitt „Verwandte Ressourcen“ beschrieben ist.

Developer

Laden Sie Daten in den Amazon Redshift Redshift-Zielcluster.

Führen Sie im psql-Tool für Ihre Zielregion den Befehl COPY aus, um Daten aus dem S3-Bucket in den Amazon Redshift Redshift-Zielcluster zu laden.

DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Überprüfen und vergleichen Sie die Anzahl der Zeilen in den Quell- und Zieltabellen.

Überprüfen und vergleichen Sie die Anzahl der Tabellenzeilen in den Quell- und Zielregionen, um sicherzustellen, dass alle migriert wurden.

DBA

Überprüfen und vergleichen Sie die Anzahl der Quell- und Zieldatenbankobjekte.

Überprüfen und vergleichen Sie alle Datenbankobjekte in den Quell- und Zielregionen, um sicherzustellen, dass alle migriert wurden.

DBA

Überprüfen und vergleichen Sie die SQL-Skriptergebnisse in den Quell- und Zielregionen.

Führen Sie die vor der Migration vorbereiteten SQL-Skripts aus. Überprüfen und vergleichen Sie die Daten, um sicherzustellen, dass die SQL-Ergebnisse korrekt sind.

DBA

Setzen Sie die Passwörter aller Benutzer im Amazon Redshift Redshift-Zielcluster zurück.

Nachdem die Migration abgeschlossen und alle Daten verifiziert wurden, sollten Sie alle Benutzerkennwörter für den Amazon Redshift Redshift-Cluster in der AWS-Region in China zurücksetzen.

DBA

Zugehörige Ressourcen

Zusätzliche Informationen

IAM-Richtlinie für das Entladen von Daten

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::s3_bucket_name"] }, { "Effect": "Allow", "Action": ["s3:GetObject", "s3:DeleteObject"], "Resource": ["arn:aws:s3:::s3_bucket_name/*"] } ] }

IAM-Richtlinie für das Kopieren von Daten

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::s3_bucket_name"] }, { "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": ["arn:aws:s3:::s3_bucket_name/*"] } ] }

SQL-Anweisungen zur Abfrage von Amazon Redshift

##Database select * from pg_database where datdba>1; ##User select * from pg_user where usesysid>1; ##Schema SELECT n.nspname AS "Name", pg_catalog.pg_get_userbyid(n.nspowner) AS "Owner" FROM pg_catalog.pg_namespace n WHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema' ORDER BY 1; ##Table select count(*) from pg_tables where schemaname not in ('pg_catalog','information_schema'); select schemaname,count(*) from pg_tables where schemaname not in ('pg_catalog','information_schema') group by schemaname order by 1; ##View SELECT n.nspname AS schemaname,c.relname AS viewname,pg_catalog.pg_get_userbyid(c.relowner) as "Owner" FROM pg_catalog.pg_class AS c INNER JOIN pg_catalog.pg_namespace AS n ON c.relnamespace = n.oid WHERE relkind = 'v' and n.nspname not in ('information_schema','pg_catalog'); ##UDF SELECT n.nspname AS schemaname, p.proname AS proname, pg_catalog.pg_get_userbyid(p.proowner) as "Owner" FROM pg_proc p LEFT JOIN pg_namespace n on n.oid = p.pronamespace WHERE p.proowner != 1;

SQL-Skripts zum Generieren von DDL-Anweisungen