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:

  1. Defina variáveis de ambiente comuns a todas as fontes compatíveis com o MongoDB.

  2. 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.