Este tópico descreve como usar o Data Transmission Service (DTS) para migrar dados de uma instância do ApsaraDB for MongoDB (replica set ou cluster fragmentado) para uma instância do Lindorm.
Pré-requisitos
A região Germany (Frankfurt) é a única compatível com tarefas de migração.
-
A instância source do ApsaraDB for MongoDB deve ser um replica set ou um cluster fragmentado.
ImportanteSe a source for um cluster fragmentado do ApsaraDB for MongoDB, solicite um endpoint para cada nó de shard e garanta que todos os nós de shard compartilhem a mesma conta e senha. Para obter instruções, consulte Apply for an endpoint for a shard.
-
Crie uma instância do Lindorm de destino que use o mecanismo de tabela larga. Para obter instruções, consulte Create an instance.
NotaRecomendamos provisionar a instância de destino com pelo menos 10% a mais de capacidade de armazenamento em relação à instância source.
-
Crie uma tabela larga na instância do Lindorm com base nos seus requisitos de negócios. Para obter instruções, consulte Connect to and use the wide table engine by using Lindorm-cli ou Access the wide table engine by using Lindorm Shell.
NotaOs objetos criados devem seguir as Naming conventions and limits.
Se a tabela larga no Lindorm for criada com o HBase, adicione um mapeamento de colunas à tabela para converter suas colunas em colunas regulares. Para mais informações, consulte Add a column mapping to an HBase table.
Limitações
Tipo | Descrição |
Limites do banco de dados source |
|
Outros limites |
|
Faturamento
Tipo de migração | Taxa de configuração da tarefa | Taxa de transferência de dados |
Migração completa de dados | Gratuito. | Este tutorial é gratuito. No entanto, uma data transfer fee será cobrada se o Access Method do banco de dados de destino for Public IP Address. |
Migração incremental de dados | Há cobrança de taxas. Para mais detalhes, consulte billing overview. |
Tipos de migração
Tipo de migração | Descrição |
Migração completa de dados | Migra todos os dados existentes da instância source do ApsaraDB for MongoDB para a instância do Lindorm de destino. Nota Compatível com migração completa de dados para bancos de dados e coleções. |
Migração incremental de dados | Após a migração completa, migra as atualizações incrementais da instância source do ApsaraDB for MongoDB para a instância do Lindorm de destino. Nota
|
Permissões da conta do banco de dados
Banco de dados | Migração completa de dados | Migração incremental de dados | Ações |
ApsaraDB for MongoDB source | A permissão | A permissão | |
Lindorm de destino | As permissões | ||
Se usar o ChangeStream como método de migração incremental, a conta do banco de dados source requer permissões de leitura de Change Streams em toda a instância (como readAnyDatabase). Se a source for uma instância do ApsaraDB for MongoDB com conta personalizada, conceda também à conta permissão de leitura no banco de dados admin. Para mais detalhes, consulte Permissions of the root account specified during instance creation.
Procedimento
Este procedimento usa como exemplo uma tabela larga criada no Lindorm com Lindorm SQL como banco de dados de destino.
-
Acesse a página da lista de tarefas de migração da região de destino por um dos seguintes métodos.
Do console do DTS
Faça login no console do Data Transmission Service (DTS).
No painel de navegação à esquerda, clique em Data Migration.
No canto superior esquerdo da página, selecione a região onde a instância de migração está localizada.
Do console do DMS
NotaAs operações reais podem variar de acordo com o modo e o layout do console do DMS. Para mais informações, consulte Simple mode console e Customize the layout and style of the DMS console.
Faça login no console do Data Management (DMS).
Na barra de menu superior, escolha .
À direita de Data Migration Tasks, selecione a região onde a instância de migração está localizada.
Clique em Create Task para acessar a página de configuração da tarefa.
-
Configure os bancos de dados source e de destino.
Seção
Parâmetro
Descrição
N/D
Task Name
O DTS gera automaticamente um nome para a tarefa. Recomendamos especificar um nome descritivo para facilitar a identificação. O nome não precisa ser exclusivo.
Source Database
Select Existing Connection
Para usar uma instância de banco de dados que foi added to the system (criada ou salva), selecione a instância desejada na lista suspensa. As informações do banco de dados abaixo serão configuradas automaticamente.
NotaNo console do DMS, este parâmetro é nomeado Select a DMS database instance..
Se não tiver registrado a instância do banco de dados no sistema ou não precisar usar uma instância registrada, configure manualmente as informações do banco de dados abaixo.
Database Type
Selecione MongoDB.
Connection Type
Selecione Alibaba Cloud Instance.
Instance Region
Selecione a região onde a instância source do ApsaraDB for MongoDB reside.
Replicate Data Across Alibaba Cloud Accounts
Neste exemplo, os dados são migrados na mesma conta do Alibaba Cloud. Selecione No.
Architecture
Neste exemplo, Replica Set está selecionado.
NotaSe definir a Architecture como Sharded Cluster, também especifique Shard account e Shard password.
Migration Method
Selecione um método para a migração incremental de dados com base nos seus requisitos.
-
Oplog (Recomendado):
Esta opção está disponível se o oplog estiver ativado para o banco de dados source.
NotaO oplog é ativado por padrão tanto para bancos de dados MongoDB autogerenciados quanto para instâncias do ApsaraDB for MongoDB. Este método oferece menor latência para migração incremental de dados devido à extração de logs mais rápida. Portanto, recomendamos selecionar Oplog.
-
ChangeStream: Esta opção está disponível se os Change Streams estiverem ativados para o banco de dados source.
Nota-
Se o banco de dados source for uma instância do Amazon DocumentDB (cluster não elástico), selecione apenas ChangeStream.
-
Se definir a Architecture como Sharded Cluster para o banco de dados source, não será necessário inserir Shard account ou Shard password.
-
Instance ID
Selecione o ID da instância source do ApsaraDB for MongoDB.
Authentication Database
Insira o nome do banco de dados ao qual a conta da instância source do ApsaraDB for MongoDB pertence. O valor padrão é admin.
Database Account
Insira a conta do banco de dados da instância source do ApsaraDB for MongoDB.
Database Password
Insira a senha correspondente à conta do banco de dados.
Encryption
O DTS é compatível com três métodos de conexão: Non-encrypted, SSL-encrypted e Mongo Atlas SSL. As opções de Encryption variam com base no Access Method e na Architecture selecionados. As opções exibidas no console prevalecem.
Nota-
Um banco de dados MongoDB com Architecture definida como Sharded Cluster e Migration Method como Oplog não é compatível com SSL-encrypted.
-
Se a source for um banco de dados MongoDB autogerenciado (Access Method diferente de Alibaba Cloud Instance) com arquitetura Replica Set e você selecionar SSL-encrypted, o DTS também permitirá o upload de um certificado CA para verificar a conexão.
Destination Database
Select Existing Connection
Para usar uma instância de banco de dados que foi added to the system (criada ou salva), selecione a instância desejada na lista suspensa. As informações do banco de dados abaixo serão configuradas automaticamente.
NotaNo console do DMS, este parâmetro é nomeado Select a DMS database instance..
Se não tiver registrado a instância do banco de dados no sistema ou não precisar usar uma instância registrada, configure manualmente as informações do banco de dados abaixo.
Database Type
Selecione Lindorm.
Connection Type
Selecione Alibaba Cloud Instance.
Instance Region
Selecione a região onde a instância do Lindorm de destino reside.
Instance ID
Selecione o ID da instância do Lindorm de destino.
Database Account
Insira a conta do banco de dados da instância do Lindorm de destino.
Database Password
Insira a senha correspondente à conta do banco de dados.
-
Após concluir a configuração, clique em Test Connectivity and Proceed na parte inferior da página.
NotaGaranta que o segmento de endereços IP do serviço DTS seja adicionado automática ou manualmente às configurações de segurança dos bancos de dados source e de destino para permitir o acesso a partir dos servidores do DTS. Para mais informações, consulte Add DTS server IP addresses to a whitelist.
Se o banco de dados source ou de destino for autogerenciado (o Access Method não é Alibaba Cloud Instance), clique também em Test Connectivity na caixa de diálogo CIDR Blocks of DTS Servers que aparece.
-
Configure os objetos da tarefa.
-
Na página Configure Objects, configure os objetos a serem migrados.
Parâmetro
Descrição
Migration Types
Se precisar executar apenas uma migração completa, selecione Full Data Migration.
Para executar uma migração sem tempo de inatividade, selecione Full Data Migration e Incremental Data Migration.
NotaSe não selecionar Incremental Data Migration, não grave novos dados na instância source durante a migração para garantir a consistência dos dados.
Processing Mode of Conflicting Tables
Mantenha as configurações padrão.
Capitalization of Object Names in Destination Instance
Configure a política de diferenciação de maiúsculas e minúsculas para os nomes dos objetos migrados, como bancos de dados e coleções, na instância de destino. Por padrão, DTS default policy está selecionado. Você também pode optar por manter a diferenciação de maiúsculas e minúsculas consistente com a política padrão do banco de dados source ou de destino. Para mais informações, consulte Case sensitivity of object names in the destination database.
Source Objects
No painel Source Objects, clique nas coleções a serem migradas e clique no ícone
para movê-las para o painel Selected Objects.Selected Objects
Se a tabela larga de destino foi criada com o Lindorm SQL, adicione novas colunas para a migração de dados. O DTS não migrará colunas não configuradas.
Edite o mapeamento do nome do banco de dados.
No painel Selected Objects, clique com o botão direito no banco de dados que contém a coleção a ser migrada.
Altere o Schema Name para o nome do banco de dados de destino no Lindorm.

Opcional: Na seção Select DDL and DML Operations to Be Synchronized, selecione as operações para migração incremental.
Clique em OK.
Edite o mapeamento do nome da tabela.
No painel Selected Objects, clique com o botão direito na coleção a ser migrada.
Altere o Table Name para o nome da tabela de destino no Lindorm.

Opcional: Especifique as condições de filtro. Para mais informações, consulte Filter task data with an SQL condition.
Opcional: Na seção Select DDL and DML Operations to Be Synchronized, selecione as operações para migração incremental.
Configure os campos a serem migrados do MongoDB.
Por padrão, o DTS mapeia os dados da coleção a ser migrada e configura uma expressão na coluna Parameter Value. Verifique se a expressão atende aos seus requisitos e configure parâmetros como Column Name, Type, Length e Precision.
Na coluna Parameter Value, visualize o nome do campo da linha no MongoDB na expressão
bson_value().A string em
""especifica o nome do campo no MongoDB. Por exemplo, se a expressão forbson_value("age"), os dados nesta linha correspondem ao campoageno MongoDB.Opcional: Exclua os campos que não deseja migrar.
NotaPara excluir um campo indesejado, clique no ícone
na linha do campo.Configure os campos a serem migrados.
Tome medidas adicionais dependendo se a expressão
bson_value()atende aos seus requisitos.Expressões correspondentes
Insira um Column Name.
NotaInsira o nome da coluna de destino na tabela do Lindorm.
Se a tabela de destino for criada com SQL, defina Column Name como o nome da coluna de destino na tabela do Lindorm.
Se a tabela de destino for criada com a API do HBase e for necessário adicionar novas colunas, adicione mapeamentos de colunas antes de modificar os nomes das colunas. Para mais informações, consulte Example of adding column mappings for a table created by calling the Apache HBase API. Defina Column Name com base nas seguintes regras:
Se a coluna for uma chave primária, defina o nome como ROW.
Se a coluna não for uma chave primária, use o formato column family:column name. Exemplo: person:name.
Selecione um Type de dados para a coluna.
ImportanteCertifique-se de que o tipo de dados da tabela de destino seja compatível com o tipo de dados no banco de dados MongoDB source.
Opcional: Configure o Length e a Precision dos dados da coluna.
Repita as etapas anteriores para mapear cada campo necessário.
Expressões personalizadas
NotaPor exemplo, campos com relacionamentos hierárquicos (estruturas pai-filho).
Na coluna Actions, clique no ícone
na linha do campo.Clique em + Add Column.

Configure o Column Name, Type, Length e Precision.
Na caixa de texto sob Parameter Value, insira a expressão
bson_value(). Para mais informações, consulte Value Configuration Example.ImportanteA coluna de chave primária da tabela de destino deve receber o valor
bson_value("_id").Ao configurar a expressão
bson_value(), especifique o caminho para o subcampo de nível mais baixo. Caso contrário, pode haver perda de dados ou falha na tarefa.
Repita as etapas anteriores para mapear cada campo necessário.
Clique em OK.
-
Clique em Next: Advanced Settings para configurar parâmetros avançados.
Parâmetro
Descrição
Dedicated Cluster for Task Scheduling
Por padrão, o DTS agenda tarefas em um cluster compartilhado, não sendo necessário selecionar um. Se desejar tarefas mais estáveis, compre um dedicated cluster para executar tarefas de migração do DTS.
Retry Time for Failed Connections
Após o início da tarefa de migração, se a conexão com o banco de dados source ou de destino falhar, o DTS relatará um erro e começará imediatamente a tentar reconectar. A duração padrão de nova tentativa é de 720 minutos. Personalize o tempo de nova tentativa para um valor de 10 a 1440 minutos. Recomendamos definir a duração para mais de 30 minutos. Se o DTS se reconectar aos bancos de dados source e de destino dentro da duração especificada, a tarefa de migração será retomada automaticamente. Caso contrário, a tarefa falhará.
NotaPara várias instâncias do DTS que compartilham a mesma source ou destino, o tempo de nova tentativa de rede é determinado pela configuração da última tarefa criada.
Como há cobrança pela tarefa durante o período de nova tentativa de conexão, recomendamos personalizar o tempo de nova tentativa com base nas suas necessidades de negócios ou liberar a instância do DTS o mais rápido possível após a liberação das instâncias dos bancos de dados source e de destino.
Retry Time for Other Issues
Após o início da tarefa de migração, se ocorrer um problema que não seja de conectividade, como uma exceção de execução de DDL ou DML no banco de dados source ou de destino, o DTS relatará um erro e começará imediatamente a tentar repetir a operação. A duração padrão de nova tentativa é de 10 minutos. Personalize o tempo de nova tentativa para um valor de 1 a 1440 minutos. Recomendamos definir a duração para mais de 10 minutos. Se as operações relacionadas forem bem-sucedidas dentro da duração especificada, a tarefa de migração será retomada automaticamente. Caso contrário, a tarefa falhará.
ImportanteO valor de Retry Time for Other Issues deve ser menor que o valor de Retry Time for Failed Connections.
Enable Throttling for Full Data Migration
Durante a migração completa, o DTS consome recursos de leitura e gravação nos bancos de dados source e de destino, o que pode aumentar a carga do banco de dados. Se necessário, ative o limitador para a tarefa de migração completa. Defina Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s) para reduzir a carga no banco de dados de destino.
NotaEste item de configuração está disponível apenas se você selecionar Full Data Migration para Migration Types.
Você também pode adjust the full migration speed após a instância de migração estar em execução.
Only one data type for primary key _id in a table of the data to be synchronized
Nos dados a serem migrados, o tipo de dados da chave primária
_idé uniforme dentro de uma única coleção?Importante-
Selecione uma opção com base nos seus requisitos. Caso contrário, pode haver perda de dados.
-
Este parâmetro está disponível apenas se você selecionar Full Data Migration para Migration Types.
-
Yes: O tipo de dados é único. Durante a migração completa, o DTS não verifica os tipos de dados das chaves primárias nos dados da source. Para uma única coleção, o DTS migra apenas os dados correspondentes a um tipo de dados de chave primária.
-
No: O tipo de dados não é único. Durante a migração completa, o DTS verifica os tipos de dados das chaves primárias nos dados da source e migra todos os dados.
Enable Throttling for Incremental Data Migration
Se necessário, defina limites de velocidade para a tarefa de migração incremental. Defina RPS of Incremental Data Migration e Data migration speed for incremental migration (MB/s) para reduzir a carga no banco de dados de destino.
NotaEste item de configuração está disponível apenas se você selecionar Incremental Data Migration para Migration Types.
Você também pode adjust the incremental migration speed após a instância de migração estar em execução.
Environment Tag
Selecione uma tag de ambiente para identificar a instância com base nos seus requisitos de negócios. Neste exemplo, não é necessário selecionar uma tag.
Configure ETL
Com base nas suas necessidades de negócios, selecione se deseja configurar o ETL feature para processar dados.
Yes: Configura o recurso ETL. Insira também data processing statements na caixa de texto.
No: Não configura o recurso ETL.
NotaSe a tabela de destino for criada com a API do HBase, observe o seguinte:
A sintaxe ETL inclui colunas a serem configuradas e colunas a serem excluídas. Durante a migração, todos os campos de nível superior dos documentos do MongoDB para os quais o ETL está configurado são armazenados na família de colunas padrão f da tabela do HBase. O exemplo a seguir mostra como gravar todos os elementos, exceto os elementos de nível superior _id e name, como colunas dinâmicas na tabela de destino. Para mais informações, consulte Example of configuring an ETL task for a table created by calling the Apache HBase API.
script:e_expand_bson_value("*", "_id,name")Se precisar usar os recursos de nova coluna e ETL, certifique-se de que não existam dados duplicados na instância do Lindorm.
As colunas para as quais nem a nova coluna nem o recurso ETL estão configurados não são migradas para o banco de dados de destino.
Monitoring and Alerting
Selecione se deseja definir alertas e receber notificações de alerta com base nas suas necessidades de negócios.
No: Não define um alerta.
Yes: Configure alertas definindo um alert threshold e notificações de alerta. Se uma migração falhar ou a latência exceder o limiar, o sistema enviará uma notificação de alerta.
-
-
Salve a tarefa e execute uma pré-verificação.
Para visualizar os parâmetros de configuração desta instância ao chamar a operação da API, mova o ponteiro sobre o botão Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters na dica que aparece.
Se não precisar visualizar ou já tiver terminado de visualizar os parâmetros da API, clique em Next: Save Task Settings and Precheck na parte inferior da página.
NotaAntes do início da tarefa de migração, o DTS realiza uma pré-verificação. A tarefa só é iniciada após ser aprovada na pré-verificação.
Se a pré-verificação falhar, clique em View Details ao lado do item com falha, corrija o problema com base no aviso e execute a pré-verificação novamente.
-
Se um aviso for relatado durante a pré-verificação:
Para itens de verificação que não podem ser ignorados, clique em View Details ao lado do item com falha, corrija o problema com base no aviso e execute a pré-verificação novamente.
Para itens de verificação que podem ser ignorados, clique em Confirm Alert Details, Ignore, OK e Precheck Again para pular o item de alerta e executar a pré-verificação novamente. Se optar por ignorar um aviso, isso pode causar problemas como inconsistência de dados e representar riscos para o seu negócio.
-
Compre a instância.
Quando a Success Rate for 100%, clique em Next: Purchase Instance.
-
Na página Purchase, selecione a especificação do link para a instância de migração de dados. Para mais informações, consulte a tabela a seguir.
Categoria
Parâmetro
Descrição
New Instance Class
Resource Group Settings
Selecione o grupo de recursos ao qual a instância pertence. O valor padrão é default resource group. Para mais informações, consulte What is resource management?
Instance Class
O DTS fornece especificações de migração com diferentes níveis de desempenho. A especificação do link afeta a velocidade de migração. Selecione uma especificação com base no seu cenário de negócios. Para mais informações, consulte Data migration link specifications.
Após concluir a configuração, leia e selecione Data Transmission Service (Pay-as-you-go) Service Terms.
-
Clique em Buy and Start. Na caixa de diálogo OK que aparece, clique em OK.
Visualize o progresso da tarefa de migração na página de lista Data Migration Tasks.
NotaSe a tarefa de migração não incluir migração incremental, ela será interrompida automaticamente após a conclusão da migração completa. Após a interrupção da tarefa, o Status muda para Completed.
Se a tarefa de migração incluir migração incremental, ela não será interrompida automaticamente. A tarefa de migração incremental continua em execução. Enquanto a tarefa de migração incremental estiver em execução, o Status da tarefa será Running.
Mapeamento de colunas da tabela HBase
Este exemplo mostra os comandos a serem executados no SQL Shell.
Este recurso requer o Lindorm 2.4.0 ou posterior.
-
Adicione um mapeamento de colunas à tabela do HBase.
ALTER TABLE test MAP DYNAMIC COLUMN f:_mongo_id_ HSTRING/HINT/..., person:name HSTRING, person:age HINT; -
Crie um índice secundário na tabela do HBase.
CREATE INDEX idx ON test(f:_mongo_id_);
Migração de tabela HBase (ETL)
Documento do MongoDB
{
"_id" : 0,
"person" : {
"name" : "cindy0",
"age" : 0,
"student" : true
}
}
Instrução ETL
script:e_expand_bson_value("*", "_id")
Resultado da migração

Exemplo de configuração de atribuição
Estrutura do ApsaraDB for MongoDB source
{
"_id":"62cd344c85c1ea6a2a9f****",
"person":{
"name":"neo",
"age":"26",
"sex":"male"
}
}
Esquema da tabela do Lindorm de destino
|
Parâmetro |
Tipo |
|
id |
STRING |
|
person_name |
STRING |
|
person_age |
BIGINT |
Configuração de coluna adicional
Configure a expressão bson_value() de acordo com a hierarquia de dados para evitar perda de dados ou falha na tarefa. Por exemplo, se configurar a expressão como bson_value("person"), o Data Transmission Service (DTS) não poderá gravar alterações incrementais dos subcampos do objeto person da source, como name, age e sex, no destino.
|
Parâmetro |
Tipo |
Valor |
|
id |
STRING |
bson_value("_id") |
|
person_name |
STRING |
bson_value("person","name") |
|
person_age |
BIGINT |
bson_value("person","age") |