O ossimport é uma ferramenta para migrar dados para o Object Storage Service (OSS). Você pode implantar o ossimport em um servidor local ou em uma instância do Elastic Compute Service (ECS) para migrar dados de armazenamento local ou de outros serviços de armazenamento em nuvem para o OSS. A Alibaba Cloud também oferece o Data Online Migration padronizado e serviços de replicação entre regiões. Esses serviços fornecem uma interface gráfica do usuário (GUI) para ajudar você a migrar dados para a cloud e replicar dados entre buckets do OSS.
-
O ossimport não verifica arquivos após a migração. Ele não garante a correção ou a consistência dos resultados da migração. Após a conclusão de uma tarefa de migração, verifique a consistência dos dados entre a source e o destino.
Se você excluir os dados de source antes de verificar a consistência dos dados, será responsável por qualquer perda de dados resultante.
Para migrar dados de outras fontes de dados de terceiros, recomendamos o uso do Data Online Migration.
Para replicar dados do OSS quase em tempo real entre dois buckets diferentes, utilize o recurso de replicação entre regiões do OSS.
Recursos
Compatível com uma ampla variedade de fontes de dados, como arquivos locais, Qiniu Kodo, Baidu BOS, Amazon S3, Azure Blob, UPYUN USS, Tencent Cloud COS, Kingsoft KS3, listas de URLs HTTP ou HTTPS e Alibaba Cloud OSS. Também pode ser estendido para suportar outras fontes conforme necessário.
-
Suporta modos autônomo e distribuído. O modo autônomo é simples de implantar e fácil de usar. Já o modo distribuído é adequado para migração de dados em grande escala.
NotaNo modo autônomo, é possível migrar apenas um bucket por vez.
Oferece suporte a uploads retomáveis.
Permite modelagem de tráfego.
Possibilita a migração de arquivos modificados após um horário específico ou arquivos com um prefixo específico.
Realiza downloads e uploads de dados simultaneamente.
Faturamento
A ferramenta ossimport é gratuita. Em um ambiente de cloud pública, a source de dados pode gerar custos, como taxas de tráfego de saída e taxas de solicitação. O bucket do OSS de destino incorrerá em taxas de solicitação. Se você ativar e usar a aceleração de transferência para o OSS, taxas de aceleração de transferência também serão cobradas.
Observações de uso
-
Velocidade de migração
A velocidade de migração do ossimport depende de fatores como a largura de banda de leitura da source, a largura de banda da rede local e os tamanhos dos arquivos. A migração de arquivos menores que 200 KB pode ser lenta devido ao alto uso de operações de entrada/saída por segundo (IOPS).
-
Dados de source na classe de armazenamento Archive
Ao migrar dados com o ossimport, se os dados de source estiverem na classe de armazenamento Archive, restaure os dados antes de iniciar a migração.
-
Armazenamento temporário local
Durante a migração de dados com o ossimport, o fluxo de dados é armazenado temporariamente na memória local antes de ser enviado para o destino.
-
Retenção de dados de source
O ossimport executa apenas operações de leitura nos dados de source durante a migração. Ele não modifica nem exclui os dados de source.
-
Outras ferramentas de migração (ossutil)
Para migrar menos de 30 TB de dados, recomendamos o uso do ossutil. Esta ferramenta é simples e prática. Utilize as opções -u, --update e --snapshot-path para executar a migração incremental de arquivos. Para obter mais informações, consulte cp.
Ambiente de execução
Você pode implantar o ossimport em um sistema Linux ou Windows que atenda aos seguintes requisitos:
Windows 7 ou superior
CentOS 6 ou CentOS 7
Java 7 ou Java 8
A implantação distribuída não é suportada em sistemas Windows.
Escolha um modo de implantação
O ossimport suporta dois modos de implantação: autônomo e distribuído.
Modo autônomo: Para migrar menos de 30 TB de dados, recomendamos a implantação no modo autônomo. Implante o ossimport em qualquer máquina que tenha acesso aos dados que você deseja migrar e ao OSS.
-
Modo distribuído: Para migrar mais de 30 TB de dados, recomendamos a implantação no modo distribuído. Implante o ossimport em várias máquinas que tenham acesso aos dados que você deseja migrar e ao OSS.
NotaSe o volume de dados a serem migrados for muito grande, economize tempo implantando o ossimport em instâncias do ECS na mesma região do seu bucket do OSS. Em seguida, conecte o servidor que armazena os dados de source a uma rede VPC da Alibaba Cloud usando uma linha dedicada. A migração de dados de várias instâncias do ECS para o OSS pela rede interna melhora significativamente a eficiência da migração.
Também é possível usar o ossimport para transferir dados pela Internet. A velocidade de transferência depende da largura de banda do seu servidor local.
Modo autônomo
Os módulos Master, Worker, Tracker e Console são executados em uma única máquina e empacotados em ossimport2.jar. O sistema possui apenas um Worker.
A estrutura de arquivos no modo autônomo é a seguinte:
ossimport
├── bin
│ └── ossimport2.jar # The JAR package that contains the Master, Worker, Tracker, and Console modules.
├── conf
│ ├── local_job.cfg # The job configuration file for standalone mode.
│ └── sys.properties # The configuration file for system parameters.
├── console.bat # The command-line tool for Windows. You can use it to execute import tasks step by step.
├── console.sh # The command-line tool for Linux. You can use it to execute import tasks step by step.
├── import.bat # The one-click import script for Windows. It executes the data migration task configured in conf/local_job.cfg, including starting, migrating, verifying, and retrying the task.
├── import.sh # The one-click import script for Linux. It executes the data migration task configured in conf/local_job.cfg, including starting, migrating, verifying, and retrying the task.
├── logs # The log directory.
└── README.md # The README file. We strongly recommend that you read this file before use.
Os arquivos import.bat e import.sh são scripts de importação com um clique. Execute-os diretamente após modificar o arquivo
local_job.cfg.Os arquivos console.bat e console.sh são ferramentas de linha de comando que permitem executar comandos passo a passo.
Execute scripts ou comandos no diretório
ossimport, que é o mesmo diretório dos arquivos*.bat/*.sh.
Modo distribuído
O ossimport utiliza uma arquitetura distribuída baseada no modelo master-worker. A estrutura é a seguinte:
Master --------- Job --------- Console
|
|
TaskTracker
|_____________________
|Task | Task | Task
| | |
Worker Worker Worker
Parâmetro | Descrição |
Master | Divide um job em tasks com base no tamanho dos dados e no número de arquivos. Configure o tamanho dos dados e o número de arquivos no arquivo sys.properties. As etapas a seguir descrevem como um job é dividido em tasks:
|
Worker |
|
TaskTracker | Abreviado como Tracker. Distribui tasks e rastreia seus status. |
Console | Interage com usuários, aceita comandos e exibe resultados. Suporta comandos de administração do sistema, como deploy, start e stop, além de comandos de gerenciamento de jobs, como submit, retry e clean. |
Job | Uma task de migração de dados enviada por um usuário. Para o usuário, uma task corresponde a um arquivo de configuração |
Task | Um job pode ser dividido em várias tasks com base no tamanho dos dados e no número de arquivos. Cada task migra uma parte dos arquivos. A menor unidade para dividir um job é um único arquivo. Um arquivo não é dividido em várias tasks. |
No modo distribuído, é possível iniciar várias máquinas para migração de dados. Inicie apenas um Worker em cada máquina. As tasks são distribuídas uniformemente entre os Workers. Cada Worker pode executar múltiplas tasks.
A estrutura de arquivos no modo distribuído é a seguinte:
ossimport
├── bin
│ ├── console.jar # The JAR package for the Console module.
│ ├── master.jar # The JAR package for the Master module.
│ ├── tracker.jar # The JAR package for the Tracker module.
│ └── worker.jar # The JAR package for the Worker module.
├── conf
│ ├── job.cfg # The job configuration file template.
│ ├── sys.properties # The configuration file for system parameters.
│ └── workers # The list of workers.
├── console.sh # The command-line tool. Only Linux is currently supported.
├── logs # The log directory.
└── README.md # The README file. We strongly recommend that you read this file before use.
Arquivos de configuração
No modo autônomo, existem dois arquivos de configuração: sys.properties e local_job.cfg. No modo distribuído, há três arquivos de configuração: sys.properties, job.cfg e workers. Os itens de configuração em local_job.cfg e job.cfg são idênticos. Eles diferem apenas no nome. O arquivo workers é específico para o ambiente distribuído.
-
sys.properties: Parâmetros de execução do sistema
Parâmetro
Descrição
Detalhes
workingDir
Diretório de trabalho
O diretório onde o pacote da ferramenta foi descompactado. Não altere este parâmetro no modo autônomo. No modo distribuído, o diretório de trabalho deve ser o mesmo em cada máquina.
workerUser
Nome de usuário SSH da máquina worker
Se
privateKeyFileestiver configurado, ele terá prioridade de uso.Se
privateKeyFilenão estiver configurado,workerUsereworkerPasswordserão utilizados.Não altere este parâmetro no modo autônomo.
workerPassword
Senha SSH da máquina worker
Não altere este parâmetro no modo autônomo.
privateKeyFile
Caminho do arquivo de chave privada
Se um canal SSH já estiver estabelecido, especifique este parâmetro. Caso contrário, deixe-o vazio.
Se
privateKeyFileestiver configurado, ele terá prioridade de uso.Se
privateKeyFilenão estiver configurado,workerUsereworkerPasswordserão utilizados.Não altere este parâmetro no modo autônomo.
sshPort
Porta SSH
O valor padrão é 22. Não altere este valor a menos que seja necessário. Não modifique este parâmetro no modo autônomo.
workerTaskThreadNum
Número máximo de threads para um worker executar tasks
Este parâmetro depende da memória e da rede da máquina. O valor recomendado é 60.
É possível aumentar este valor para uma máquina física, por exemplo, para 150. Se a largura de banda da rede estiver totalmente utilizada, não aumente mais o valor.
Se a conexão de rede for ruim, reduza este valor para algo como 30. Isso ajuda a evitar timeouts de solicitação causados por contenção de rede.
workerMaxThroughput(KB/s)
Throughput máximo de tráfego para migração de dados em um worker
Este valor pode ser usado para modelagem de tráfego. O valor padrão é 0, o que significa que não há modelagem de tráfego.
dispatcherThreadNum
Número de threads para o tracker despachar tasks e verificar status
O valor padrão geralmente é suficiente. Não altere o valor padrão a menos que seja necessário.
workerAbortWhenUncatchedException
Define se uma task deve ser ignorada ou encerrada quando ocorrer um erro desconhecido
Por padrão, a task é ignorada.
workerRecordMd5
Define se os metadados x-oss-meta-md5 devem ser usados para registrar o hash MD5 dos arquivos migrados no OSS. Por padrão, o hash MD5 não é registrado.
Utilizado para validação MD5 de arquivos.
-
job.cfg: Configuração da task de migração de dados. Os itens de configuração em
local_job.cfgejob.cfgsão idênticos. Eles diferem apenas no nome.Parâmetro
Descrição
Detalhes
jobName
Nome da task. String.
Identificador exclusivo da task. O nome deve seguir a convenção de nomenclatura
[a-zA-Z0-9_-]{4,128}. É possível enviar várias tasks com nomes diferentes.Se você enviar uma task com o mesmo nome de uma task existente, uma mensagem indicará que a task já existe. Não é possível enviar uma task com o mesmo nome até que a task existente seja limpa.
jobType
Tipo da task. String.
O valor padrão é
import.
isIncremental
Define se o modo de migração incremental deve ser ativado. Booleano.
O valor padrão é false.
Se definido como true, o sistema reexamina os dados incrementais no intervalo especificado por
incrementalModeInterval(em segundos) e migra os dados incrementais para o OSS.
incrementalModeInterval
Intervalo de sincronização no modo incremental. Inteiro. Unidade: segundos.
Este parâmetro é válido apenas quando
isIncrementalestá definido como true. O intervalo mínimo configurável é de 900 segundos. Recomendamos não definir este valor como inferior a 3600 segundos. Isso evita solicitações excessivas e sobrecarga extra do sistema.importSince
Migra dados modificados após este horário. Inteiro. Unidade: segundos.
Este horário é um timestamp UNIX, que representa o número de segundos decorridos desde 00:00:00 UTC em 1º de janeiro de 1970. Obtenha o timestamp executando o comando
date +%s.O valor padrão é 0, o que significa que todos os dados serão migrados.
srcType
Tipo da fonte de dados. String. Este parâmetro diferencia maiúsculas de minúsculas.
Os seguintes tipos são suportados:
local: Migra dados de arquivos locais para o OSS. Para esta opção, especifique apenassrcPrefix. Não é necessário especificarsrcAccessKey,srcSecretKey,srcDomainousrcBucket.oss: Migra dados de um bucket do OSS para outro.qiniu: Migra dados do Qiniu Kodo para o OSS.bos: Migra dados do Baidu BOS para o OSS.ks3: Migra dados do Kingsoft KS3 para o OSS.s3: Migra dados do Amazon S3 para o OSS.youpai: Migra dados do UPYUN USS para o OSS.http: Migra dados para o OSS a partir de uma lista fornecida de links HTTP ou HTTPS.cos: Migra dados do Tencent Cloud COS para o OSS.azure: Migra dados do Azure BLOB para o OSS.
srcAccessKey
AccessKey ID da source. String.
Se
srcTypeestiver definido comooss,qiniu,baidu,ks3ous3, insira o AccessKey ID da fonte de dados.Se
srcTypeestiver definido comolocalouhttp, não é necessário especificar este parâmetro.Se
srcTypeestiver definido comoyoupaiouazure, insira o nome de usuário (AccountName).
srcSecretKey
AccessKey secret da source. String.
Se
srcTypeestiver definido comooss,qiniu,baidu,ks3ous3, insira o AccessKey secret da fonte de dados.Se
srcTypeestiver definido comolocalouhttp, não é necessário especificar este parâmetro.Se
srcTypeestiver definido comoyoupai, insira a senha do operador.Se
srcTypeestiver definido comoazure, insira a AccountKey.
srcDomain
Endpoint da source
Se
srcTypeestiver definido comolocalouhttp, não é necessário especificar este parâmetro.Se
srcTypeestiver definido comooss, insira o endpoint obtido no console. Não se trata de um nome de domínio de segundo nível que inclua um prefixo de bucket.Se
srcTypeestiver definido comoqiniu, insira o endpoint do bucket correspondente obtido no console do Qiniu.Se
srcTypeestiver definido comobos, insira o endpoint do Baidu BOS, comohttp://bj.bcebos.comouhttp://gz.bcebos.com.Se
srcTypeestiver definido comoks3, insira o endpoint do Kingsoft KS3, comohttp://kss.ksyun.com,http://ks3-cn-beijing.ksyun.comouhttp://ks3-us-west-1.ksyun.coms.Se
srcTypeestiver definido comoS3, insira o endpoint da região do Amazon S3.Se
srcTypeestiver definido comoyoupai, insira o endpoint do UPYUN. Por exemplo, usehttp://v0.api.upyun.compara determinar automaticamente a linha ideal,http://v1.api.upyun.compara a linha China Telecom ou China Netcom,http://v2.api.upyun.compara a linha China Unicom ou China Netcom, ouhttp://v3.api.upyun.compara a linha China Mobile ou China Tietong.Se
srcTypeestiver definido comocos, insira a região onde o bucket do Tencent Cloud está localizado. Por exemplo, a região South China éap-guangzhou.Se
srcTypeestiver definido comoazure, insira o valorEndpointSuffixda string de conexão do Azure Blob, como core.chinacloudapi.cn.
srcBucket
Nome do bucket ou contêiner de source
Se
srcTypeestiver definido comolocalouhttp, não é necessário especificar este parâmetro.Se
srcTypeestiver definido comoazure, insira o nome do contêiner.Para outros tipos de source, insira o nome do bucket.
srcPrefix
Prefixo dos objetos de source. String. Padrão: vazio.
Se
srcTypeestiver definido comolocal, insira o diretório local. Forneça o caminho completo, use barras simples (/) como separadores e termine o caminho com uma barra simples (/). Apenas formatos comoc:/example/ou/data/example/são suportados.ImportanteCaminhos como
c:/example//,/data//example/ou/data/example//são inválidos.Se
srcTypeestiver definido comooss,qiniu,bos,ks3,youpaious3, insira o prefixo dos objetos a serem sincronizados, excluindo o nome do bucket. Por exemplo,data/to/oss/.Para sincronizar todos os arquivos, deixe
srcPrefixvazio.
destAccessKey
AccessKey ID do destino. String.
O AccessKey ID usado para acessar o service OSS. Para visualizá-lo, acesse o Alibaba Cloud Management Console.
O AccessKey ID usado para acessar o service OSS. Para visualizá-lo, acesse o Alibaba Cloud Management Console.
destSecretKey
AccessKey secret do destino. String.
O AccessKey secret usado para acessar o OSS. Para visualizá-lo, acesse o Alibaba Cloud Management Console.
O AccessKey secret usado para acessar o OSS. Para visualizá-lo, acesse o Alibaba Cloud Management Console.
destDomain
Endpoint do destino. String.
Obtenha-o no Alibaba Cloud Management Console. Não se trata de um nome de domínio de segundo nível que inclua um prefixo de bucket. Para obter uma lista de endpoints, consulte Domain Names.
Obtenha-o no Alibaba Cloud Management Console. Não se trata de um nome de domínio de segundo nível que inclua um prefixo de bucket. Para obter uma lista de endpoints, consulte Domain Names.
destBucket
Bucket de destino. String.
destPrefix
Prefixo para objetos de destino. String. Padrão: vazio.
Prefixo para objetos de destino. Por padrão, este parâmetro está vazio e os objetos são colocados diretamente no bucket de destino.
Se desejar sincronizar dados para um diretório específico no
OSS, termine o prefixo com uma barra (/), comodata/in/oss/.Observe que o
OSSnão suporta nomes de objetos que começam com uma barra (/). Portanto, não configuredestPrefixpara começar com uma barra (/).Um arquivo local com o caminho srcPrefix+relativePath é migrado para o
OSScom o caminho destDomain/destBucket/destPrefix +relativePath.Um arquivo em nuvem com o caminho srcDomain/srcBucket/srcPrefix+relativePath é migrado para o
OSScom o caminho destDomain/destBucket/destPrefix+relativePath.
taskObjectCountLimit
Número máximo de arquivos para cada task. Inteiro. Padrão: 10000.
Este parâmetro afeta o grau de paralelismo na execução da task. Uma fórmula geral para este valor é: (Número total de arquivos) / (Número total de Workers) / (
workerTaskThreadNum). O valor máximo é 50000. Se você não souber o número total de arquivos, use o valor padrão.taskObjectSizeLimit
Tamanho máximo de dados para cada task. Inteiro. Unidade: bytes. Padrão: 1 GB.
Este parâmetro afeta o grau de paralelismo na execução da task. Uma fórmula geral para este valor é: (Tamanho total dos dados) / (Número total de Workers) / (
workerTaskThreadNum). Se você não souber o tamanho total dos dados, use o valor padrão.isSkipExistFile
Define se arquivos existentes devem ser ignorados durante a migração de dados. Booleano.
Se definido como
true, o sistema determina se deve ignorar um arquivo com base em seu tamanho eLastModifiedTime. Se definido comofalse, ele sempre substitui os arquivos existentes no OSS. O valor padrão éfalse.scanThreadCount
Número de threads para varredura simultânea de arquivos. Inteiro.
Valor padrão: 1
Valores válidos: 1 a 32
Este parâmetro afeta a eficiência da varredura de arquivos. Não o altere a menos que tenha requisitos específicos.
maxMultiThreadScanDepth
Profundidade máxima de diretórios para varredura simultânea. Inteiro.
Valor padrão: 1
Valores válidos: 1 a 16
O valor padrão 1 significa varredura simultânea entre diretórios de nível superior.
Não altere este valor a menos que tenha requisitos específicos. Um valor excessivamente grande pode causar falha na task.
appId
ID do aplicativo para Tencent Cloud COS. Inteiro.
Este parâmetro é válido apenas quando
srcTypeestá definido comocos.httpListFilePath
Caminho absoluto do arquivo que contém uma lista de URLs HTTP. String.
Este parâmetro é válido apenas quando
srcTypeestá definido comohttp. Quando a source é uma lista de URLs HTTP, forneça o caminho absoluto para o arquivo que contém as URLs HTTP, comoc:/example/http.list.Os links HTTP neste arquivo devem estar em duas colunas, separadas por um ou mais espaços. As colunas representam o prefixo da URL de source e o caminho relativo de destino no OSS. Por exemplo, se o arquivo
c:/example/http.listcontiver:http://xxx.xxx.com/aa/ bb.jpg http://xxx.xxx.com/cc/ dd.jpgSe você especificar
destPrefixcomoee/, os arquivos migrados para o OSS terão os seguintes nomes:ee/bb.jpg ee/dd.jpg
-
workers: Específico para o modo distribuído. Insira um endereço IP por linha. Por exemplo:
192.168.1.6 192.168.1.7 192.168.1.8Na configuração acima, a primeira linha,
192.168.1.6, deve ser o master. Isso significa que o Master, o Worker e o TaskTracker serão iniciados em192.168.1.6. O Console também deve ser executado nesta máquina.Garanta que várias máquinas Worker tenham o mesmo nome de usuário, método de login e diretório de trabalho.
Exemplos de arquivos de configuração
A tabela a seguir fornece arquivos de configuração para tasks de migração de dados no modo distribuído. O arquivo de configuração para o modo autônomo chama-se local_job.cfg, e seus itens de configuração são iguais aos do modo distribuído.
|
Tipo de migração |
Arquivo de configuração |
Descrição |
|
Migrar dados de um servidor local para o OSS |
|
|
|
Migrar dados do Qiniu Kodo para o OSS |
|
|
|
Migrar dados do Baidu BOS para o OSS |
|
|
|
Migrar dados do Amazon S3 para o OSS |
Para obter mais informações, consulte S3 endpoints. |
|
|
Migrar dados do UPYUN USS para o OSS |
Defina |
|
|
Migrar dados do Tencent Cloud COS para o OSS |
Defina |
|
|
Migrar do Azure Blob para o OSS |
Defina |
|
|
Migrar dados do OSS para o OSS |
Adequado para migração de dados entre regiões diferentes, entre classes de armazenamento diferentes ou entre prefixos diferentes. Recomendamos a implantação em uma instância do ECS e o uso de um endpoint interno para reduzir custos de tráfego. |
Configurações avançadas
-
Limitação baseada em tempo
Em sys.properties, workerMaxThroughput(KB/s) representa o limite superior de tráfego de um Worker. Se o seu negócio exigir modelagem de tráfego, como para limitação na source ou restrições de rede, defina este parâmetro. O valor deste parâmetro deve ser menor que o tráfego máximo de rede da máquina e deve ser avaliado com base nas necessidades do negócio. Após alterar o valor, reinicie o service para que a alteração tenha efeito.
Em uma implantação distribuída, modifique o arquivo sys.properties no diretório $OSS_IMPORT_WORK_DIR/conf de cada Worker e, em seguida, reinicie o service.
Para implementar limitação baseada em tempo, utilize o crontab para agendar modificações em sys.properties e reinicie o service para que as alterações tenham efeito.
-
Alterar simultaneidade de tasks
Em sys.properties, workerTaskThreadNum representa o número de tasks que um Worker pode executar simultaneamente. Se a conexão de rede for ruim e a simultaneidade for alta, muitos erros de timeout podem ocorrer. Nesse caso, altere este parâmetro para reduzir o nível de simultaneidade e reinicie o service.
Em sys.properties, workerMaxThroughput(KB/s) representa o limite superior de tráfego de um Worker. Se o seu negócio exigir modelagem de tráfego, como para limitação na source ou restrições de rede, defina este parâmetro. O valor deste parâmetro deve ser menor que o tráfego máximo de rede da máquina e deve ser avaliado com base nas necessidades do negócio.
Em job.cfg, taskObjectCountLimit é o número máximo de arquivos por task, com padrão de 10000. Este parâmetro afeta o número de tasks. Um número muito pequeno não consegue atingir uma simultaneidade eficaz.
-
Em job.cfg, taskObjectSizeLimit é o tamanho máximo de dados por task, com padrão de 1 GB. Este parâmetro afeta o número de tasks. Um número muito pequeno não consegue atingir uma simultaneidade eficaz.
ImportanteConfigure todos os parâmetros antes de iniciar a task de migração.
Após alterar parâmetros em
sys.properties, reinicie o servidor de migração para que as alterações tenham efeito.Depois que uma task
job.cfgé enviada, seus parâmetros de configuração não podem ser alterados.
-
Verificar dados sem migração
O ossimport suporta a verificação de dados sem migrá-los. Para isso, defina o item de configuração jobType no arquivo job.cfg ou local_job.cfg como audit em vez de import. As outras configurações são as mesmas da migração de dados.
-
Modo de migração de dados incrementais
No modo de migração de dados incrementais, a task primeiro executa uma migração completa. Em seguida, realiza automaticamente migrações de dados incrementais no intervalo especificado. A migração completa inicial começa imediatamente após o envio da task. As migrações incrementais subsequentes são executadas uma vez por ciclo. Este modo é adequado para backup e sincronização de dados.
Existem dois itens de configuração para o modo incremental:
Em job.cfg, isIncremental especifica se o modo de migração incremental deve ser ativado. true ativa o modo incremental e false o desativa. O padrão é desativado.
Em job.cfg, incrementalModeInterval especifica o intervalo de sincronização no modo incremental, que é o período entre as migrações de dados incrementais, em segundos. Isso é válido apenas quando
isIncremental=true. O valor mínimo configurável é900 seconds. Recomendamos não definir este valor como inferior a3600segundos. Isso evita solicitações excessivas e sobrecarga extra do sistema.
-
Especificar condições de filtro para migração
As condições de filtro permitem migrar apenas arquivos que atendem a critérios específicos. O ossimport suporta filtragem por prefixo e hora da última modificação:
-
Em job.cfg, srcPrefix é usado para especificar o prefixo dos arquivos a serem migrados. Está vazio por padrão.
Se
srcType=local, insira o diretório local. Forneça o caminho completo, use barras simples (/) como separadores e termine o caminho com uma barra simples (/), comoc:/example/ou/data/example/.Se
srcTypefoross,qiniu,bos,ks3,youpaious3, este é o prefixo dos objetos a serem sincronizados, excluindo o nome do bucket. Por exemplo,data/to/oss/. Para migrar todos os arquivos, definasrcPrefixcomo vazio.
-
Em job.cfg, importSince é usado para especificar a hora da última modificação dos arquivos a serem migrados, em segundos. importSince é um timestamp UNIX, que representa o número de segundos decorridos desde 00:00:00 UTC em 1º de janeiro de 1970. Obtenha o timestamp executando o comando date +%s. O valor padrão é 0, o que significa que todos os dados serão migrados. No modo incremental, este parâmetro se aplica apenas à primeira migração completa. No modo não incremental, aplica-se a toda a task de migração.
Se o
LastModified Timede um arquivo for anterior aimportSince, o arquivo não será migrado.Se o
LastModified Timede um arquivo for posterior aimportSince, o arquivo será migrado.
-