Configure variáveis de ambiente
Esta página descreve a parte de preparação do processo de migração em que configura as variáveis de ambiente no seu ambiente local. Neste ambiente, vai executar mais tarde os comandos que configuram e acionam o processo de migração. Cada um destes comandos vai usar uma ou mais variáveis de ambiente que define nesta fase.
Nesta fase, faz o seguinte:
Defina variáveis de ambiente comuns a todas as origens compatíveis com o MongoDB.
Defina variáveis de ambiente específicas do tipo de base de dados de origem compatível com o MongoDB e da forma como é implementada.
Defina variáveis de ambiente comuns
O seguinte modelo ajuda a configurar variáveis de ambiente comuns a todas as origens compatíveis com o MongoDB. Vai adicionar variáveis adicionais específicas da sua origem do MongoDB mais tarde.
O modelo configura o seguinte conjunto de variáveis de ambiente:
- Parâmetros gerais aplicáveis a todo o procedimento de migração.
- Parâmetros de ligação do fluxo de dados usados para criar e gerir perfis de ligação do fluxo de dados.
- Parâmetros de posicionamento de dados do fluxo de dados para gerir o posicionamento de dados no contentor do Cloud Storage durante a migração.
- Parâmetros do modelo do Dataflow para gerir o pipeline que vai copiar dados do contentor do Cloud Storage para a sua base de dados do Firestore com compatibilidade com o MongoDB.
- Parâmetros adicionais do modelo do Dataflow: estes parâmetros são derivados de outros parâmetros que especifica e não precisa de os definir.
- Parâmetros de ligação do Firestore para estabelecer uma ligação à base de dados de destino do Firestore com compatibilidade com o MongoDB.
Defina as seguintes variáveis antes de continuar com outros comandos neste guia:
# 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"
Substitua o seguinte:
Parâmetros gerais:
PROJECT_ID: um ID do projeto do projeto onde o pipeline de migração vai ser executado. Google Cloud Exemplo:
example-project
.É possível usar um Firestore de destino com uma base de dados de compatibilidade com o MongoDB localizada noutro projeto. No entanto, este guia pressupõe que todos os recursos relevantes estão localizados no mesmo projeto.
LOCATION: uma região onde o pipeline de migração vai ser executado. Exemplos:
nam5
,us-central1
.Recomendamos que use a mesma região que a base de dados de destino do Firestore com compatibilidade com o MongoDB.
Parâmetros de ligação do fluxo de dados:
SRC_CONNECTION_PROFILE_NAME: um nome legível para humanos do perfil de ligação do Datastream da base de dados de origem compatível com o MongoDB. Exemplo:
source-mongo-profile
.Cria um perfil de associação com este nome mais tarde.
DST_CONNECTION_PROFILE_NAME: um nome legível para o perfil de ligação do fluxo de dados para o contentor de destino do Cloud Storage. Exemplo:
destination-gcs-profile
.Cria um perfil de associação de destino com este nome mais tarde.
DATASTREAM_NAME: um nome legível por humanos de uma stream do Datastream que transfere os dados da base de dados de origem compatível com o MongoDB para o Cloud Storage. Exemplo:
mongo-to-gcs-stream
.Cria esta stream mais tarde.
Parâmetros de posicionamento de dados do Datastream:
GCS_BUCKET_NAME: o nome do contentor do Cloud Storage que criou anteriormente. Exemplo:
mongo-migration-bucket
.Este valor é usado para criar um perfil de associação de destino mais tarde.
GCS_BUCKET_ROOT_PATH: O nome do diretório de nível superior no contentor do Cloud Storage para colocar os dados intermédios durante a migração. Exemplo:
mongo-migration-root
.Este valor é usado para criar um perfil de associação de destino mais tarde.
GCS_BUCKET_TEMPLATE_PATH: um subcaminho no diretório GCS_BUCKET_ROOT_PATH para uma determinada instância de fluxo de dados.
Pode usar o mesmo perfil de ligação de destino para várias exportações para o Cloud Storage. No entanto, tem de designar um subcaminho único para cada migração. Exemplo:
mongo-migration-data-0
.Este valor é usado para criar uma stream mais tarde.
Parâmetros do modelo do Dataflow:
GCS_BUCKET_TEMPLATE_PATH: um subcaminho no diretório GCS_BUCKET_ROOT_PATH onde um modelo do Dataflow vai ser preparado. Exemplo:
mongo-migration-template-path
.NUM_WORKERS: o número inicial de trabalhadores para executar o modelo do Dataflow. Exemplo:
2
.MAX_WORKERS: o número máximo de trabalhadores para executar o modelo do Dataflow. Exemplo:
8
.WORKER_TYPE: o tipo de instância do Compute Engine a usar para a tarefa do Dataflow. O tipo de máquina recomendado é
e2-highmem-8
.
Parâmetros de ligação do Firestore:
FIRESTORE_DATABASE_NAME: o nome da base de dados do Firestore com compatibilidade com o MongoDB para onde migra os dados. Exemplo:
firestore-database-name
.FIRESTORE_CONNECTION_URI: A string do URI de ligação para a base de dados compatível com o Firestore e o MongoDB.
Exemplo:
mongodb://USERNAME:PASSWORD@CONNECTION_STRING:443/FIRESTORE_DATABASE_NAME?loadBalanced=true&authMechanism=SCRAM-SHA-256&tls=true&retryWrites=false
.
Defina variáveis de ambiente específicas do tipo de base de dados de origem
Os seguintes modelos ajudam a configurar variáveis de ambiente específicas do tipo de base de dados de origem compatível com o MongoDB e da forma como é implementada.
MongoDB no Compute Engine
As seguintes variáveis são específicas das bases de dados de origem do MongoDB localizadas num cluster autogerido (Compute Engine). Defina-as antes de continuar com outros comandos neste guia:
# 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"
Substitua o seguinte:
MONGODB_USERNAME: O nome de utilizador da base de dados de origem compatível com o MongoDB. Exemplo:
mongouser
.MONGODB_PASSWORD: A palavra-passe da base de dados de origem compatível com o MongoDB. Exemplo:
mongopassword
.MONGODB_IP_ADDRESS: especifique o endereço IP interno, juntamente com o número da porta, da VM que aloja o seu servidor MongoDB. Exemplo:
10.0.0.1:27017
.Para implementações que não são divididas, mas configuradas com conjuntos de réplicas, o endereço IP de qualquer réplica no conjunto é válido. No entanto, recomendamos que use uma das réplicas secundárias.
Para clusters fragmentados, especifique o endereço de um dos seus servidores mongos.
(Apenas para clusters com conjuntos de réplicas que não são divididos) REPLICA_SET: especifique o nome do conjunto de réplicas que tem de ser usado para o processo de migração. Exemplo:
rs0
.MONGODB_DATABASE_NAME: O nome da base de dados de origem compatível com o MongoDB. Exemplo:
source_db
.PRIVATE_CONNECTION_NAME: o ID da configuração de conetividade privada que criou anteriormente. Exemplo:
pc_name
.
MongoDB através de SSH
Se estiver a gerir uma implementação privada do MongoDB fora do Compute Engine, o Datastream suporta a ligação à sua base de dados de origem através de um túnel SSH encaminhado. Para mais informações, consulte o artigo Túneis SSH.
As seguintes variáveis são específicas para estabelecer ligação a bases de dados de origem do MongoDB através de um túnel SSH encaminhado. Defina-os antes de continuar com outros comandos neste guia:
# 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"
Substitua o seguinte:
MONGODB_USERNAME: O nome de utilizador da base de dados de origem compatível com o MongoDB. Exemplo:
mongouser
.MONGODB_PASSWORD: A palavra-passe da base de dados de origem compatível com o MongoDB. Exemplo:
mongopassword
.MONGODB_IP_ADDRESS: especifique o endereço IP interno, juntamente com o número da porta, da VM que aloja o seu servidor MongoDB. Exemplo:
10.0.0.1:27017
.Para implementações que não são divididas, mas configuradas com conjuntos de réplicas, o endereço IP de qualquer réplica no conjunto é válido. No entanto, recomendamos que use uma das réplicas secundárias.
Para clusters fragmentados, especifique o endereço de um dos seus servidores mongos.
(Apenas para clusters com conjuntos de réplicas que não são divididos) REPLICA_SET: especifique o nome do conjunto de réplicas que tem de ser usado para o processo de migração. Exemplo:
rs0
.MONGODB_DATABASE_NAME: O nome da base de dados de origem compatível com o MongoDB. Exemplo:
source_db
.BASTION_IP_ADDRESS: o endereço do anfitrião na sua rede que pode aceitar uma ligação SSH. Pode ser o próprio servidor MongoDB ou um anfitrião Bastion designado que permite o acesso SSH a partir de uma rede pública e também fornece conetividade interna ao servidor MongoDB real. Exemplo:
30.0.0.1
.BASTION_SSH_PORT: a porta SSH no anfitrião. Exemplo:
22
.BASTION_SSH_USERNAME: nome de utilizador para a ligação SSH.
BASTION_SSH_PRIVATE_KEY: a carga útil completa da chave privada de SSH. Por exemplo, para uma chave RSA, esta carga útil incluiria o cabeçalho
-----BEGIN RSA PRIVATE KEY-----
e o rodapé-----END RSA PRIVATE KEY-----
. Exemplo:BASTION_SSH_PRIVATE_KEY=$(cat ~/.ssh/private_key)
Amazon DocumentDB
Certifique-se de que tem a chave SSH privada para a instância do Amazon EC2 que vai fornecer a ligação ao cluster do DocumentDB. Certifique-se também de que transferiu o pacote de certificados específico da região, conforme descrito na secção Configuração de recursos e extraiu e validou um certificado específico.
As seguintes variáveis são específicas para estabelecer ligação a bases de dados de origem do DocumentDB através de um túnel SSH encaminhado. Defina-os antes de continuar com outros comandos neste guia:
# 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"
Substitua o seguinte:
MONGODB_USERNAME: o nome de utilizador da base de dados de origem do DocumentDB. Exemplo:
mongouser
.MONGODB_PASSWORD: a palavra-passe da base de dados de origem do DocumentDB. Exemplo:
mongopassword
.MONGODB_HOST_ADDRESS: a morada do cluster do DocumentDB. Exemplo:
mydocumentdb.cluster-abcd.us-east-2.docdb.amazonaws.com:27017
.REPLICA_SET: especifique o nome do conjunto de réplicas que tem de ser usado para o processo de migração. Exemplo:
rs0
.MONGODB_DATABASE_NAME: o nome da base de dados de origem do DocumentDB. Exemplo:
source_db
.BASTION_IP_ADDRESS: o endereço IP externo da instância do EC2 que permite o acesso SSH a partir de uma rede pública e também fornece conetividade interna ao cluster do DocumentDB na sua Amazon VPC. Exemplo:
30.0.0.1
.BASTION_SSH_PORT: a porta SSH no anfitrião. Exemplo:
22
.BASTION_SSH_USERNAME: nome de utilizador para a ligação SSH.
BASTION_SSH_PRIVATE_KEY: a carga útil completa da chave privada de SSH. Por exemplo, para uma chave RSA, esta carga útil incluiria o cabeçalho
-----BEGIN RSA PRIVATE KEY-----
e o rodapé-----END RSA PRIVATE KEY-----
. Exemplo:BASTION_SSH_PRIVATE_KEY=$(cat ~/ec2_bastion_host.pem)
DOCUMENT_DB_CA_CERTIFICATE: a carga útil completa do certificado de AC do DocumentDB. Esta carga útil deve incluir o cabeçalho
-----BEGIN CERTIFICATE-----
e o rodapé-----END CERTIFICATE-----
, e só pode incluir um único certificado. Exemplo:BASTION_SSH_PRIVATE_KEY=$(cat ~/us-east-1.pem)
Azure Cosmos DB
As seguintes variáveis são específicas das bases de dados de origem do Azure Cosmos DB. Defina-as antes de continuar com outros comandos neste guia:
# Azure Cosmos DB Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST_ADDRESS"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
Substitua o seguinte:
- MONGODB_USERNAME: O nome de utilizador da base de dados de origem compatível com o MongoDB. Exemplo:
mongouser
. - MONGODB_PASSWORD: A palavra-passe da base de dados de origem compatível com o MongoDB. Exemplo:
mongopassword
. - MONGODB_HOST_ADDRESS: O nome do anfitrião da base de dados de origem compatível com o MongoDB. O valor tem de estar em conformidade com o
formato de ligação SRV do MongoDB.
Exemplo:
host.cosmos.azure.example.com
. - MONGODB_DATABASE_NAME: O nome da base de dados de origem compatível com o MongoDB. Exemplo:
source_db
.
MongoDB Atlas
As seguintes variáveis são específicas das bases de dados de origem do MongoDB Atlas. Defina-as antes de continuar com outros comandos neste guia:
# MongoDB Atlas Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
Substitua o seguinte:
- MONGODB_USERNAME: O nome de utilizador da base de dados de origem compatível com o MongoDB. Exemplo:
mongouser
. - MONGODB_PASSWORD: A palavra-passe da base de dados de origem compatível com o MongoDB. Exemplo:
mongopassword
. - MONGODB_HOST_ADDRESS: O nome do anfitrião da base de dados de origem compatível com o MongoDB. O valor tem de estar em conformidade com o
formato de ligação SRV do MongoDB.
Exemplo:
host.mongodb.example.com
. - MONGODB_DATABASE_NAME: O nome da base de dados de origem compatível com o MongoDB. Exemplo:
source_db
.
O que se segue?
Prossiga para Criar perfis de ligação.