Azure-Cosmos-DB-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.

Azure-Cosmos-DB-Verbindungen

Sie können AWS Glue für Spark zum Lesen und Schreiben in Azure Cosmos DB verwenden, indem Sie die NoSQL-API in AWS Glue 4.0 und späteren Versionen verwenden. Sie können definieren, was mit einer SQL-Abfrage aus Azure Cosmos DB gelesen werden soll. Sie stellen mithilfe eines Azure-Cosmos-DB-Schlüssels, der in AWS Secrets Manager gespeichert ist, über AWS Glue eine Verbindung zu Azure Cosmos DB her.

Weitere Informationen zu Azure Cosmos DB for NoSQL finden Sie in der Azure-Dokumentation.

Konfigurieren von Azure-Cosmos DB-Verbindungen

Um von AWS Glue aus eine Verbindung mit Azure Cosmos DB herzustellen, müssen Sie Ihren Azure-Cosmos-DB-Schlüssel erstellen, in einem AWS Secrets Manager-Secret speichern und dieses Secret dann einer Verbindung von Azure Cosmos DB und AWS Glue zuordnen.

Voraussetzungen:

  • In Azure müssen Sie einen Azure-Cosmos-DB-Schlüssel für die Verwendung durch AWS Glue identifizieren oder generieren, cosmosKey. Weitere Informationen finden Sie unter Sicherer Zugriff auf Daten in Azure Cosmos DB in der Azure-Dokumentation.

Eine Verbindung zu Azure Cosmos DB konfigurieren Sie wie folgt:
  1. Erstellen Sie in AWS Secrets Manager ein Secret mit Ihrem Azure-Cosmos-DB-Schlüssel. 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 spark.cosmos.accountKey mit dem Wert cosmosKey.

  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 zur künftigen Verwendung in AWS Glue bei.

    • Wählen Sie als Verbindungstyp Azure Cosmos DB aus.

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

Nachdem Sie eine Verbindung von AWS Glue und Azure Cosmos DB hergestellt haben, müssen Sie die folgenden Schritte durchführen, bevor Sie Ihren AWS-Glue-Auftrag ausführen:

  • 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 Container in Azure Cosmos DB für NoSQL

Voraussetzungen:

  • Ein Container in Azure Cosmos DB für NoSQL, aus dem Sie lesen möchten. Sie benötigen Identifikationsinformationen für den Container.

    Ein Container in Azure Cosmos DB für NoSQL wird anhand seiner Datenbank und seines Containers identifiziert. Sie müssen die Namen der Datenbank, cosmosDBName, und des Containers, cosmosContainerName, angeben, wenn Sie eine Verbindung zur Azure Cosmos DB für NoSQL API herstellen.

  • Eine Verbindung von AWS Glue und Azure Cosmos DB, die so konfiguriert ist, dass sie Authentifizierungs- und Netzwerkstandortinformationen bereitstellt. Führen Sie dazu die Schritte im vorherigen Verfahren zum Konfigurieren einer Verbindung zu Azure Cosmos DB aus. Sie benötigen den Namen der AWS-Glue-Verbindung, connectionName.

Beispiele:

azurecosmos_read = glueContext.create_dynamic_frame.from_options( connection_type="azurecosmos", connection_options={ "connectionName": connectionName, "spark.cosmos.database": cosmosDBName, "spark.cosmos.container": cosmosContainerName, } )

Sie können auch eine SELECT-SQL-Abfrage angeben, um die an Ihren DynamicFrame zurückgegebenen Ergebnisse zu filtern. Sie müssen query konfigurieren.

Beispiele:

azurecosmos_read_query = glueContext.create_dynamic_frame.from_options( connection_type="azurecosmos", connection_options={ "connectionName": "connectionName", "spark.cosmos.database": cosmosDBName, "spark.cosmos.container": cosmosContainerName, "spark.cosmos.read.customQuery": "query" } )

Schreiben in Container in Azure Cosmos DB für NoSQL

In diesem Beispiel werden Informationen aus einem vorhandenen DynamicFrame, dynamicFrame, in Azure Cosmos DB geschrieben. Wenn der Container bereits Informationen enthält, hängt AWS Glue Daten aus Ihrem DynamicFrame an. Wenn die Informationen im Container ein anderes Schema haben als die Informationen, die Sie schreiben, treten Fehler auf.

Voraussetzungen:

  • Eine Azure-Cosmos-DB-Tabelle, in die Sie schreiben möchten. Sie benötigen Identifikationsinformationen für den Container. Sie müssen den Container erstellen, bevor Sie die Verbindungsmethode aufrufen.

    Ein Container in Azure Cosmos DB für NoSQL wird anhand seiner Datenbank und seines Containers identifiziert. Sie müssen die Namen der Datenbank, cosmosDBName, und des Containers, cosmosContainerName, angeben, wenn Sie eine Verbindung zur Azure Cosmos DB für NoSQL API herstellen.

  • Eine Verbindung von AWS Glue und Azure Cosmos DB, die so konfiguriert ist, dass sie Authentifizierungs- und Netzwerkstandortinformationen bereitstellt. Führen Sie dazu die Schritte im vorherigen Verfahren zum Konfigurieren einer Verbindung zu Azure Cosmos DB aus. Sie benötigen den Namen der AWS-Glue-Verbindung, connectionName.

Beispiele:

azurecosmos_write = glueContext.write_dynamic_frame.from_options( frame=dynamicFrame, connection_type="azurecosmos", connection_options={ "connectionName": connectionName, "spark.cosmos.database": cosmosDBName, "spark.cosmos.container": cosmosContainerName )

Referenz zur Azure-Cosmos-DB-Verbindungsoption

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

  • spark.cosmos.database – Erforderlich. Wird für Lesen/Schreiben verwendet. Zulässige Werte: Datenbanknamen. Name der Azure Cosmos DB für NoSQL-Datenbank.

  • spark.cosmos.container – Erforderlich. Wird für Lesen/Schreiben verwendet. Zulässige Werte: Containernamen. Name des Containers in Azure Cosmos DB für NoSQL.

  • spark.cosmos.read.customQuery – Wird zum Lesen verwendet. Gültige Werte: SELECT-SQL-Abfragen. Benutzerdefinierte Abfrage zur Auswahl von Dokumenten, die gelesen werden sollen.