Schritt 5: Erstellen einer Manifestdatei - Amazon Redshift

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.

Schritt 5: Erstellen einer Manifestdatei

Der COPY-Befehl kann über SSH Verbindungen zu mehreren Hosts herstellen und für jeden Host mehrere SSH-Verbindungen erstellen. COPY führt über jede Hostverbindung einen Befehl aus und lädt anschließend die Ausgabe der Befehle parallel in die Tabelle. Die Manifestdatei ist eine Textdatei im JSON-Format, die Amazon Redshift zum Herstellen der Verbindung zum Host verwendet. Die Manifestdatei gibt die Endpunkte des SSH-Hosts und die Befehle an, die auf den Hosts ausgeführt werden, um Daten an Amazon Redshift zurückzugeben. Optional können Sie den öffentlichen Schlüssel des Hosts, den Anmeldebenutzernamen und ein obligatorisches Flag für die einzelnen Einträge einschließen.

Erstellen Sie die Manifestdatei auf Ihrem lokalen Computer. In einem späteren Schritt laden Sie die Datei zu Amazon S3 hoch.

Die Manifestdatei hat folgendes Format:

{ "entries": [ {"endpoint":"<ssh_endpoint_or_IP>", "command": "<remote_command>", "mandatory":true, "publickey": "<public_key>", "username": "<host_user_name>"}, {"endpoint":"<ssh_endpoint_or_IP>", "command": "<remote_command>", "mandatory":true, "publickey": "<public_key>", "username": "host_user_name"} ] }

Die Manifestdatei enthält für jede SSH-Verbindung jeweils ein "entries"-Konstrukt. Jeder Eintrag stellt eine einzelne SSH-Verbindung dar. Es kann mehrere Verbindungen zu einem einzelnen Host oder mehrere Verbindungen zu mehreren Hosts geben. Die doppelten Anführungszeichen sind wie gezeigt erforderlich, sowohl für die Feldnamen als auch die Werte. Der einzige Wert, der keine doppelten Anführungszeichen benötigt, sind die booleschen Werte true oder false für das obligatorische Feld.

Nachfolgend werden die Felder in der Manifestdatei beschrieben.

endpoint

Die URL- oder IP-Adresse des Hosts. Beispiele sind ec2-111-222-333.compute-1.amazonaws.com oder 22.33.44.56.

command

Der Befehl, der durch den Host ausgeführt wird, um eine Textausgabe oder eine Binärausgabe (gzip, lzop oder bzip2) zu generieren. Bei diesem Befehl kann es sich um jeden Befehl handeln, zu dessen Ausführung der Benutzer host_user_name berechtigt ist. Beim Befehl kann es sich einfach um einen Befehl zum Drucken einer Datei, um eine Abfrage einer Datenbank oder um das Starten eines Skripts handeln. Die Ausgabe (Textdatei, binäre gzip-Datei, binäre lzop-Datei oder binäre bzip2-Datei) muss ein Format aufweisen, das der Amazon-Redshift-Befehl COPY verarbeiten kann. Weitere Informationen finden Sie unter Vorbereiten der Eingabedaten.

publickey

(Optional) Der öffentliche Schlüssel des Hosts. Wenn angegeben, verwendet Amazon Redshift den öffentlichen Schlüssel, um den Host zu identifizieren. Wenn der öffentliche Schlüssel nicht angegeben ist, versucht Amazon Redshift nicht, den Host zu identifizieren. Wenn beispielsweise der öffentliche Schlüssel des Remote-Hosts ssh-rsa AbcCbaxxx…xxxDHKJ root@amazon.com ist, geben Sie den folgenden Text in das Feld für den öffentlichen Schlüssel ein: AbcCbaxxx…xxxDHKJ.

mandatory

(Optional) Zeigt an, ob der COPY-Befehl fehlschlagen soll, wenn keine Verbindung hergestellt wird. Der Standardwert ist false. Wenn Amazon Redshift nicht mindestens eine Verbindung herstellt, schlägt der COPY-Befehl fehl.

username

(Optional) Der Benutzername, der für die Anmeldung am Hostsystem und die Ausführung des Remotebefehls verwendet wird. Der Benutzeranmeldename muss mit dem Anmeldenamen identisch sein, der zum Hinzufügen des öffentlichen Schlüssels zur Datei des Hosts mit den autorisierten Schlüsseln in Schritt 2 verwendet wurde. Der Standardbenutzername ist „redshift“.

Im folgenden Beispiel wird gezeigt, wie ein abgeschlossenes Manifest vier Verbindungen mit demselben Host herstellt und über jede Verbindung einen anderen Befehl ausführt:

{ "entries": [ {"endpoint":"ec2-184-72-204-112.compute-1.amazonaws.com", "command": "cat loaddata1.txt", "mandatory":true, "publickey": "ec2publickeyportionoftheec2keypair", "username": "ec2-user"}, {"endpoint":"ec2-184-72-204-112.compute-1.amazonaws.com", "command": "cat loaddata2.txt", "mandatory":true, "publickey": "ec2publickeyportionoftheec2keypair", "username": "ec2-user"}, {"endpoint":"ec2-184-72-204-112.compute-1.amazonaws.com", "command": "cat loaddata3.txt", "mandatory":true, "publickey": "ec2publickeyportionoftheec2keypair", "username": "ec2-user"}, {"endpoint":"ec2-184-72-204-112.compute-1.amazonaws.com", "command": "cat loaddata4.txt", "mandatory":true, "publickey": "ec2publickeyportionoftheec2keypair", "username": "ec2-user"} ] }