Configura las variables de entorno
En esta página, se describe la parte de preparación del proceso de migración en la que configuras las variables de entorno en tu entorno local. Desde este entorno, ejecutarás más adelante los comandos que configuran y activan el proceso de migración. Cada uno de estos comandos usará una o más variables de entorno que establezcas en esta etapa.
En esta etapa, haz lo siguiente:
Establece variables de entorno que sean comunes a todas las fuentes compatibles con MongoDB admitidas.
Establece variables de entorno que sean específicas del tipo de base de datos de origen compatible con MongoDB y de cómo se implementa.
Establece variables de entorno comunes
La siguiente plantilla ayuda a configurar variables de entorno que son comunes a todas las fuentes compatibles con MongoDB admitidas. Más adelante, agregarás variables adicionales que sean específicas de tu fuente de MongoDB.
La plantilla configura el siguiente conjunto de variables de entorno:
- Parámetros generales que se aplican a todo el procedimiento de migración.
- Parámetros de conexión de Datastream que se usan para crear y administrar perfiles de conexión de Datastream.
- Parámetros de ubicación de datos de Datastream para administrar la ubicación de datos en el bucket de Cloud Storage durante la migración.
- Parámetros de plantilla de Dataflow para administrar la canalización que copiará datos del bucket de Cloud Storage a tu base de datos de Firestore con compatibilidad con MongoDB.
- Parámetros adicionales de plantilla de Dataflow que se derivan de otros parámetros que especificas y que no necesitas establecer.
- Parámetros de conexión de Firestore para establecer una conexión con tu base de datos de destino de Firestore con compatibilidad con MongoDB.
Establece las siguientes variables antes de continuar con otros comandos de esta guía:
# 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"
Reemplaza lo siguiente:
Parámetros generales:
PROJECT_ID: Es un ID del proyecto en el que se ejecutará la canalización de migración. Google Cloud Ejemplo:
example-project.Es posible usar una base de datos de destino de Firestore con compatibilidad con MongoDB que se encuentre en otro proyecto. Sin embargo, en esta guía, se supone que todos los recursos pertinentes se encuentran en el mismo proyecto.
LOCATION: una región en la que se ejecutará la canalización de migración. Ejemplos:
nam5,us-central1.Te recomendamos que uses la misma región que la base de datos de destino de Firestore con compatibilidad con MongoDB.
Parámetros de conexión de Datastream:
SRC_CONNECTION_PROFILE_NAME: Es un nombre legible para el perfil de conexión de Datastream de la base de datos de origen compatible con MongoDB. Ejemplo:
source-mongo-profile.Más adelante, crearás un perfil de conexión con este nombre.
DST_CONNECTION_PROFILE_NAME: Es un nombre legible para el perfil de conexión de Datastream del bucket de Cloud Storage de destino. Ejemplo:
destination-gcs-profile.Más adelante, crearás un perfil de conexión de destino con este nombre.
DATASTREAM_NAME: Es un nombre legible de una transmisión de Datastream que transferirá los datos de la base de datos de origen compatible con MongoDB a Cloud Storage. Ejemplo:
mongo-to-gcs-stream.Más adelante, crearás esta transmisión.
Parámetros de ubicación de datos de Datastream:
GCS_BUCKET_NAME: Es el nombre del bucket de Cloud Storage que creaste antes. Ejemplo:
mongo-migration-bucket.Este valor se usa para crear un perfil de conexión de destino más adelante.
GCS_BUCKET_ROOT_PATH: Es el nombre del directorio de nivel superior en el bucket de Cloud Storage para colocar los datos intermedios durante la migración. Ejemplo:
mongo-migration-root.Este valor se usa para crear un perfil de conexión de destino más adelante.
GCS_BUCKET_TEMPLATE_PATH: Es una ruta de acceso secundaria en el directorio GCS_BUCKET_ROOT_PATH para una instancia de Datastream determinada.
Se puede usar el mismo perfil de conexión de destino para varias exportaciones a Cloud Storage. Sin embargo, debes designar una ruta de acceso secundaria única para cada migración. Ejemplo:
mongo-migration-data-0.Este valor se usa para crear una transmisión más adelante.
Parámetros de plantilla de Dataflow:
GCS_BUCKET_TEMPLATE_PATH: Es una ruta de acceso secundaria en el directorio GCS_BUCKET_ROOT_PATH en la que se almacenará una plantilla de Dataflow. Ejemplo:
mongo-migration-template-path.NUM_WORKERS: Es la cantidad inicial de trabajadores para ejecutar la plantilla de Dataflow. Ejemplo:
2.MAX_WORKERS: Es la cantidad máxima de trabajadores para ejecutar la plantilla de Dataflow. Ejemplo:
8.WORKER_TYPE: Es el tipo de instancia de Compute Engine que se usará para el trabajo de Dataflow. El tipo de máquina recomendado es
e2-highmem-8.
Parámetros de conexión de Firestore:
FIRESTORE_DATABASE_NAME: Es el nombre de la base de datos de Firestore con compatibilidad con MongoDB a la que migras los datos. Ejemplo:
firestore-database-name.-
Ejemplo:
mongodb://USERNAME:PASSWORD@CONNECTION_STRING:443/FIRESTORE_DATABASE_NAME?loadBalanced=true&authMechanism=SCRAM-SHA-256&tls=true&retryWrites=false.
Establece variables de entorno específicas del tipo de base de datos de origen
Las siguientes plantillas ayudan a configurar variables de entorno que son específicas del tipo de base de datos de origen compatible con MongoDB y de cómo se implementa.
MongoDB en Compute Engine
Las siguientes variables son específicas para las bases de datos de origen de MongoDB ubicadas en un clúster autoadministrado (Compute Engine). Establécelas antes de continuar con otros comandos de esta guía:
# 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"
Reemplaza lo siguiente:
MONGODB_USERNAME: Es el nombre de usuario de la base de datos de origen compatible con MongoDB. Ejemplo:
mongouser.MONGODB_PASSWORD: Es la contraseña de la base de datos de origen compatible con MongoDB. Ejemplo:
mongopassword.MONGODB_IP_ADDRESS: Especifica la dirección IP interna, junto con el número de puerto, de la VM que aloja tu servidor de MongoDB. Ejemplo:
10.0.0.1:27017.Para las implementaciones que no están fragmentadas, pero que están configuradas con conjuntos de réplicas, la dirección IP de cualquier réplica del conjunto es válida. Sin embargo, te recomendamos que uses una de las réplicas secundarias.
Para los clústeres fragmentados, especifica la dirección de uno de tus servidores mongos.
(Solo para clústeres con conjuntos de réplicas que no están fragmentados) REPLICA_SET: Especifica el nombre del conjunto de réplicas que se debe usar para el proceso de migración. Ejemplo:
rs0.MONGODB_DATABASE_NAME: Es el nombre de la base de datos de origen compatible con MongoDB. Ejemplo:
source_db.PRIVATE_CONNECTION_NAME: Es el ID de la configuración de conectividad privada que creaste antes. Ejemplo:
pc_name.
MongoDB a través de SSH
Si administras una implementación privada de MongoDB fuera de Compute Engine, Datastream admite la conexión a tu base de datos de origen a través de un túnel SSH de reenvío. Para obtener más información, consulta Túneles SSH.
Las siguientes variables son específicas para conectarse a bases de datos de origen de MongoDB a través de un túnel SSH de reenvío. Establécelas antes de continuar con otros comandos de esta guía:
# 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"
Reemplaza lo siguiente:
MONGODB_USERNAME: Es el nombre de usuario de la base de datos de origen compatible con MongoDB. Ejemplo:
mongouser.MONGODB_PASSWORD: Es la contraseña de la base de datos de origen compatible con MongoDB. Ejemplo:
mongopassword.MONGODB_IP_ADDRESS: Especifica la dirección IP interna, junto con el número de puerto, de la VM que aloja tu servidor de MongoDB. Ejemplo:
10.0.0.1:27017.Para las implementaciones que no están fragmentadas, pero que están configuradas con conjuntos de réplicas, la dirección IP de cualquier réplica del conjunto es válida. Sin embargo, te recomendamos que uses una de las réplicas secundarias.
Para los clústeres fragmentados, especifica la dirección de uno de tus servidores mongos.
(Solo para clústeres con conjuntos de réplicas que no están fragmentados) REPLICA_SET: Especifica el nombre del conjunto de réplicas que se debe usar para el proceso de migración. Ejemplo:
rs0.MONGODB_DATABASE_NAME: Es el nombre de la base de datos de origen compatible con MongoDB. Ejemplo:
source_db.BASTION_IP_ADDRESS: Es la dirección del host en tu red que puede aceptar una conexión SSH. Puede ser el servidor de MongoDB en sí o un host de Bastión designado que permita el acceso SSH desde una red pública y que también proporcione conectividad interna al servidor de MongoDB real. Ejemplo:
30.0.0.1.BASTION_SSH_PORT: Es el puerto SSH en el host. Ejemplo:
22.BASTION_SSH_USERNAME: Es el nombre de usuario para la conexión SSH.
BASTION_SSH_PRIVATE_KEY: Es la carga útil completa de la clave privada SSH. Por ejemplo, para una clave RSA, esta carga útil incluiría el encabezado
-----BEGIN RSA PRIVATE KEY-----y el pie de página-----END RSA PRIVATE KEY-----. Ejemplo:BASTION_SSH_PRIVATE_KEY=$(cat ~/.ssh/private_key)
Amazon DocumentDB
Asegúrate de tener la clave SSH privada para la instancia de Amazon EC2 que proporcionará la conexión al clúster de DocumentDB. También asegúrate de que has descargado el paquete de certificados específico de la región, como se describe en la sección Configuración de recursos , y de que has extraído y validado un certificado específico.
Las siguientes variables son específicas para conectarse a bases de datos de origen de DocumentDB a través de un túnel SSH de reenvío. Establécelas antes de continuar con otros comandos de esta guía:
# 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"
Reemplaza lo siguiente:
MONGODB_USERNAME: Es el nombre de usuario de la base de datos de origen de DocumentDB. Ejemplo:
mongouser.MONGODB_PASSWORD: Es la contraseña de la base de datos de origen de DocumentDB. Ejemplo:
mongopassword.MONGODB_HOST_ADDRESS: Es la dirección del clúster de DocumentDB. Ejemplo:
mydocumentdb.cluster-abcd.us-east-2.docdb.amazonaws.com:27017.REPLICA_SET: Especifica el nombre del conjunto de réplicas que se debe usar para el proceso de migración. Ejemplo:
rs0.MONGODB_DATABASE_NAME: Es el nombre de la base de datos de origen de DocumentDB. Ejemplo:
source_db.BASTION_IP_ADDRESS: Es la dirección IP externa de la instancia de EC2 que permite el acceso SSH desde una red pública y que también proporciona conectividad interna al clúster de DocumentDB dentro de tu Amazon VPC. Ejemplo:
30.0.0.1.BASTION_SSH_PORT: Es el puerto SSH en el host. Ejemplo:
22.BASTION_SSH_USERNAME: Es el nombre de usuario para la conexión SSH.
BASTION_SSH_PRIVATE_KEY: Es la carga útil completa de la clave privada SSH. Por ejemplo, para una clave RSA, esta carga útil incluiría el encabezado
-----BEGIN RSA PRIVATE KEY-----y el pie de página-----END RSA PRIVATE KEY-----. Ejemplo:BASTION_SSH_PRIVATE_KEY=$(cat ~/ec2_bastion_host.pem)DOCUMENT_DB_CA_CERTIFICATE: Es la carga útil completa del certificado de CA de DocumentDB. Esta carga útil debe incluir el encabezado
-----BEGIN CERTIFICATE-----y el pie de página-----END CERTIFICATE-----, y solo debe incluir un certificado. Ejemplo:BASTION_SSH_PRIVATE_KEY=$(cat ~/us-east-1.pem)
Azure Cosmos DB
Las siguientes variables son específicas para las bases de datos de origen de Azure Cosmos DB. Establécelas antes de continuar con otros comandos de esta guía:
# Azure Cosmos DB Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST_ADDRESS"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
Reemplaza lo siguiente:
- MONGODB_USERNAME: Es el nombre de usuario de la base de datos de origen compatible con MongoDB. Ejemplo:
mongouser. - MONGODB_PASSWORD: Es la contraseña de la base de datos de origen compatible con MongoDB. Ejemplo:
mongopassword. - MONGODB_HOST_ADDRESS: Es el nombre de host de la base de datos de origen compatible con MongoDB. El valor debe cumplir con el
formato de conexión SRV de MongoDB.
Ejemplo:
host.cosmos.azure.example.com. - MONGODB_DATABASE_NAME: Es el nombre de la base de datos de origen compatible con MongoDB. Ejemplo:
source_db.
MongoDB Atlas
Las siguientes variables son específicas para las bases de datos de origen de MongoDB Atlas. Establécelas antes de continuar con otros comandos de esta guía:
# MongoDB Atlas Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
Reemplaza lo siguiente:
- MONGODB_USERNAME: Es el nombre de usuario de la base de datos de origen compatible con MongoDB. Ejemplo:
mongouser. - MONGODB_PASSWORD: Es la contraseña de la base de datos de origen compatible con MongoDB. Ejemplo:
mongopassword. - MONGODB_HOST_ADDRESS: Es el nombre de host de la base de datos de origen compatible con MongoDB. El valor debe cumplir con el
formato de conexión SRV de MongoDB.
Ejemplo:
host.mongodb.example.com. - MONGODB_DATABASE_NAME: Es el nombre de la base de datos de origen compatible con MongoDB. Ejemplo:
source_db.
¿Qué sigue?
Continúa con Crea perfiles de conexión.