Vertica-Verbindungen - AWS Glue

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.

Vertica-Verbindungen

Sie können AWS Glue für Spark zum Lesen und Schreiben in Tabellen in Vertica in AWS Glue 4.0 und späteren Versionen verwenden. Sie können definieren, was mit einer SQL-Abfrage aus Vertica gelesen werden soll. Sie können eine Verbindung zu Vertica herstellen, indem Sie Benutzernamen und Passwörter verwenden, die über eine AWS-Glue-Verbindung in AWS Secrets Manager gespeichert sind.

Weitere Informationen zu Vertica finden Sie in der Vertica-Dokumentation.

Konfigurieren von Vertica-Verbindungen

Um von AWS Glue aus eine Verbindung zu Vertica herzustellen, müssen Sie Ihre Anmeldeinformationen für Vertica erstellen und in einem AWS Secrets Manager-Secret speichern und dieses Secret dann mit einer Vertica-AWS-Glue-Verbindung verknüpfen. Wenn sich Ihre Vertica-Instance in einer Amazon-VPC befindet, müssen Sie auch Netzwerkoptionen für Ihre AWS-Glue-Vertica-Verbindung bereitstellen. Sie benötigen einen Amazon-S3-Bucket oder -Ordner zur temporären Speicherung beim Lesen und Schreiben in die Datenbank.

Voraussetzungen zum Herstellen einer Verbindung von AWS Glue und Vertica:

  • Ein Amazon-S3-Bucket oder -Ordner zur vorübergehenden Speicherung beim Lesen und Schreiben in die Datenbank, referenziert von tempS3Path.

    Anmerkung

    Wenn Sie Vertica in der Vorschau von AWS-Glue-Auftragsdaten verwenden, werden temporäre Dateien möglicherweise nicht automatisch aus tempS3Path entfernt. Um sicherzustellen, dass temporäre Dateien entfernt werden, beenden Sie die Datenvorschau-Sitzung direkt, indem Sie im Bereich Datenvorschau die Option Sitzung beenden wählen.

    Wenn Sie nicht garantieren können, dass die Datenvorschau-Sitzung direkt beendet wird, sollten Sie die Amazon-S3-Lifecycle-Konfiguration so einrichten, dass alte Daten entfernt werden. Wir empfehlen, Daten zu entfernen, die älter als 49 Stunden sind, basierend auf der maximalen Auftragslaufzeit zuzüglich einer Marge. Weitere Informationen zur Konfiguration des Amazon-S3-Lebenszyklus finden Sie in der Amazon-S3-Dokumentation unter Verwalten Ihres Speicherlebenszyklus.

  • Eine IAM-Richtlinie mit entsprechenden Berechtigungen für Ihren Amazon-S3-Pfad, die Sie Ihrer AWS-Glue-Auftragsrolle zuordnen können.

  • Wenn sich Ihre Vertica-Instance in einer Amazon-VPC befindet, konfigurieren Sie Amazon VPC so, dass Ihr AWS-Glue-Auftrag mit der Vertica-Instance kommunizieren kann, ohne dass der Datenverkehr über das öffentliche Internet übertragen wird.

    Identifizieren oder erstellen Sie in Amazon VPC eine VPC, ein Subnetz und eine Sicherheitsgruppe, die AWS Glue bei der Ausführung des Auftrags verwendet. Darüber hinaus muss Amazon VPC so konfiguriert sein, dass der Netzwerkdatenverkehr zwischen Ihrer Vertica-Instance und diesem Standort zugelassen wird. Ihr Auftrag muss eine TCP-Verbindung mit Ihrem Vertica-Client-Port (Standard 5433) herstellen. Je nach Netzwerklayout kann dies Änderungen an den Sicherheitsgruppenregeln, Netzwerk-ACLs, NAT-Gateways und Peering-Verbindungen erfordern.

Sie können dann mit der Konfiguration von AWS Glue für die Verwendung mit Vertica fortfahren.

Eine Verbindung zu Vertica konfigurieren Sie wie folgt:
  1. Erstellen Sie in AWS Secrets Manager ein Secret mit Ihren Vertica-Anmeldeinformationen, verticaUsername und verticaPassword. Um ein Geheimnis im Secrets Manager zu erstellen, befolgen Sie das Tutorial unter Erstellen eines AWS Secrets Manager-Secrets in der AWS Secrets Manager-Dokumentation. Behalten Sie nach dem Erstellen des Secrets den Namen des Secrets, secretName für den nächsten Schritt bei.

    • Erstellen Sie bei der Auswahl von Schlüssel/Wert-Paaren ein Paar für den Schlüssel user mit dem Wert verticaUsername.

    • Erstellen Sie bei der Auswahl von Schlüssel/Wert-Paaren ein Paar für den Schlüssel password mit dem Wert verticaPassword.

  2. Erstellen Sie in der AWS-Glue-Konsole eine Verbindung, indem Sie die Schritte in Hinzufügen einer AWS Glue-Verbindung befolgen. Behalten Sie nach dem Erstellen der Verbindung den Verbindungsnamen connectionName für den nächsten Schritt bei.

    • Wählen Sie als Verbindungstyp Vertica aus.

    • Geben Sie als Vertica-Host den Hostnamen Ihrer Vertica-Installation an.

    • Geben Sie als Vertica-Port den Port an, über den Ihre Vertica-Installation verfügbar ist.

    • Geben Sie als AWS-Secret die Option secretName an.

  3. In den folgenden Situationen ist möglicherweise eine zusätzliche Konfiguration erforderlich:

    • Für Vertica-Instances in einer Amazon-VPC, die in AWS gehostet werden

      • Geben Sie Amazon-VPC-Verbindungsinformationen für die AWS-Glue-Verbindung ein, die Ihre Vertica-Sicherheitsanmeldeinformationen definiert. Wenn Sie Ihre Verbindung erstellen oder aktualisieren, legen Sie VPC, Subnetz und Sicherheitsgruppen in den Netzwerkoptionen fest.

Nachdem Sie eine AWS-Glue-Vertica-Verbindung hergestellt haben, müssen Sie die folgenden Schritte ausführen, bevor Sie Ihre Verbindungsmethode aufrufen.

  • Erteilen Sie der mit Ihrem AWS-Glue-Auftrag verknüpften IAM-Rolle die Zugriffsberechtigung für tempS3Path.

  • Erteilen Sie der mit Ihrem AWS Glue-Auftrag verknüpften IAM-Rolle die Berechtigung, secretName zu lesen.

  • Geben Sie in Ihrer AWS-Glue-Auftragskonfiguration connectionName als zusätzliche Netzwerkverbindung an.

Lesen aus Vertica

Voraussetzungen:

  • Eine Vertica-Tabelle, aus der gelesen werden soll. Sie benötigen den Vertica-Datenbanknamen dbName und den Tabellennamen tableName.

  • Eine AWS-Glue-Vertica-Verbindung, die für die Bereitstellung von Authentifizierungsinformationen konfiguriert ist. Gehen Sie wie im vorherigen Verfahren beschrieben vor, um eine Verbindung zu Vertica zu konfigurieren, um Ihre Authentifizierungsinformationen zu konfigurieren. Sie benötigen den Namen der AWS-Glue-Verbindung, connectionName.

  • Ein Amazon-S3-Bucket oder -Ordner, der (wie zuvor erwähnt) für den temporären Speicher verwendet werden soll. Sie benötigen den Namen, tempS3Path. Sie müssen über das s3a-Protokoll eine Verbindung zu diesem Standort herstellen.

Beispiele:

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

Sie können auch eine SELECT-SQL-Abfrage angeben, um die an Ihren DynamicFrame zurückgegebenen Ergebnisse zu filtern oder einen Datensatz aus mehreren Tabellen abzurufen.

Beispiele:

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", }, )

Schreiben in Vertica-Tabellen

In diesem Beispiel werden Informationen aus einem vorhandenen DynamicFrame, dynamicFrame, in Vertica geschrieben. Wenn die Tabelle bereits Informationen enthält, hängt AWS Glue Daten aus Ihrem DynamicFrame an.

Voraussetzungen:

  • Ein aktueller oder gewünschter Tabellenname, tableName, in den Sie schreiben möchten. Sie benötigen außerdem den entsprechenden Vertica-Datenbanknamen dbName.

  • Eine AWS-Glue-Vertica-Verbindung, die für die Bereitstellung von Authentifizierungsinformationen konfiguriert ist. Gehen Sie wie im vorherigen Verfahren beschrieben vor, um eine Verbindung zu Vertica zu konfigurieren, um Ihre Authentifizierungsinformationen zu konfigurieren. Sie benötigen den Namen der AWS-Glue-Verbindung, connectionName.

  • Ein Amazon-S3-Bucket oder -Ordner, der (wie zuvor erwähnt) für den temporären Speicher verwendet werden soll. Sie benötigen den Namen, tempS3Path. Sie müssen über das s3a-Protokoll eine Verbindung zu diesem Standort herstellen.

Beispiele:

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

Referenz zur Vertica-Verbindungsoption

  • connectionName – Erforderlich. Wird für Lesen/Schreiben verwendet. Der Name einer AWS-Glue-Vertica-Verbindung, die so konfiguriert ist, dass sie Authentifizierungs- und Netzwerkinformationen für Ihre Verbindungsmethode bereitstellt.

  • db – Erforderlich. Wird für Lesen/Schreiben verwendet. Der einer Datenbank in Vertica, mit dem Ihre Verbindungsmethode interagieren wird.

  • dbSchema – Erforderlich, um ggf. Ihre Tabelle zu identifizieren. Wird für Lesen/Schreiben verwendet. Standard: public. Der Name eines Schemas, mit dem Ihre Verbindungsmethode interagieren wird.

  • table – Zum Schreiben erforderlich, zum Lesen erforderlich, sofern query nicht angegeben ist. Wird für Lesen/Schreiben verwendet. Der Name einer Tabelle, mit der Ihre Verbindungsmethode interagieren wird.

  • query – Wird zum Lesen verwendet. Eine SELECT-SQL-Abfrage, die definiert, was beim Lesen aus Teradata abgerufen werden soll.

  • staging_fs_url – Erforderlich. Wird für Lesen/Schreiben verwendet. Gültige Werte: s3a-URLs. Die URL eines Amazon-S3-Buckets oder -Ordners, der für den temporären Speicher verwendet werden soll.