Connexions Vertica - AWS Glue

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.

Connexions Vertica

Vous pouvez utiliser AWS Glue pour Spark pour lire et écrire dans des tables dans Vertica dans la version 4.0 et ultérieure d'AWS Glue. Vous pouvez définir ce qu'il faut lire dans Vertica à l'aide d'une requête SQL. Vous vous connectez à Vertica à l’aide des informations d'identification (nom d'utilisateur et mot de passe) stockées dans AWS Secrets Manager via une connexion AWS Glue.

Pour de plus amples informations sur Vertica, consultez la documentation Vertica.

Configuration de connexions Vertica

Pour vous connecter à Vertica depuis AWS Glue, vous devez créer et stocker vos informations d’identification Vertica dans un secret AWS Secrets Manager, puis associer ce secret à une connexion AWS Glue Vertica. Si votre instance Vertica se trouve dans un Amazon VPC, vous devrez également fournir des options réseau à votre connexion AWS Glue Vertica. Vous aurez besoin d'un compartiment Amazon S3 ou d'un dossier à utiliser pour le stockage temporaire lors de la lecture et de l'écriture dans la base de données.

Pour vous connecter à Vertica depuis AWS Glue, vous aurez besoin de certaines conditions préalables :

  • Un compartiment ou un dossier Amazon S3 à utiliser pour le stockage temporaire lors de la lecture et de l'écriture dans la base de données mentionnée par tempS3Path.

    Note

    Lorsque vous utilisez Vertica dans les prévisualisations de données des tâches AWS Glue, les fichiers temporaires peuvent ne pas être automatiquement supprimés de temps3Path. Pour garantir la suppression des fichiers temporaires, mettez directement fin à la session de prévisualisation des données en choisissant Mettre fin à la session dans le volet Prévisualisation des données.

    Si vous ne pouvez pas garantir la fin directe de la session de prévisualisation des données, pensez à configurer le cycle de vie d’Amazon S3 pour supprimer les anciennes données. Nous recommandons de supprimer les données de plus de 49 heures, sur la base de la durée d'exécution maximale des tâches plus une marge. Pour de plus amples informations sur la configuration du cycle de vie Amazon S3, consultez Gestion du cycle de vie de votre stockage dans la documentation Amazon S3.

  • Une politique IAM avec les autorisations appropriées pour votre chemin Amazon S3 que vous pouvez associer à votre rôle de la tâche AWS Glue.

  • Si votre instance Vertica se trouve dans un Amazon VPC, configurez Amazon VPC pour permettre à votre tâche AWS Glue de communiquer avec l'instance Vertica sans passer par l'Internet public.

    Dans Amazon VPC, identifiez ou créez un VPC, un sous-réseau et un groupe de sécurité que AWS Glue utilisera lors de l'exécution de la tâche. En outre, vous devez vous assurer qu'Amazon VPC est configuré pour autoriser le trafic réseau entre votre instance Vertica et cet emplacement. Votre tâche devra établir une connexion TCP avec votre port client Vertica (par défaut 5433). Selon la configuration de votre réseau, cela peut nécessiter des modifications des règles du groupe de sécurité, des ACL réseau, des passerelles NAT et des connexions d'appairage.

Vous pouvez ensuite configurer AWS Glue à utiliser avec Vertica.

Pour configurer une connexion à Vertica :
  1. DansAWS Secrets Manager, créez un secret à l'aide de vos informations d'identification Vertica, verticaUsername et verticaPassword. Pour créer un secret dans Secrets Manager, suivez le didacticiel disponible dans la section Créer un secret AWS Secrets Manager dans la documentation AWS Secrets Manager. Après avoir créé le secret, conservez le nom du secret, secretName, pour l'étape suivante.

    • Lorsque vous sélectionnez Paires clé/valeur, créez une paire pour la clé user avec la valeur verticaUsername.

    • Lorsque vous sélectionnez Paires clé/valeur, créez une paire pour la clé password avec la valeur verticaPassword.

  2. Dans la console AWS Glue, créez une connexion en suivant les étapes décrites dans Ajout d'une connexion AWS Glue. Après avoir créé la connexion, conservez le nom de la connexion, connectionName, pour l'étape suivante.

    • Lorsque vous sélectionnez un type de connexion, sélectionnez Vertica.

    • Lorsque vous sélectionnez l'hôte Vertica, indiquez le nome d'hôte de votre installation Vertica.

    • Lorsque vous sélectionnez le port Vertica, le port via lequel votre installation Vertica est disponible.

    • Lorsque vous sélectionnez un Secret AWS, fournissez secretName.

  3. Dans les situations suivantes, vous pouvez avoir besoin d'une configuration supplémentaire :

    • Pour les instances Vertica hébergées sur AWS dans un Amazon VPC

      • Fournissez les informations de connexion Amazon VPC à la connexion AWS Glue qui définit vos informations d'identification de sécurité Vertica. Lorsque vous créez ou mettez à jour votre connexion, définissez le VPC, le sous-réseau et les groupes de sécurité dans les options réseau.

Après avoir créé une connexion AWS Glue Vertica, vous devez effectuer les étapes suivantes avant d'appeler votre méthode de connexion.

  • Accordez au rôle IAM associé à votre tâche AWS Glue des autorisations sur tempS3Path.

  • Accordez au rôle IAM associé à votre tâche AWS Glue l'autorisation de lire secretName.

  • Dans la configuration de votre tâche AWS Glue, indiquez connectionName en tant que connexion réseau supplémentaire.

Lecture à partir de Vertica

Prérequis :

  • Une table Vertica à partir de laquelle vous souhaitez lire. Vous aurez besoin du nom de la base de données Vertica, dbName, et du nom de la table, tableName.

  • Une connexion AWS Glue Vertica configurée pour fournir des informations d'authentification. Suivez les étapes de la procédure précédente Pour configurer une connexion à Vertica afin de configurer vos informations d'authentification. Vous aurez besoin du nom de la connexion AWS Glue, connectionName.

  • Un compartiment ou un dossier Amazon S3 à utiliser pour le stockage temporaire, mentionné précédemment. Vous aurez besoin du nom, temps3Path. Vous devrez vous connecter à cet emplacement à l'aide du protocole s3a.

Par exemple :

dynamicFrame = glueContext.create_dynamic_frame.from_options( connection_type="vertica", connection_options={ "connectionName": "connectionName", "staging_fs_url": "s3a://tempS3Path", "db": "dbName", "table": "tableName", } )

Vous pouvez également fournir une requête SELECT SQL pour filtrer les résultats renvoyés à votre DynamicFrame ou pour accéder à un jeu de données à partir de plusieurs tables.

Par exemple :

dynamicFrame = glueContext.create_dynamic_frame.from_options( connection_type="vertica", connection_options={ "connectionName": "connectionName", "staging_fs_url": "s3a://tempS3Path", "db": "dbName", "query": "select * FROM tableName", }, )

Écrire dans les tables Vertica

Cet exemple écrit des informations à partir d'un DynamicFrame existant, dynamicFrame, dans Vertica. Si la table contient déjà des informations, AWS Glue ajoutera les données de votre DynamicFrame.

Prérequis :

  • Nom de table actuel ou souhaité, tableName, dans lequel vous souhaitez écrire. Vous aurez également besoin du nom de base de données Vertica correspondant, dbName.

  • Une connexion AWS Glue Vertica configurée pour fournir des informations d'authentification. Suivez les étapes de la procédure précédente Pour configurer une connexion à Vertica afin de configurer vos informations d'authentification. Vous aurez besoin du nom de la connexion AWS Glue, connectionName.

  • Un compartiment ou un dossier Amazon S3 à utiliser pour le stockage temporaire, mentionné précédemment. Vous aurez besoin du nom, temps3Path. Vous devrez vous connecter à cet emplacement à l'aide du protocole s3a.

Par exemple :

glueContext.write_dynamic_frame.from_options( frame=dynamicFrame, connection_type="vertica", connection_options={ "connectionName": "connectionName", "staging_fs_url": "s3a://tempS3Path", "db": "dbName", "table": "tableName", } )

Référence des options de connexion Vertica

  • connectionName — Obligatoire. Utilisé pour la lecture/l'écriture. Le nom d’une connexion AWS Glue Vertica configurée pour fournir des informations d'authentification et de mise en réseau à votre méthode de connexion.

  • db — Obligatoire. Utilisé pour la lecture/l'écriture. Le nom d'une base de données dans Vertica avec lequelle votre méthode de connexion va interagir.

  • dbSchema — obligatoire si nécessaire pour identifier votre table. Utilisé pour la lecture/l'écriture. Par défaut: public. Le nom d'un schéma avec lequel votre méthode de connexion va interagir.

  • table — obligatoire pour l'écriture, obligatoire pour la lecture à moins qu'une query ne soit fournie. Utilisé pour la lecture/l'écriture. Le nom de la table avec lequelle votre méthode de connexion va interagir.

  • query : utilisé pour la lecture. Une requête SELECT SQL définissant ce qui doit être récupéré lors de la lecture à partir de Teradata.

  • staging_fs_url — Obligatoire. Utilisé pour la lecture/l'écriture. Valeurs valides : URL s3a. L'URL d'un compartiment ou d'un dossier Amazon S3 à utiliser pour le stockage temporaire.