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.
COPYvom Remote-Host (SSH)
Sie können den COPY Befehl verwenden, um Daten parallel von einem oder mehreren Remote-Hosts, wie Amazon Elastic Compute Cloud (AmazonEC2) -Instances oder anderen Computern, zu laden. COPYstellt mithilfe von Secure Shell (SSH) eine Verbindung zu den Remote-Hosts her und führt Befehle auf den Remote-Hosts aus, um eine Textausgabe zu generieren. Der Remote-Host kann eine EC2 Linux-Instance oder ein anderer Unix- oder Linux-Computer sein, der so konfiguriert ist, dass er SSH Verbindungen akzeptiert. Amazon Redshift kann eine Verbindung zu mehreren Hosts herstellen und mehrere SSH Verbindungen zu jedem Host öffnen. Amazon Redshift sendet über jede Verbindung einen eindeutigen Befehl, um die Textausgabe an die Standardausgabe des Hosts zu generieren. Amazon Redshift liest diese dann wie eine Textdatei.
Verwenden Sie die FROM Klausel, um den Amazon S3 S3-Objektschlüssel für die Manifestdatei anzugeben, die die Informationen bereitstellt, die zum Öffnen von SSH Verbindungen und zum Ausführen der Remote-Befehle COPY verwendet werden.
Wichtig
Wenn sich der S3-Bucket, der die Manifestdatei enthält, nicht in derselben AWS Region wie Ihr Cluster befindet, müssen Sie den REGION Parameter verwenden, um die Region anzugeben, in der sich der Bucket befindet.
Syntax
FROM 's3://'ssh_manifest_file' } authorization SSH | optional-parameters
Beispiele
Im folgenden Beispiel wird eine Manifestdatei verwendet, um Daten von einem Remote-Host mithilfe SSH von zu laden.
copy sales from 's3://amzn-s3-demo-bucket/ssh_manifest' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' ssh;
Parameter
- FROM
-
Die Quelle der Daten, die geladen werden sollen.
- 's3://copy_from_ssh_manifest_file'
-
Der COPY Befehl kann mithilfe von SSH eine Verbindung zu mehreren Hosts herstellen und mehrere SSH Verbindungen zu jedem Host herstellen. COPYführt über jede Hostverbindung einen Befehl aus und lädt dann die Ausgabe der Befehle parallel in die Tabelle. Das Argument s3://copy_from_ssh_manifest_file gibt den Amazon S3 S3-Objektschlüssel für die Manifestdatei an, die die Informationen bereitstellt, die zum Öffnen von SSH Verbindungen und zum Ausführen der Remote-Befehle COPY verwendet werden.
Das Argument s3://copy_from_ssh_manifest_file muss explizit eine einzelne Datei referenzieren; es darf sich nicht um ein Schlüsselpräfix handeln. Im Folgenden sehen Sie ein Beispiel:
's3://amzn-s3-demo-bucket/ssh_manifest.txt'
Die Manifest-Datei ist eine Textdatei in einem JSON Format, das Amazon Redshift verwendet, um eine Verbindung zum Host herzustellen. Die Manifestdatei spezifiziert die SSH Host-Endpunkte und die Befehle, 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. Das folgende Beispiel zeigt eine Manifestdatei, die zwei SSH Verbindungen herstellt:
{ "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 ein
"entries"
Konstrukt für jede SSH Verbindung. Es kann mehrere Verbindungen zu einem einzelnen Host oder mehrere Verbindungen zu mehreren Hosts geben. Doppelte Anführungszeichen sind sowohl für Feldnamen als auch für Werte erforderlich. Es muss sich um normale Anführungszeichen (0x22) handeln. Es dürfen keine schrägen oder „smarten“ Anführungszeichen sein. Der einzige Wert, der keine doppelten Anführungszeichen benötigt, ist der boolesche Werttrue
oderfalse
für das Feld"mandatory"
.Die folgende Liste beschreibt die Felder in der Manifestdatei.
- Endpunkt
-
Die URL Adresse oder IP-Adresse des Hosts, zum Beispiel
"ec2-111-222-333.compute-1.amazonaws.com"
, oder."198.51.100.0"
- command
-
Der Befehl, der durch den Host ausgeführt werden soll, um eine Textausgabe oder eine Binärausgabe im gzip-, lzop-, bzip2- oder zstd-Format 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 um einen einfachen Befehl zum Drucken einer Datei oder um die Abfrage einer Datenbank oder das Starten eines Skripts handeln. Die Ausgabe (Textdatei, Gzip-Binärdatei, LZop-Binärdatei oder Bzip2-Binärdatei) muss in einer Form vorliegen, die der Amazon Redshift Redshift-Befehl aufnehmen kann. COPY 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…Example root@amazon.com
ist, geben Sie den folgenden Text in das Feld für den öffentlichen Schlüssel ein:"AbcCbaxxx…Example"
. - mandatory
-
(Optional) Eine Klausel, die angibt, ob der COPY Befehl fehlschlagen soll, wenn der Verbindungsversuch fehlschlägt. Der Standardwert ist
false
. Wenn Amazon Redshift nicht erfolgreich 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 des Amazon-Redshift-Clusters zur Datei des Hosts mit den autorisierten Schlüsseln verwendet wurde. Der Standardbenutzername ist
redshift
.
Weitere Informationen zum Erstellen einer Manifestdatei finden Sie unter Prozess für das Laden von Daten.
COPYVon einem Remote-Host aus muss der SSH Parameter mit dem COPY Befehl angegeben werden. Wenn der SSH Parameter nicht angegeben ist, COPY wird davon ausgegangen, dass es sich bei der mit angegebenen Datei um eine Datendatei FROM handelt, und es wird ein Fehler auftreten.
Wenn Sie die automatische Komprimierung verwenden, führt der COPY Befehl zwei Datenlesevorgänge aus, was bedeutet, dass der Remotebefehl zweimal ausgeführt wird. Die erste Leseoperation dient dazu, eine Datenstichprobe zur Kompressionsanalyse bereitzustellen. In der zweiten Leseoperation werden die Daten tatsächlich geladen. Wenn die zweimalige Ausführung des Remotebefehls Probleme verursachen könnte, sollten Sie die automatische Kompression deaktivieren. Um die automatische Komprimierung zu deaktivieren, führen Sie den COPY Befehl aus, wobei der COMPUPDATE Parameter auf gesetzt istOFF. Weitere Informationen finden Sie unter Laden von Tabellen mit automatischer Kompression.
Ausführliche Anweisungen zur Verwendung COPY von from SSH finden Sie unterLaden von Daten aus Remote-Hosts.
- Autorisierung
-
Der COPY Befehl benötigt eine Autorisierung, um auf Daten in einer anderen AWS Ressource zuzugreifen, einschließlich in Amazon S3, AmazonEMR, Amazon DynamoDB und Amazon. EC2 Sie können diese Autorisierung erteilen, indem Sie auf eine Rolle AWS Identity and Access Management (IAM) verweisen, die Ihrem Cluster zugeordnet ist (rollenbasierte Zugriffskontrolle), oder indem Sie die Zugangsdaten für einen Benutzer angeben (schlüsselbasierte Zugriffskontrolle). Für mehr Sicherheit und Flexibilität empfehlen wir die Verwendung einer rollenbasierten Zugriffskontrolle. IAM Weitere Informationen finden Sie unter Autorisierungsparameter.
- SSH
-
Eine Klausel, die angibt, dass Daten mithilfe des Protokolls von einem Remote-Host geladen werden sollen. SSH Wenn Sie angebenSSH, müssen Sie mit dem s3://copy_from_ssh_manifest_file Argument auch eine Manifestdatei angeben.
Anmerkung
Wenn Sie das Kopieren von einem Host verwenden, der eine private IP-Adresse auf einem Remote-Computer verwendetVPC, VPC muss das erweiterte VPC Routing aktiviert sein. SSH Weitere Informationen zu Enhanced VPC Routing finden Sie unter Amazon Redshift Enhanced VPC Routing.
Optionale Parameter
Sie können optional die folgenden Parameter mit COPY from SSH angeben:
Nicht unterstützte Parameter
Sie können die folgenden Parameter nicht mit COPY from verwendenSSH:
-
ENCRYPTED
-
MANIFEST
-
READRATIO