Diretrizes e padrões de migração do Armazenamento Azure Data Lake

Você pode migrar seus dados, cargas de trabalho e aplicativos do Azure Data Lake Storage Gen1 para o Azure Data Lake Storage Gen2. Este artigo explica a abordagem de migração recomendada e aborda os diferentes padrões de migração e quando usá-los. Para facilitar a leitura, este artigo usa o termo Gen1 para se referir ao Azure Data Lake Storage Gen1 e o termo Gen2 para se referir ao Azure Data Lake Storage Gen2.

Nota

O Azure Data Lake Storage Gen1 foi desativado. Veja o anúncio da aposentadoria aqui. Os recursos do Data Lake Storage Gen1 não estão mais acessíveis. Se necessitar de assistência especial, por favor contacte-nos.

O Azure Data Lake Storage Gen2 foi criado no armazenamento de Blobs do Azure e fornece um conjunto de recursos dedicados à análise de big data. O Data Lake Storage Gen2 combina recursos do Azure Data Lake Storage Gen1, como semântica do sistema de arquivos, segurança e escala em nível de diretório e arquivo com recursos de armazenamento hierárquico de baixo custo e alta disponibilidade/recuperação de desastres do armazenamento de Blob do Azure.

Nota

Como Gen1 e Gen2 são serviços diferentes, não há experiência de atualização in-loco. Para simplificar a migração para o Gen2 usando o portal do Azure, consulte Migrar o Armazenamento do Azure Data Lake do Gen1 para o Gen2 usando o portal do Azure.

Para migrar de Gen1 para Gen2, recomendamos a seguinte abordagem.

Etapa 1: Avaliar a prontidão

Etapa 2: Preparar para migrar

Etapa 3: Migrar dados e cargas de trabalho de aplicativos

Passo 4: Transição de Gen1 para Gen2

Etapa 1: Avaliar a prontidão

  1. Saiba mais sobre a oferta do Data Lake Storage Gen2, seus benefícios, custos e arquitetura geral.

  2. Compare as capacidades do Gen1 com as do Gen2.

  3. Analise uma lista de problemas conhecidos para avaliar quaisquer lacunas na funcionalidade.

  4. O Gen2 oferece suporte a recursos de armazenamento de Blob, como log de diagnóstico, níveis de acesso e políticas de gerenciamento do ciclo de vida do armazenamento de Blob. Se você estiver interessado em usar qualquer um desses recursos, revise o nível atual de suporte.

  5. Analise o estado atual do suporte ao ecossistema do Azure para garantir que o Gen2 ofereça suporte a quaisquer serviços dos quais suas soluções dependam.

Etapa 2: Preparar para migrar

  1. Identifique os conjuntos de dados que você migrará.

    Aproveite esta oportunidade para limpar conjuntos de dados que já não utiliza. A menos que você planeje migrar todos os seus dados de uma só vez, reserve esse tempo para identificar grupos lógicos de dados que você pode migrar em fases.

    Realize uma Análise de Envelhecimento (ou similar) na sua conta Gen1 para identificar quais arquivos ou pastas permanecem no inventário por muito tempo ou talvez estejam se tornando obsoletos.

  2. Determine o impacto que uma migração terá no seu negócio.

    Por exemplo, considere se você pode arcar com algum tempo de inatividade enquanto a migração ocorre. Essas considerações podem ajudá-lo a identificar um padrão de migração adequado e a escolher as ferramentas mais apropriadas.

  3. Crie um plano de migração.

    Recomendamos esses padrões de migração. Você pode escolher um desses padrões, combiná-los ou criar um padrão personalizado próprio.

Etapa 3: Migrar dados, cargas de trabalho e aplicativos

Migre dados, cargas de trabalho e aplicativos usando o padrão de sua preferência. Recomendamos que você valide os cenários incrementalmente.

  1. Crie uma conta de armazenamento e habilite o recurso de namespace hierárquico.

  2. Migre seus dados.

  3. Configure serviços em suas cargas de trabalho para apontar para seu ponto de extremidade Gen2.

    Para clusters HDInsight, você pode adicionar definições de configuração de conta de armazenamento ao arquivo %HADOOP_HOME%/conf/core-site.xml. Se você planeja migrar tabelas externas do Hive de Gen1 para Gen2, certifique-se de adicionar configurações de conta de armazenamento ao arquivo %HIVE_CONF_DIR%/hive-site.xml também.

    Você pode modificar as configurações de cada arquivo usando o Apache Ambari. Para localizar as configurações da conta de armazenamento, consulte Suporte do Hadoop Azure: ABFS — Azure Data Lake Storage Gen2. Este exemplo usa a configuração para habilitar a fs.azure.account.key autorização de Chave Compartilhada:

    <property>
      <name>fs.azure.account.key.abfswales1.dfs.core.windows.net</name>
      <value>your-key-goes-here</value>
    </property>
    

    Para obter links para artigos que ajudam a configurar o HDInsight, o Azure Databricks e outros serviços do Azure para usar o Gen2, consulte Serviços do Azure que dão suporte ao Azure Data Lake Storage Gen2.

  4. Atualize os aplicativos para usar APIs Gen2. Consulte estes guias:

Ambiente Artigo
Explorador de Armazenamento do Azure Usar o Gerenciador de Armazenamento do Azure para gerenciar diretórios e arquivos no Azure Data Lake Storage Gen2
.NET Usar o .NET para gerenciar diretórios e arquivos no Azure Data Lake Storage Gen2
Java Usar Java para gerenciar diretórios e arquivos no Azure Data Lake Storage Gen2
Python Usar Python para gerenciar diretórios e arquivos no Azure Data Lake Storage Gen2
JavaScript (Node.js) Usar o SDK do JavaScript no Node.js para gerenciar diretórios e arquivos no Azure Data Lake Storage Gen2
API REST Azure Data Lake Store REST API
  1. Atualize scripts para usar cmdlets do PowerShell do Data Lake Storage Gen2 e comandos da CLI do Azure.

  2. Procure referências de URI que contenham a cadeia de caracteres adl:// em arquivos de código ou em notebooks Databricks, arquivos HQL do Apache Hive ou qualquer outro arquivo usado como parte de suas cargas de trabalho. Substitua essas referências pelo URI formatado em Gen2 da sua nova conta de armazenamento. Por exemplo: o URI Gen1: adl://mydatalakestore.azuredatalakestore.net/mydirectory/myfile pode se tornar abfss://myfilesystem@mydatalakestore.dfs.core.windows.net/mydirectory/myfile.

  3. Configure a segurança em sua conta para incluir funções do Azure, segurança em nível de arquivo e pasta e firewalls e redes virtuais do Armazenamento do Azure.

Passo 4: Transição de Gen1 para Gen2

Depois de ter certeza de que seus aplicativos e cargas de trabalho estão estáveis no Gen2, você pode começar a usar o Gen2 para satisfazer seus cenários de negócios. Desative todos os pipelines restantes que estão sendo executados no Gen1 e descomissione sua conta Gen1.

Capacidades Gen1 vs Gen2

Esta tabela compara as capacidades do Gen1 com as do Gen2.

Área Gen1 Ger2
Organização de dados Espaço de nomes hierárquico
Suporte a ficheiros e pastas
Espaço de nomes hierárquico
Suporte a contêineres, arquivos e pastas
Georredundância LRS LRS, ZRS, GRS, RA-GRS
Autenticação Identidade gerenciada do Microsoft Entra
Principais de serviço
Identidade gerenciada do Microsoft Entra
Principais de serviço
Chave de acesso partilhada
Autorização Gerenciamento - Azure RBAC
Dados - ACLs
Gerenciamento - Azure RBAC
Dados - ACLs, Azure RBAC
Encriptação - Dados em repouso Lado do servidor - com chaves gerenciadas pela Microsoft ou pelo cliente Lado do servidor - com chaves gerenciadas pela Microsoft ou pelo cliente
Suporte VNET Integração VNET Pontos de extremidade de serviço, pontos de extremidade privados
Experiência de programador REST, .NET, Java, Python, PowerShell, CLI do Azure Geralmente disponível - REST, .NET, Java, Python
Pré-visualização pública - JavaScript, PowerShell, Azure CLI
Registos do recurso Logs clássicos
Azure Monitor integrado
Logs clássicos - Geralmente disponíveis
Azure Monitor integrado - Pré-visualização
Ecossistema HDInsight (3.6), Azure Databricks (3.1 e superior), Azure Synapse Analytics, ADF HDInsight (3.6, 4.0), Azure Databricks (5.1 e superior), Azure Synapse Analytics, ADF

Padrões Gen1 a Gen2

Escolha um padrão de migração e modifique-o conforme necessário.

Padrão de migração Detalhes
Elevador e Mudança O padrão mais simples. Ideal se seus pipelines de dados puderem suportar tempo de inatividade.
Cópia incremental Semelhante ao lift and shift, mas com menos tempo de inatividade. Ideal para grandes quantidades de dados que demoram mais tempo a copiar.
Pipeline duplo Ideal para tubulações que não podem arcar com nenhum tempo de inatividade.
Sincronização bidirecional Semelhante ao gasoduto duplo, mas com uma abordagem mais faseada que é adequada para gasodutos mais complicados.

Vamos dar uma olhada mais de perto em cada padrão.

Padrão de elevação e mudança

Este é o padrão mais simples.

  1. Pare todas as gravações no Gen1.

  2. Mova dados de Gen1 para Gen2. Recomendamos o Azure Data Factory ou usando o portal do Azure. As ACLs copiam com os dados.

  3. Aponte operações de ingestão e cargas de trabalho para Gen2.

  4. Descomissionamento Gen1.

Confira nosso código de exemplo para o padrão de elevação e mudança em nosso exemplo de migração de elevação e mudança.

Diagram of the lift and shift pattern.

Considerações sobre o uso do padrão de elevação e deslocamento

  • Transferência de Gen1 para Gen2 para todas as cargas de trabalho ao mesmo tempo.

  • Espere tempo de inatividade durante a migração e o período de substituição.

  • Ideal para pipelines que podem suportar tempo de inatividade e todos os aplicativos podem ser atualizados de uma só vez.

Gorjeta

Considere usar o portal do Azure para reduzir o tempo de inatividade e o número de etapas necessárias para concluir a migração.

Padrão de cópia incremental

  1. Comece a mover dados de Gen1 para Gen2. Recomendamos o Azure Data Factory. As ACLs copiam com os dados.

  2. Copie incrementalmente novos dados do Gen1.

  3. Depois que todos os dados forem copiados, pare todas as gravações para Gen1 e aponte cargas de trabalho para Gen2.

  4. Descomissionamento Gen1.

Confira nosso código de exemplo para o padrão de cópia incremental em nosso Exemplo de migração de cópia incremental.

Diagram of the incremental copy pattern.

Considerações sobre o uso do padrão de cópia incremental

  • Transferência de Gen1 para Gen2 para todas as cargas de trabalho ao mesmo tempo.

  • Espere tempo de inatividade apenas durante o período de transição.

  • Ideal para pipelines em que todos os aplicativos são atualizados ao mesmo tempo, mas a cópia de dados requer mais tempo.

Padrão de pipeline duplo

  1. Mova dados de Gen1 para Gen2. Recomendamos o Azure Data Factory. As ACLs copiam com os dados.

  2. Ingerir novos dados para Gen1 e Gen2.

  3. Aponte cargas de trabalho para Gen2.

  4. Pare todas as gravações para Gen1 e, em seguida, descomissione Gen1.

Confira nosso código de exemplo para o padrão de pipeline duplo em nosso exemplo de migração de pipeline duplo.

Diagram of the dual pipeline pattern.

Considerações sobre o uso do padrão de pipeline duplo

  • Os oleodutos Gen1 e Gen2 funcionam lado a lado.

  • Suporta zero tempo de inatividade.

  • Ideal em situações em que suas cargas de trabalho e aplicativos não podem suportar nenhum tempo de inatividade, e você pode ingerir em ambas as contas de armazenamento.

Padrão de sincronização bidirecional

  1. Configure a replicação bidirecional entre Gen1 e Gen2. Recomendamos o WanDisco. Ele oferece um recurso de reparo para dados existentes.

  2. Quando todas as movimentações estiverem concluídas, interrompa todas as gravações no Gen1 e desative a replicação bidirecional.

  3. Descomissionamento Gen1.

Confira nosso código de exemplo para o padrão de sincronização bidirecional em nosso exemplo de migração de sincronização bidirecional.

Diagram of the bidirectional pattern.

Considerações sobre o uso do padrão de sincronização bidirecional

  • Ideal para cenários complexos que envolvem um grande número de pipelines e dependências onde uma abordagem em fases pode fazer mais sentido.

  • O esforço de migração é alto, mas fornece suporte lado a lado para Gen1 e Gen2.

Próximos passos

Consulte também