Umgebungsvariablen konfigurieren
Auf dieser Seite wird der Vorbereitungsteil des Migrationsprozesses beschrieben, in dem Sie Umgebungsvariablen in Ihrer lokalen Umgebung konfigurieren. In dieser Umgebung führen Sie später die Befehle aus, mit denen der Migrationsprozess konfiguriert und ausgeführt wird. Für jeden dieser Befehle werden eine oder mehrere Umgebungsvariablen verwendet, die Sie in dieser Phase festlegen.
In dieser Phase gehen Sie so vor:
Legen Sie Umgebungsvariablen fest, die für alle unterstützten MongoDB-kompatiblen Quellen gelten.
Legen Sie Umgebungsvariablen fest, die für den Typ der MongoDB-kompatiblen Quelldatenbank und für die Art der Bereitstellung spezifisch sind.
Allgemeine Umgebungsvariablen festlegen
Mit der folgenden Vorlage können Sie Umgebungsvariablen einrichten, die für alle unterstützten MongoDB-kompatiblen Quellen gelten. Sie fügen später zusätzliche Variablen hinzu, die für Ihre MongoDB-Quelle spezifisch sind.
Mit der Vorlage werden die folgenden Umgebungsvariablen konfiguriert:
- Allgemeine Parameter, die für das gesamte Migrationsverfahren gelten.
- Datastream-Verbindungsparameter, die zum Erstellen und Verwalten von Datastream-Verbindungsprofilen verwendet werden.
- Parameter für die Datenplatzierung von Datastreams zum Verwalten der Datenplatzierung im Cloud Storage-Bucket während der Migration.
- Dataflow-Vorlagenparameter zum Verwalten der Pipeline, mit der Daten aus dem Cloud Storage-Bucket in Ihre Firestore-Datenbank mit MongoDB-Kompatibilität kopiert werden.
- Zusätzliche Dataflow-Vorlagenparameter: Diese Parameter werden aus anderen Parametern abgeleitet, die Sie angeben. Sie müssen sie nicht festlegen.
- Firestore-Verbindungsparameter zum Herstellen einer Verbindung zu Ihrer Firestore-Zieldatenbank mit MongoDB-Kompatibilität.
Legen Sie die folgenden Variablen fest, bevor Sie mit anderen Befehlen in dieser Anleitung fortfahren:
# General parameters
PROJECT_ID="PROJECT_ID"
LOCATION="LOCATION"
# Datastream connection parameters
SRC_CONNECTION_PROFILE_NAME="SRC_CONNECTION_PROFILE_NAME"
DST_CONNECTION_PROFILE_NAME="DST_CONNECTION_PROFILE_NAME"
DATASTREAM_NAME="DATASTREAM_NAME"
# Datastream data placement parameters
GCS_BUCKET_NAME="GCS_BUCKET_NAME"
GCS_BUCKET_ROOT_PATH="GCS_BUCKET_ROOT_PATH"
GCS_BUCKET_SUB_PATH="GCS_BUCKET_SUB_PATH"
# Dataflow template parameters
GCS_BUCKET_TEMPLATE_PATH="GCS_BUCKET_TEMPLATE_PATH"
NUM_WORKERS=NUM_WORKERS
MAX_WORKERS=MAX_WORKERS
WORKER_TYPE="WORKER_TYPE"
# Additional Dataflow template parameters: these are initialized
# from parameters above and don't require further customization
INPUT_FILE_LOCATION="gs://${GCS_BUCKET_NAME}/${GCS_BUCKET_ROOT_PATH}/${GCS_BUCKET_SUB_PATH}/"
TEMP_OUTPUT_LOCATION="gs://${GCS_BUCKET_NAME}/${GCS_BUCKET_ROOT_PATH}/tmp"
DLQ_LOCATION="gs://${GCS_BUCKET_NAME}/${GCS_BUCKET_ROOT_PATH}/dql"
STAGING_LOCATION="gs://${GCS_BUCKET_NAME}/${GCS_BUCKET_ROOT_PATH}/staging"
# Firestore connection parameters
FIRESTORE_CONNECTION_URI="FIRESTORE_CONNECTION_URI"
FIRESTORE_DATABASE_NAME="FIRESTORE_DATABASE_NAME"
Ersetzen Sie Folgendes:
Allgemeine Parameter:
PROJECT_ID: Die Projekt-ID des Google Cloud Projekts, in dem die Migrationspipeline ausgeführt wird. Beispiel:
example-project
.Es ist möglich, eine Firestore-Zieldatenbank mit MongoDB-Kompatibilität zu verwenden, die sich in einem anderen Projekt befindet. In dieser Anleitung wird jedoch davon ausgegangen, dass sich alle relevanten Ressourcen im selben Projekt befinden.
LOCATION: Eine Region, in der die Migrationspipeline ausgeführt wird. Beispiele:
nam5
,us-central1
.Wir empfehlen, dieselbe Region wie für die Firestore-Datenbank mit MongoDB-Kompatibilität zu verwenden.
Parameter für die Datastream-Verbindung:
SRC_CONNECTION_PROFILE_NAME: Ein für Menschen lesbarer Name für das Datastream-Verbindungsprofil der MongoDB-kompatiblen Quelldatenbank. Beispiel:
source-mongo-profile
.Sie erstellen später ein Verbindungsprofil mit diesem Namen.
DST_CONNECTION_PROFILE_NAME: Ein lesbarer Name für das Datastream-Verbindungsprofil für den Cloud Storage-Ziel-Bucket. Beispiel:
destination-gcs-profile
.Sie erstellen später ein Zielverbindungsprofil mit diesem Namen.
DATASTREAM_NAME: Ein lesbarer Name eines Datastream-Streams, mit dem die Daten aus der MongoDB-kompatiblen Quelldatenbank in Cloud Storage übertragen werden. Beispiel:
mongo-to-gcs-stream
.Sie erstellen diesen Stream später.
Parameter für die Datenplatzierung Datastream:
GCS_BUCKET_NAME: Der Name des Cloud Storage-Bucket, den Sie zuvor erstellt haben. Beispiel:
mongo-migration-bucket
.Dieser Wert wird später zum Erstellen eines Zielverbindungsprofils verwendet.
GCS_BUCKET_ROOT_PATH: Der Name des Verzeichnisses der obersten Ebene im Cloud Storage-Bucket, in dem die Zwischendaten während der Migration platziert werden. Beispiel:
mongo-migration-root
.Dieser Wert wird später zum Erstellen eines Zielverbindungsprofils verwendet.
GCS_BUCKET_TEMPLATE_PATH: Ein Unterpfad im Verzeichnis GCS_BUCKET_ROOT_PATH für eine bestimmte Datastream-Instanz.
Dasselbe Zielverbindungsprofil kann für mehrere Exporte nach Cloud Storage verwendet werden. Sie müssen jedoch für jede Migration einen eindeutigen Unterpfad angeben. Beispiel:
mongo-migration-data-0
.Dieser Wert wird später zum Erstellen eines Streams verwendet.
Dataflow-Vorlagenparameter:
GCS_BUCKET_TEMPLATE_PATH: Ein Unterpfad im Verzeichnis GCS_BUCKET_ROOT_PATH, in dem eine Dataflow-Vorlage bereitgestellt wird. Beispiel:
mongo-migration-template-path
.NUM_WORKERS: Die Anzahl der Worker, mit denen die Dataflow-Vorlage ausgeführt werden soll. Beispiel:
2
.MAX_WORKERS: Die maximale Anzahl von Workern, mit denen die Dataflow-Vorlage ausgeführt werden soll. Beispiel:
8
.WORKER_TYPE: Der Compute Engine-Instanztyp, der für den Dataflow-Job verwendet werden soll. Der empfohlene Maschinentyp ist
e2-highmem-8
.
Firestore-Verbindungsparameter:
FIRESTORE_DATABASE_NAME: Der Name der Firestore-Datenbank mit MongoDB-Kompatibilität, in die Sie die Daten migrieren. Beispiel:
firestore-database-name
.FIRESTORE_CONNECTION_URI: Der Verbindungs-URI-String für die Firestore-Datenbank mit MongoDB-Kompatibilität.
Beispiel:
mongodb://USERNAME:PASSWORD@CONNECTION_STRING:443/FIRESTORE_DATABASE_NAME?loadBalanced=true&authMechanism=SCRAM-SHA-256&tls=true&retryWrites=false
.
Umgebungsvariablen für den Quelldatenbanktyp festlegen
Die folgenden Vorlagen helfen Ihnen, Umgebungsvariablen einzurichten, die für den Typ der MongoDB-kompatiblen Quelldatenbank und für die Art ihrer Bereitstellung spezifisch sind.
MongoDB auf Compute Engine
Die folgenden Variablen gelten speziell für MongoDB-Quelldatenbanken in einem selbstverwalteten Cluster (Compute Engine). Legen Sie sie fest, bevor Sie mit anderen Befehlen in dieser Anleitung fortfahren:
# Google Compute Engine VM MongoDB Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_IP_ADDRESS="MONGODB_IP_ADDRESS"
REPLICA_SET="REPLICA_SET"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
PRIVATE_CONNECTION_NAME="PRIVATE_CONNECTION_NAME"
Ersetzen Sie Folgendes:
MONGODB_USERNAME: Der Nutzername der MongoDB-kompatiblen Quelldatenbank. Beispiel:
mongouser
.MONGODB_PASSWORD: Das Passwort der MongoDB-kompatiblen Quelldatenbank. Beispiel:
mongopassword
.MONGODB_IP_ADDRESS: Geben Sie die interne IP-Adresse zusammen mit der Portnummer der VM an, auf der Ihr MongoDB-Server gehostet wird. Beispiel:
10.0.0.1:27017
.Bei Deployments, die nicht shardiert, sondern mit Replikatgruppen konfiguriert sind, ist die IP-Adresse eines beliebigen Replikats in der Gruppe gültig. Wir empfehlen jedoch, eines der sekundären Replikate zu verwenden.
Geben Sie für sharded clusters (shard-Cluster) die Adresse eines Ihrer mongos-Server an.
(Nur für Cluster mit Replikatgruppen, die nicht shardiert sind) REPLICA_SET: Geben Sie den Namen der Replikatgruppe an, die für die Migration verwendet werden muss. Beispiel:
rs0
.MONGODB_DATABASE_NAME: Der Name der MongoDB-kompatiblen Quelldatenbank. Beispiel:
source_db
.PRIVATE_CONNECTION_NAME: Die ID der Konfiguration für die private Verbindung, die Sie zuvor erstellt haben. Beispiel:
pc_name
.
MongoDB über SSH
Wenn Sie eine private MongoDB-Bereitstellung außerhalb von Compute Engine verwalten, unterstützt Datastream die Verbindung zu Ihrer Quelldatenbank über einen Weiterleitungs-SSH-Tunnel. Weitere Informationen zu SSH-Tunneln
Die folgenden Variablen sind spezifisch für die Verbindung zu MongoDB-Quelldatenbanken über einen Weiterleitungs-SSH-Tunnel. Legen Sie sie fest, bevor Sie mit anderen Befehlen in dieser Anleitung fortfahren:
# MongoDB over an SSH Tunnel Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_IP_ADDRESS="MONGODB_IP_ADDRESS"
REPLICA_SET="REPLICA_SET"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
BASTION_IP_ADDRESS="BASTION_IP_ADDRESS"
BASTION_SSH_PORT="BASTION_SSH_PORT"
BASTION_SSH_USERNAME="BASTION_SSH_USERNAME"
BASTION_SSH_PRIVATE_KEY="BASTION_SSH_PRIVATE_KEY"
Ersetzen Sie Folgendes:
MONGODB_USERNAME: Der Nutzername der MongoDB-kompatiblen Quelldatenbank. Beispiel:
mongouser
.MONGODB_PASSWORD: Das Passwort der MongoDB-kompatiblen Quelldatenbank. Beispiel:
mongopassword
.MONGODB_IP_ADDRESS: Geben Sie die interne IP-Adresse zusammen mit der Portnummer der VM an, auf der Ihr MongoDB-Server gehostet wird. Beispiel:
10.0.0.1:27017
.Bei Deployments, die nicht shardiert, sondern mit Replikatgruppen konfiguriert sind, ist die IP-Adresse eines beliebigen Replikats in der Gruppe gültig. Wir empfehlen jedoch, eines der sekundären Replikate zu verwenden.
Geben Sie für sharded clusters (shard-Cluster) die Adresse eines Ihrer mongos-Server an.
(Nur für Cluster mit Replikatgruppen, die nicht shardiert sind) REPLICA_SET: Geben Sie den Namen der Replikatgruppe an, die für die Migration verwendet werden muss. Beispiel:
rs0
.MONGODB_DATABASE_NAME: Der Name der MongoDB-kompatiblen Quelldatenbank. Beispiel:
source_db
.BASTION_IP_ADDRESS: Die Adresse des Hosts in Ihrem Netzwerk, der eine SSH-Verbindung akzeptieren kann. Dies kann der MongoDB-Server selbst oder ein dafür vorgesehener Bastion-Host sein, der SSH-Zugriff über ein öffentliches Netzwerk ermöglicht und auch eine interne Verbindung zum eigentlichen MongoDB-Server herstellt. Beispiel:
30.0.0.1
.BASTION_SSH_PORT: Der SSH-Port auf dem Host. Beispiel:
22
.BASTION_SSH_USERNAME: Nutzername für die SSH-Verbindung.
BASTION_SSH_PRIVATE_KEY: Die vollständige Nutzlast des privaten SSH-Schlüssels. Bei einem RSA-Schlüssel würde diese Nutzlast beispielsweise den
-----BEGIN RSA PRIVATE KEY-----
-Header und die-----END RSA PRIVATE KEY-----
-Fußzeile enthalten. Beispiel:BASTION_SSH_PRIVATE_KEY=$(cat ~/.ssh/private_key)
Amazon DocumentDB
Achten Sie darauf, dass Sie den privaten SSH-Schlüssel für die Amazon EC2-Instanz haben, die die Verbindung zum DocumentDB-Cluster herstellt. Achten Sie außerdem darauf, dass Sie das regionsspezifische Zertifikatpaket wie im Abschnitt Ressourcenkonfiguration beschrieben heruntergeladen und ein bestimmtes Zertifikat extrahiert und validiert haben.
Die folgenden Variablen sind spezifisch für die Verbindung zu DocumentDB-Quelldatenbanken über einen Weiterleitungs-SSH-Tunnel. Legen Sie sie fest, bevor Sie mit anderen Befehlen in dieser Anleitung fortfahren:
# DocumentDB over an EC2 SSH Tunnel Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST_ADDRESS"
REPLICA_SET="REPLICA_SET"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
BASTION_IP_ADDRESS="BASTION_IP_ADDRESS"
BASTION_SSH_PORT="BASTION_SSH_PORT"
BASTION_SSH_USERNAME="BASTION_SSH_USERNAME"
BASTION_SSH_PRIVATE_KEY="BASTION_SSH_PRIVATE_KEY"
DOCUMENT_DB_CA_CERTIFICATE="DOCUMENT_DB_CA_CERTIFICATE"
Ersetzen Sie Folgendes:
MONGODB_USERNAME: Der Nutzername der DocumentDB-Quelldatenbank. Beispiel:
mongouser
.MONGODB_PASSWORD: Das Passwort der DocumentDB-Quelldatenbank. Beispiel:
mongopassword
.MONGODB_HOST_ADDRESS: Die Adresse des DocumentDB-Clusters. Beispiel:
mydocumentdb.cluster-abcd.us-east-2.docdb.amazonaws.com:27017
.REPLICA_SET: Geben Sie den Namen des Replikatsatzes an, der für die Migration verwendet werden muss. Beispiel:
rs0
.MONGODB_DATABASE_NAME: Der Name der DocumentDB-Quelldatenbank. Beispiel:
source_db
.BASTION_IP_ADDRESS: die externe IP-Adresse der EC2-Instanz, die SSH-Zugriff über ein öffentliches Netzwerk ermöglicht und auch interne Verbindungen zum DocumentDB-Cluster in Ihrer Amazon VPC bereitstellt. Beispiel:
30.0.0.1
.BASTION_SSH_PORT: Der SSH-Port auf dem Host. Beispiel:
22
.BASTION_SSH_USERNAME: Nutzername für die SSH-Verbindung.
BASTION_SSH_PRIVATE_KEY: Die vollständige Nutzlast des privaten SSH-Schlüssels. Bei einem RSA-Schlüssel würde diese Nutzlast beispielsweise den
-----BEGIN RSA PRIVATE KEY-----
-Header und die-----END RSA PRIVATE KEY-----
-Fußzeile enthalten. Beispiel:BASTION_SSH_PRIVATE_KEY=$(cat ~/ec2_bastion_host.pem)
DOCUMENT_DB_CA_CERTIFICATE: Die vollständige Nutzlast des DocumentDB-CA-Zertifikats. Diese Nutzlast sollte den
-----BEGIN CERTIFICATE-----
-Header und die-----END CERTIFICATE-----
-Fußzeile enthalten und darf nur ein einzelnes Zertifikat enthalten. Beispiel:BASTION_SSH_PRIVATE_KEY=$(cat ~/us-east-1.pem)
Azure Cosmos DB
Die folgenden Variablen sind spezifisch für Azure Cosmos DB-Quelldatenbanken. Legen Sie sie fest, bevor Sie mit anderen Befehlen in dieser Anleitung fortfahren:
# Azure Cosmos DB Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST_ADDRESS"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
Ersetzen Sie Folgendes:
- MONGODB_USERNAME: Der Nutzername der MongoDB-kompatiblen Quelldatenbank. Beispiel:
mongouser
. - MONGODB_PASSWORD: Das Passwort der MongoDB-kompatiblen Quelldatenbank. Beispiel:
mongopassword
. - MONGODB_HOST_ADDRESS: Der Hostname der MongoDB-kompatiblen Quelldatenbank. Der Wert muss dem MongoDB SRV-Verbindungsformat entsprechen.
Beispiel:
host.cosmos.azure.example.com
. - MONGODB_DATABASE_NAME: Der Name der MongoDB-kompatiblen Quelldatenbank. Beispiel:
source_db
.
MongoDB Atlas
Die folgenden Variablen gelten speziell für MongoDB Atlas-Quelldatenbanken. Legen Sie sie fest, bevor Sie mit anderen Befehlen in dieser Anleitung fortfahren:
# MongoDB Atlas Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
Ersetzen Sie Folgendes:
- MONGODB_USERNAME: Der Nutzername der MongoDB-kompatiblen Quelldatenbank. Beispiel:
mongouser
. - MONGODB_PASSWORD: Das Passwort der MongoDB-kompatiblen Quelldatenbank. Beispiel:
mongopassword
. - MONGODB_HOST_ADDRESS: Der Hostname der MongoDB-kompatiblen Quelldatenbank. Der Wert muss dem MongoDB SRV-Verbindungsformat entsprechen.
Beispiel:
host.mongodb.example.com
. - MONGODB_DATABASE_NAME: Der Name der MongoDB-kompatiblen Quelldatenbank. Beispiel:
source_db
.
Nächste Schritte
Fahren Sie mit Verbindungsprofile erstellen fort.