Configure as variáveis de ambiente
Nesta página, descrevemos a parte de preparação do processo de migração, em que você configura variáveis de ambiente no seu ambiente local. Nesse ambiente, você vai executar os comandos que configuram e acionam o processo de migração. Cada um desses comandos usa uma ou mais variáveis de ambiente que você define nesta etapa.
Nesta etapa, faça o seguinte:
Defina variáveis de ambiente comuns a todas as fontes compatíveis com o MongoDB.
Defina variáveis de ambiente específicas para o tipo de banco de dados de origem compatível com o MongoDB e para a forma como ele é implantado.
Definir variáveis de ambiente comuns
O modelo a seguir ajuda a configurar variáveis de ambiente comuns a todas as fontes compatíveis com o MongoDB. Você vai adicionar outras variáveis 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 conexão do Datastream usados para criar e gerenciar perfis de conexão do Datastream.
- Parâmetros de posicionamento de dados do Datastream para gerenciar o posicionamento de dados no bucket do Cloud Storage durante a migração.
- Parâmetros do modelo do Dataflow para gerenciar o pipeline que vai copiar dados do bucket do Cloud Storage para o banco de dados do Firestore com compatibilidade com o MongoDB.
- Parâmetros adicionais do modelo do Dataflow: esses parâmetros são derivados de outros que você especifica e não precisam ser definidos.
- Parâmetros de conexão do Firestore para estabelecer uma conexão com o banco 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:
Parâmetros gerais:
PROJECT_ID: um ID do projeto do projeto Google Cloud em que o pipeline de migração será executado. Exemplo:
example-project
.É possível usar um banco de dados de destino do Firestore com compatibilidade com o MongoDB localizado em outro projeto. No entanto, este guia pressupõe que todos os recursos relevantes estejam localizados no mesmo projeto.
LOCATION: uma região em que o pipeline de migração será executado. Exemplos:
nam5
,us-central1
.Recomendamos usar a mesma região do banco de dados de destino do Firestore com compatibilidade com o MongoDB.
Parâmetros de conexão do Datastream:
SRC_CONNECTION_PROFILE_NAME: um nome legível para o perfil de conexão do Datastream do banco de dados de origem compatível com o MongoDB. Exemplo:
source-mongo-profile
.Você cria um perfil de conexão com esse nome mais tarde.
DST_CONNECTION_PROFILE_NAME: um nome legível para o perfil de conexão do Datastream do bucket de destino do Cloud Storage. Exemplo:
destination-gcs-profile
.Você vai criar um perfil de conexão de destino com esse nome mais tarde.
DATASTREAM_NAME: um nome legível de um fluxo do Datastream que vai transferir os dados do banco de dados de origem compatível com o MongoDB para o Cloud Storage. Exemplo:
mongo-to-gcs-stream
.Você vai criar esse fluxo mais tarde.
Parâmetros de posicionamento de dados do Datastream:
GCS_BUCKET_NAME: o nome do bucket do Cloud Storage que você criou antes. Exemplo:
mongo-migration-bucket
.Esse valor é usado para criar um perfil de conexão de destino mais tarde.
GCS_BUCKET_ROOT_PATH: o nome do diretório de nível superior no bucket do Cloud Storage para colocar os dados intermediários durante a migração. Exemplo:
mongo-migration-root
.Esse valor é usado para criar um perfil de conexão de destino mais tarde.
GCS_BUCKET_TEMPLATE_PATH: um subcaminho no diretório GCS_BUCKET_ROOT_PATH para uma determinada instância do Datastream.
O mesmo perfil de conexão de destino pode ser usado para várias exportações para o Cloud Storage. No entanto, é necessário designar um subcaminho exclusivo para cada migração. Exemplo:
mongo-migration-data-0
.Esse valor é usado para criar um fluxo mais tarde.
Parâmetros do modelo do Dataflow:
GCS_BUCKET_TEMPLATE_PATH: um subcaminho no diretório GCS_BUCKET_ROOT_PATH em que um modelo do Dataflow será armazenado temporariamente. Exemplo:
mongo-migration-template-path
.NUM_WORKERS: o número inicial de workers para executar o modelo do Dataflow. Exemplo:
2
.MAX_WORKERS: o número máximo de workers para executar o modelo do Dataflow. Exemplo:
8
.WORKER_TYPE: o tipo de instância do Compute Engine a ser usado para o job do Dataflow. O tipo de máquina recomendado é
e2-highmem-8
.
Parâmetros de conexão do Firestore:
FIRESTORE_DATABASE_NAME: o nome do banco de dados do Firestore com compatibilidade com o MongoDB para onde você migra os dados. Exemplo:
firestore-database-name
.FIRESTORE_CONNECTION_URI: a string de URI de conexão para o banco de dados do Firestore com compatibilidade com o MongoDB.
Exemplo:
mongodb://USERNAME:PASSWORD@CONNECTION_STRING:443/FIRESTORE_DATABASE_NAME?loadBalanced=true&authMechanism=SCRAM-SHA-256&tls=true&retryWrites=false
.
Definir variáveis de ambiente específicas para o tipo de banco de dados de origem
Os modelos a seguir ajudam a configurar variáveis de ambiente específicas para o tipo de banco de dados de origem compatível com o MongoDB e para a forma como ele é implantado.
MongoDB no Compute Engine
As variáveis a seguir são específicas para bancos de dados de origem do MongoDB localizados em um cluster autogerenciado (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:
MONGODB_USERNAME: o nome de usuário do banco de dados de origem compatível com o MongoDB. Exemplo:
mongouser
.MONGODB_PASSWORD: a senha do banco de dados de origem compatível com o MongoDB. Exemplo:
mongopassword
.MONGODB_IP_ADDRESS: especifique o endereço IP interno e o número da porta da VM que hospeda o servidor MongoDB. Exemplo:
10.0.0.1:27017
.Para implantações não fragmentadas, mas configuradas com conjuntos de réplicas, o endereço IP de qualquer réplica no conjunto é válido. No entanto, recomendamos usar uma das réplicas secundárias.
Para clusters fragmentados, especifique o endereço de um dos seus servidores mongos.
(Somente para clusters com conjuntos de réplicas que não são fragmentados) REPLICA_SET: especifique o nome do conjunto de réplicas que precisa ser usado no processo de migração. Exemplo:
rs0
.MONGODB_DATABASE_NAME: o nome do banco de dados de origem compatível com o MongoDB. Exemplo:
source_db
.PRIVATE_CONNECTION_NAME: o ID da configuração de conectividade particular que você criou anteriormente. Exemplo:
pc_name
.
MongoDB por SSH
Se você estiver gerenciando uma implantação privada do MongoDB fora do Compute Engine, o Datastream vai permitir a conexão com o banco de dados de origem por um túnel SSH de encaminhamento. Para mais informações, consulte Túneis SSH.
As variáveis a seguir são específicas para a conexão com bancos de dados de origem do MongoDB por um túnel SSH com encaminhamento. 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:
MONGODB_USERNAME: o nome de usuário do banco de dados de origem compatível com o MongoDB. Exemplo:
mongouser
.MONGODB_PASSWORD: a senha do banco de dados de origem compatível com o MongoDB. Exemplo:
mongopassword
.MONGODB_IP_ADDRESS: especifique o endereço IP interno e o número da porta da VM que hospeda o servidor MongoDB. Exemplo:
10.0.0.1:27017
.Para implantações não fragmentadas, mas configuradas com conjuntos de réplicas, o endereço IP de qualquer réplica no conjunto é válido. No entanto, recomendamos usar uma das réplicas secundárias.
Para clusters fragmentados, especifique o endereço de um dos seus servidores mongos.
(Somente para clusters com conjuntos de réplicas que não são fragmentados) REPLICA_SET: especifique o nome do conjunto de réplicas que precisa ser usado no processo de migração. Exemplo:
rs0
.MONGODB_DATABASE_NAME: o nome do banco de dados de origem compatível com o MongoDB. Exemplo:
source_db
.BASTION_IP_ADDRESS: o endereço do host na sua rede que pode aceitar uma conexão SSH. Pode ser o próprio servidor MongoDB ou um host bastion designado que permite o acesso SSH de uma rede pública e também fornece conectividade interna ao servidor MongoDB real. Exemplo:
30.0.0.1
.BASTION_SSH_PORT: a porta SSH no host. Exemplo:
22
.BASTION_SSH_USERNAME: nome de usuário da conexão SSH.
BASTION_SSH_PRIVATE_KEY: o payload completo da chave privada SSH. Por exemplo, para uma chave RSA, esse payload 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
Verifique se você tem a chave privada SSH da instância do Amazon EC2 que vai fornecer a conexão com o cluster do DocumentDB. Além disso, baixe o pacote de certificados específico da região, conforme descrito na seção Configuração de recursos, e extraia e valide um certificado específico.
As variáveis a seguir são específicas para se conectar a bancos de dados de origem do DocumentDB por um túnel SSH com encaminhamento. 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:
MONGODB_USERNAME: o nome de usuário do banco de dados de origem do DocumentDB. Exemplo:
mongouser
.MONGODB_PASSWORD: a senha do banco de dados de origem do DocumentDB. Exemplo:
mongopassword
.MONGODB_HOST_ADDRESS: o endereço 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 precisa ser usado no processo de migração. Exemplo:
rs0
.MONGODB_DATABASE_NAME: o nome do banco 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 de uma rede pública e também fornece conectividade interna ao cluster do DocumentDB na sua Amazon VPC. Exemplo:
30.0.0.1
.BASTION_SSH_PORT: a porta SSH no host. Exemplo:
22
.BASTION_SSH_USERNAME: nome de usuário da conexão SSH.
BASTION_SSH_PRIVATE_KEY: o payload completo da chave privada SSH. Por exemplo, para uma chave RSA, esse payload 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: o payload completo do certificado de AC do DocumentDB. Esse payload precisa 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 variáveis a seguir são específicas para bancos de dados de origem do Azure Cosmos DB. Defina-os 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:
- MONGODB_USERNAME: o nome de usuário do banco de dados de origem
compatível com o MongoDB. Exemplo:
mongouser
. - MONGODB_PASSWORD: a senha do banco de dados de origem
compatível com o MongoDB. Exemplo:
mongopassword
. - MONGODB_HOST_ADDRESS: o nome do host do banco de dados de origem compatível com o MongoDB. O valor precisa estar de acordo com o
formato de conexão SRV do MongoDB.
Exemplo:
host.cosmos.azure.example.com
. - MONGODB_DATABASE_NAME: o nome do banco de dados de origem compatível com o MongoDB. Exemplo:
source_db
.
MongoDB Atlas
As variáveis a seguir são específicas para bancos de dados de origem do MongoDB Atlas. Defina-os 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:
- MONGODB_USERNAME: o nome de usuário do banco de dados de origem
compatível com o MongoDB. Exemplo:
mongouser
. - MONGODB_PASSWORD: a senha do banco de dados de origem
compatível com o MongoDB. Exemplo:
mongopassword
. - MONGODB_HOST_ADDRESS: o nome do host do banco de dados de origem compatível com o MongoDB. O valor precisa estar de acordo com o
formato de conexão SRV do MongoDB.
Exemplo:
host.mongodb.example.com
. - MONGODB_DATABASE_NAME: o nome do banco de dados de origem compatível com o MongoDB. Exemplo:
source_db
.
A seguir
Acesse Criar perfis de conexão.