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 Datastream-Verbindungen:
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 von 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 Bereitstellungen, 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 privaten Konfiguration für die 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 Bereitstellungen, 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. Das 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 Konnektivität zum DocumentDB-Cluster in Ihrer Amazon VPC bietet. 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.