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

É possível migrar 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 usar cada um. Para facilitar a leitura, este artigo usa o termo Gen1 para se referir a Azure Data Lake Storage Gen1 e o termo Gen2 para se referir a Azure Data Lake Storage Gen2.

Observação

O Azure Data Lake Storage Gen1 foi desativado. Veja o anúncio da desativação aqui. Os recursos do Data Lake Storage Gen1 não estão mais acessíveis. Se precisar de assistência especial, entre em contato conosco.

O Azure Data Lake Storage Gen2 é um conjunto de recursos dedicados à análise de Big Data, criado sobre o Armazenamento de Blobs do Azure. OAzure Data Lake Storage Gen2, combina recursos do Azure Data Lake Storage Gen1, tais como a semântica do sistema de arquivos, diretório e segurança e escala em nível de arquivo com armazenamento em camadas de baixo custo, alta disponibilidade/recursos de recuperação de desastre do Armazenamento de Blobs do Azure.

Observação

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 a Gen2 usando o portal do Azure, consulte Migrar o Azure Data Lake Storage da Gen1 para a Gen2 usando o portal do Azure.

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

Etapa 1: Avaliar a preparação

Etapa 2: Preparar para migrar

Etapa 3: Migrar dados e cargas de trabalho de aplicativos

Etapa 4: substituição do Gen1 pelo Gen2

Etapa 1: Avaliar a preparação

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

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

  3. Examine uma lista de problemas conhecidos para avaliar qualquer lacuna na funcionalidade.

  4. O Gen2 dá suporte para recursos de armazenamento de Blobs, como registro em log de diagnósticos, camadas de acesso e políticas de gerenciamento do ciclo de vida do armazenamento de Blobs. Se tiver interesse em usar qualquer um desses recursos, examine o nível de suporte atual.

  5. Examine o estado atual do suporte de ecossistema do Azure para garantir que o Gen2 dê suporte a todos os serviços dos quais suas soluções dependem.

Etapa 2: Preparar para migrar

  1. Identifique os conjuntos de dados que serão migrados.

    Aproveite essa oportunidade para limpar os conjuntos de dados que não são mais usados. A menos que planeje migrar todos os dados ao mesmo tempo, reserve um tempo para identificar grupos lógicos de dados que podem ser migrados em fases.

    Execute uma Análise de Envelhecimento (ou semelhante) em 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á em sua empresa.

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

  3. Crie um projeto de migração.

    Recomendamos esses padrões de migração. É possível escolher um desses padrões, combiná-los juntos ou criar um padrão personalizado por conta própria.

Etapa 3: Migrar dados, cargas de trabalho e aplicativos

Migre dados, cargas de trabalho e aplicativos usando o padrão que preferir. Recomendamos que valide cenários de forma incremental.

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

  2. Migrar os dados.

  3. Configure serviços nas cargas de trabalho para apontar para o ponto de extremidade do Gen2.

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

    Você pode modificar as configurações de cada arquivo usando o Apache Ambari. Para encontrar as configurações da conta de armazenamento, confira Suporte do Azure ao Hadoop: ABFS — Azure Data Lake Storage Gen2. Este exemplo usa a configuração fs.azure.account.key para habilitar a 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 encontrar links para artigos que podem ajudar você a configurar o HDInsight, o Azure Databricks e outros serviços do Azure e usar o Gen2, confira Serviços do Azure que dão suporte ao Azure Data Lake Storage Gen2.

  4. Atualizar aplicativos para usar APIs do Gen2. Confira estes guias:

Ambiente Artigo
Gerenciador 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 o Java para gerenciar diretórios e arquivos no Azure Data Lake Storage Gen2
Python Usar o Python para gerenciar diretórios e arquivos no Azure Data Lake Storage Gen2
JavaScript (Node.js) Usar o SDK do JavaScript em Node.js para gerenciar diretórios e arquivos no Azure Data Lake Storage Gen2
API REST API REST do Azure Data Lake Store
  1. Atualize os scripts para usar cmdlets do PowerShelldo Data Lake Storage Gen2 e comandos do CLI do Azure.

  2. Pesquise referências de URI que contenham a cadeia de caracteres adl:// em arquivos de código ou em notebooks do Databricks, arquivos HQL do Apache Hive ou qualquer outro arquivo usado como parte de suas cargas de trabalho. Substitua essas referências pelo URI Gen2 formatado 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 no nível de arquivo e pasta e firewalls de Armazenamento do Azure e redes virtuais.

Etapa 4: substituição do Gen1 pelo Gen2

Depois de ter certeza de que seus aplicativos e cargas de trabalho estão estáveis no Gen2, é possível começar a usar o Gen2 para satisfazer seus cenários de negócios. Desative todos os pipelines restantes em execução no Gen1 e encerre sua conta do Gen1.

Funcionalidades do Gen1 vs Gen2

Esta tabela compara os recursos do Gen1 com os do Gen2.

Área Gen1 Gen2
Organização de dados Namespace hierárquico
Suporte a arquivos e pastas
Namespace hierárquico
Suporte a contêineres, arquivos e pastas
Redundância geográfica LRS LRS, ZRS, GRS, RA-GRS
Autenticação Identidade gerenciada do Microsoft Entra ID
Entidades de serviço
Identidade gerenciada do Microsoft Entra ID
Entidades de serviço
Chave de acesso compartilhada
Autorização Gerenciamento – RBAC do Azure
Dados – ACLs
Gerenciamento – RBAC do Azure
Dados – ACLs, RBAC do Azure
Criptografia – dados inativos Lado do servidor – com chaves gerenciadas pela Microsoft ou gerenciadas pelo cliente Lado do servidor – com chaves gerenciadas pela Microsoft ou gerenciadas pelo cliente
Suporte à VNET Integração VNET Pontos de extremidade de serviço, pontos de extremidade privados
Experiência do desenvolvedor REST, .NET, Java, Python, PowerShell, CLI do Azure Disponibilidade geral – REST, .NET, Java, Python
Visualização pública – JavaScript, PowerShell, CLI do Azure
Logs de recursos Logs clássicos
Azure Monitor integrado
Logs clássicos – geralmente disponíveis
Azure Monitor integrado – versão prévia
Ecossistema HDInsight (3.6), Azure Databricks (3.1 e posterior), Azure Synapse Analytics, ADF HDInsight (3.6, 4.0), Azure Databricks (5.1 e posterior), Azure Synapse Analytics, ADF

Padrões do Gen1 para o Gen2

Escolha um padrão de migração e, em seguida, modifique esse padrão conforme necessário.

Padrão de migração Detalhes
Lift- e -Shift O padrão mais simples. Ideal se seus pipelines de dados que podem arcar com tempo de inatividade.
Cópia incremental Semelhante a lift and shift, mas com menos tempo de inatividade. Ideal para grandes quantidades de dados que levam mais tempo para ser copiados.
Pipeline duplo Ideal para pipelines que não podem arcar com nenhum tempo de inatividade.
Sincronização bidirecional Semelhante ao pipeline duplo, mas com uma abordagem mais em fases, adequada para pipelines mais complicados.

Vamos examinar cada padrão com mais detalhes.

Padrão lift-and-shift

Este é o padrão mais simples.

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

  2. Mover dados do Gen1 para o Gen2. É recomendável usar o Azure Data Factory ou o portal do Azure. As ACLs são copiadas com os dados.

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

  4. Desativação do Gen1.

Confira nosso código de exemplo para o padrão de lift and shift em nosso exemplo de migração Lift and Shift.

Diagram of the lift and shift pattern.

Considerações sobre o uso do padrão lift and shift

  • Substituição do Gen1 para o Gen2 para todas as cargas de trabalho ao mesmo tempo.

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

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

Dica

Considere usar o portal do Azure para reduzir o tempo de inatividade e diminuir o número de etapas exigidas por você para concluir a migração.

Padrão de cópia incremental

  1. Comece a mover dados do Gen1 para o Gen2. Recomendamos o Azure Data Factory. As ACLs são copiadas com os dados.

  2. Copie de forma incremental dados novos do Gen1.

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

  4. Desativação do Gen1.

Confira nosso código de exemplo para o padrão de cópia incremental no 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

  • Substituição do Gen1 para o Gen2 para todas as cargas de trabalho ao mesmo tempo.

  • Espere o tempo de inatividade somente durante o período de substituição.

  • Ideal para pipelines em que todos os aplicativos foram atualizados ao mesmo tempo, mas a cópia de dados exige mais tempo.

Padrão de pipeline duplo

  1. Mover dados do Gen1 para o Gen2. Recomendamos o Azure Data Factory. As ACLs são copiadas com os dados.

  2. Ingerir novos dados tanto no Gen1 quanto no Gen2.

  3. Apontar cargas de trabalho para o Gen2.

  4. Interromper todas as gravações para o Gen1 e, em seguida, encerrar o 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

  • ️ Pipelines Gen1 e Gen2 executados lado a lado.

  • Dá suporte a tempo de inatividade zero.

  • Ideal em situações em que as cargas de trabalho e os aplicativos não podem arcar com 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 WanDisco. Ele oferece um recurso de reparo para os dados existentes.

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

  3. Desativação do Gen1.

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

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 em que uma abordagem em fases pode fazer mais sentido.

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

Próximas etapas

Confira também