COPYdepuis un hôte distant (SSH) - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

COPYdepuis un hôte distant (SSH)

Vous pouvez utiliser cette COPY commande pour charger des données en parallèle depuis un ou plusieurs hôtes distants, tels que des instances Amazon Elastic Compute Cloud (AmazonEC2) ou d'autres ordinateurs. COPYse connecte aux hôtes distants à l'aide de Secure Shell (SSH) et exécute des commandes sur les hôtes distants pour générer une sortie de texte. L'hôte distant peut être une instance EC2 Linux ou un autre ordinateur Unix ou Linux configuré pour accepter les SSH connexions. Amazon Redshift peut se connecter à plusieurs hôtes et ouvrir plusieurs SSH connexions pour chaque hôte. Amazon Redshift envoie une commande unique lors de chaque connexion pour générer la sortie de texte sur la sortie standard de l’hôte, qu’Amazon Redshift lit alors comme un fichier texte.

Utilisez la FROM clause pour spécifier la clé d'objet Amazon S3 pour le fichier manifeste qui fournit les informations COPY utilisées pour ouvrir des SSH connexions et exécuter les commandes à distance.

Important

Si le compartiment S3 qui contient le fichier manifeste ne réside pas dans la même AWS région que votre cluster, vous devez utiliser le REGION paramètre pour spécifier la région dans laquelle se trouve le compartiment.

Syntaxe

FROM 's3://'ssh_manifest_file' } authorization SSH | optional-parameters

Exemples

L'exemple suivant utilise un fichier manifeste pour charger des données depuis un hôte distant à l'aide deSSH.

copy sales from 's3://amzn-s3-demo-bucket/ssh_manifest' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' ssh;

Paramètres

FROM

Source des données à charger.

’s3://copy_from_ssh_manifest_file

La COPY commande peut se connecter à plusieurs hôtes à l'aide SSH de et peut créer plusieurs SSH connexions avec chaque hôte. COPYexécute une commande via chaque connexion hôte, puis charge le résultat des commandes en parallèle dans la table. L'argument s3://copy_from_ssh_manifest_file spécifie la clé d'objet Amazon S3 pour le fichier manifeste qui fournit les informations COPY utilisées pour ouvrir des SSH connexions et exécuter les commandes à distance.

L’argument s3://copy_from_ssh_manifest_file doit explicitement faire référence à un seul fichier ; il ne peut pas être un préfixe de clé. Voici un exemple:

's3://amzn-s3-demo-bucket/ssh_manifest.txt'

Le fichier manifeste est un fichier texte au JSON format qu'Amazon Redshift utilise pour se connecter à l'hôte. Le fichier manifeste indique les points de terminaison de l'SSHhôte et les commandes qui seront exécutées sur les hôtes pour renvoyer des données à Amazon Redshift. Le cas échéant, vous pouvez inclure la clé publique de l’hôte, le nom d’utilisateur de connexion et un indicateur obligatoire pour chaque entrée. L'exemple suivant montre un fichier manifeste qui crée deux SSH connexions :

{ "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>"} ] }

Le fichier manifeste contient une "entries" construction pour chaque SSH connexion. Vous pouvez avoir plusieurs connexions à un seul hôte ou plusieurs connexions à plusieurs hôtes. Les guillemets doubles sont obligatoires comme illustré, aussi bien pour les noms de champ que pour les valeurs. Les guillemets doivent être des guillemets simples (0x22), ni culbutés, ni courbes. La seule valeur qui n’a pas besoin de guillemets doubles est la valeur booléenne true ou false pour le champ "mandatory".

La liste suivante décrit les champs dans le fichier manifeste.

point de terminaison

L'URLadresse ou l'adresse IP de l'hôte, par exemple"ec2-111-222-333.compute-1.amazonaws.com", ou. "198.51.100.0"

command

La commande doit être exécutée par l’hôte pour générer la sortie de texte ou la sortie binaire au format gzip, lzop, bzip2 ou zstd. La commande peut être n’importe quelle commande que l’utilisateur « host_user_name » est autorisé à exécuter. La commande peut être aussi simple que l’impression d’un fichier, ou elle bien peut interroger une base de données ou lancer un script. La sortie (fichier texte, fichier binaire gzip, fichier binaire lzop ou fichier binaire bzip2) doit être sous une forme que la commande Amazon Redshift peut ingérer. COPY Pour de plus amples informations, veuillez consulter Préparation de vos données d’entrée.

publickey

(Facultatif) La clé publique de l’hôte. Si la clé est fournie, Amazon Redshift l’utilise pour identifier l’hôte. Si la clé publique n’est pas fournie, Amazon Redshift n’essaie pas d’identifier l’hôte. Par exemple, si la clé publique l’hôte distant est ssh-rsa AbcCbaxxx…Example root@amazon.com, tapez le texte suivant dans le champ de clé publique : "AbcCbaxxx…Example"

mandatory

(Facultatif) Clause qui indique si la COPY commande doit échouer en cas d'échec de la tentative de connexion. L’argument par défaut est false. Si Amazon Redshift ne parvient pas à établir au moins une connexion, la COPY commande échoue.

nom d’utilisateur

(Facultatif) Nom d’utilisateur qui sera utilisé pour vous connecter au système hôte et exécuter la commande à distance. Le nom de connexion d’utilisateur doit être le même que la connexion qui a été utilisée pour ajouter la clé publique du cluster Amazon Redshift au fichier de clés autorisé de l’hôte. Le nom d’utilisateur par défaut est redshift.

Pour plus d’informations sur la création d’un fichier manifeste, consultez Processus de chargement de données.

Pour COPY partir d'un hôte distant, le SSH paramètre doit être spécifié avec la COPY commande. Si le SSH paramètre n'est pas spécifié, COPY suppose que le fichier spécifié par FROM est un fichier de données et qu'il échouera.

Si vous utilisez la compression automatique, la COPY commande effectue deux opérations de lecture des données, ce qui signifie qu'elle exécutera la commande à distance deux fois. La première opération de lecture vise à fournir un échantillon de données pour l’analyse de la compression, et la deuxième opération de lecture charge réellement les données. Si l’exécution de la commande à distance à deux reprises est susceptible d’entraîner un problème, vous devez désactiver la compression automatique. Pour désactiver la compression automatique, exécutez la COPY commande avec le COMPUPDATE paramètre défini surOFF. Pour de plus amples informations, veuillez consulter Chargement des tables avec compression automatique.

Pour les procédures détaillées relatives à l'utilisation COPY de fromSSH, voirChargement des données à partir des hôtes distants.

authorization

La COPY commande a besoin d'une autorisation pour accéder aux données d'une autre AWS ressource, notamment Amazon S3, AmazonEMR, Amazon DynamoDB et Amazon. EC2 Vous pouvez fournir cette autorisation en référençant un rôle AWS Identity and Access Management (IAM) attaché à votre cluster (contrôle d'accès basé sur les rôles) ou en fournissant les informations d'identification d'accès d'un utilisateur (contrôle d'accès basé sur des clés). Pour une sécurité et une flexibilité accrues, nous vous recommandons d'utiliser un contrôle d'accès IAM basé sur les rôles. Pour de plus amples informations, veuillez consulter Paramètres d’autorisation.

SSH

Clause qui indique que les données doivent être chargées depuis un hôte distant à l'aide du SSH protocole. Si vous le spécifiezSSH, vous devez également fournir un fichier manifeste à l'aide de l's3://copy_from_ssh_manifest_fileargument.

Note

Si vous avez l'habitude SSH de copier depuis un hôte à l'aide d'une adresse IP privée sur une télécommandeVPC, le VPC routage amélioré VPC doit être activé. Pour plus d'informations sur le VPC routage amélioré, consultez Amazon Redshift Enhanced VPC Routing.

Paramètres facultatifs

Vous pouvez éventuellement spécifier les paramètres suivants avec COPY from SSH :

Paramètres non pris en charge

Vous ne pouvez pas utiliser les paramètres suivants avec COPY from SSH :

  • ENCRYPTED

  • MANIFEST

  • READRATIO