Compartilhar via


Atualizar o Armazenamento de Blobs do Azure com os recursos do Azure Data Lake Storage Gen2

Este artigo ajuda você a habilitar um namespace hierárquico e desbloquear recursos como segurança no nível de arquivo e de diretório e operações mais rápidas. Esses recursos são amplamente utilizados por cargas de trabalho de análise de Big Data e são chamados coletivamente de Azure Data Lake Storage Gen2. Os recursos mais populares incluem:

  • Taxa de transferência mais alta, IOPS (operações de entrada/saída por segundo) e limites de capacidade de armazenamento.

  • Operações mais rápidas (como, por exemplo, operações de renomeação), pois é possível operar nas URIs de nó individuais.

  • Mecanismo de consulta eficiente que transfere apenas os dados necessários para executar uma determinada operação.

  • Segurança em nível de contêiner, diretório e arquivo.

Veja mais informações sobre esses recursos em Introdução ao Azure Data Lake Storage Gen2.

Este artigo ajuda você a avaliar o impacto sobre as cargas de trabalho, os aplicativos, os custos, as integrações de serviço, as ferramentas, os recursos e a documentação. Certifique-se de examinar cuidadosamente esses impactos. Quando estiver pronto para atualizar uma conta, consulte este guia passo a passo: Atualizar o Armazenamento de Blobs do Azure com recursos de Azure Data Lake Storage Gen2.

Importante

A atualização é unidirecional. Não há como reverter sua conta depois de fazer a atualização. Recomendamos que você valide a atualização em um ambiente de não produção.

Impacto na disponibilidade

Certifique-se de planejar algum tempo de inatividade em sua conta enquanto o processo de atualização não for concluído. As operações de gravação são desabilitadas enquanto sua conta está sendo atualizada. As operações de leitura não estão desabilitadas, mas é altamente recomendável suspendê-las, pois elas podem desestabilizar o processo de atualização.

Impacto nas cargas de trabalho e nos aplicativos

As APIs de Blobs funcionam com contas que têm um namespace hierárquico, portanto, a maioria dos aplicativos que interagem com sua conta usando essas APIs continuará funcionando sem modificação.

Para obter uma lista completa dos problemas e de soluções alternativas, consulte Problemas conhecidos com as APIs do Armazenamento de Blobs.

As cargas de trabalho do Hadoop que usam o driver do Azure Storage Blob do Windows (WASB) devem ser modificadas para usar o driver do Azure Blob File System (ABFS). Ao contrário do driver do WASB, que faz solicitações para o ponto de extremidade do serviço Blob, o driver do ABFS fará solicitações para o ponto de extremidade do Data Lake Storage de sua conta.

Ponto de extremidade do Data Lake Storage

Sua conta atualizada terá um ponto de extremidade do Data Lake Storage. Para encontrar a URL desse ponto de extremidade no portal do Azure, você pode abrir a página Propriedades da sua conta.

Categorias para uso geral v2

Você não precisa modificar seus aplicativos e cargas de trabalho existentes para usar esse ponto de extremidade. O acesso multiprotocolo no Data Lake Storage possibilita que você use o ponto de extremidade do serviço Blob ou do Data Lake Store para interagir com seus dados.

Os serviços e as ferramentas do Azure (como o AzCopy) podem usar o ponto de extremidade de do Data Lake Storage para interagir com os dados em sua conta de armazenamento. Além disso, você precisará usar desse novo ponto de extremidade para qualquer operação que você executar usando os SDKs do Data Lake Storage Gen2, os comandos do PowerShell ou os comandos da CLI do Azure.

Diretórios

Uma conta de armazenamento de BLOBs que não tenha um namespace hierárquico organiza os arquivos em um paradigma simples, em vez de um paradigma hierárquico. Os Blobs são organizados em diretórios virtuais para imitar uma estrutura de pastas. Um diretório virtual faz parte do nome do blob e é indicado pelo caractere delimitador. Como um diretório virtual faz parte do nome do blob, ele não existe realmente como um objeto independente.

Sua nova conta tem um namespace hierárquico. Isso significa que os diretórios não são virtuais. Eles são objetos concretos e independentes com os quais você pode operar diretamente. Um diretório pode existir sem conter nenhum arquivo. Quando você exclui um diretório, todos os arquivos dentro dele são removidos. Você não precisa mais excluir individualmente cada blob para que o diretório desapareça.

Metadados de blob

Antes da migração, os metadados do blob são associados ao nome do blob juntamente com o todo o caminho virtual. Após a migração, os metadados são associados somente ao blob. O caminho virtual para o blob se torna uma coleção de diretórios. Os metadados de um blog não são aplicados a nenhum desses diretórios.

Operações PUT

Quando você carregar um blob, e o caminho que você especificar incluir um diretório que não exista, a operação criará esse diretório e, em seguida, adicionará o blob a ele. Esse comportamento é lógico no contexto de uma estrutura de pasta hierárquica. Em uma conta de armazenamento de blobs que não tenha um namespace hierárquico, a operação não criará um diretório. Em vez disso, o nome do diretório será adicionado ao nome do blob.

Operações de listagem

A operação Listar blobs retorna diretórios e arquivos. Cada um será listado separadamente. Os diretórios aparecem na lista como blobs de comprimento zero. Em uma conta de armazenamento de blobs que não tenha um namespace hierárquico, a operação Listar blobs retorna somente os blobs, e não os diretórios. Se você usar a operação Listar caminho do Data Lake Storage Gen2, os diretórios serão exibidos como entradas de diretório, e não como blobs de comprimento zero.

A ordem da lista também será diferente. Os diretórios e arquivos aparecerão na ordem de pesquisa de balanceamento em profundidade. Uma conta de armazenamento de blobs que não tenha um namespace hierárquico lista os blobs em ordem lexicográfica.

Operações para renomear blobs

Renomear um blob é muito mais eficiente, pois os aplicativos cliente podem renomear um blob em uma única operação. Em contas que não tenham um namespace hierárquico, as ferramentas e os aplicativos precisam copiar um blob e, em seguida, excluir o blob de origem.

Observação

Quando você renomeia um blob, a hora da última modificação desse blob não é atualizada. Isso ocorre porque o conteúdo do blob não é alterado.

Impacto nos custos

Não há custo para executar a atualização. Depois da atualização, o custo para armazenar seus dados não muda, mas o custo de uma transação muda. Use essas páginas para avaliar os custos de comparação.

Você também pode usar a opção Contas de Armazenamento na Calculadora de preços do Azure para estimar o impacto dos custos após uma atualização.

Além das alterações de preços, considere as economias nos custos associadas aos recursos do Data Lake Storage Gen2. O total geral do custo de propriedade geralmente diminui devido a taxas de transferência mais altas e à otimização das operações. A taxa de transferência mais alta permite que você transfira mais dados em menos tempo. Um namespace hierárquico melhora a eficiência das operações.

Impacto nas integrações de serviço

Embora a maioria das integrações de serviço do Azure continue a funcionar depois de habilitar esses recursos, alguns deles permanecerão em versão prévia ou ainda não possuem suporte. Consulte os Serviços do Azure que possuem suporte para o Azure Data Lake Storage Gen2 para entender o suporte atual para as integrações de serviço do Azure com o Data Lake Storage Gen2.

Impacto em ferramentas, recursos e documentação

Após a atualização, a maneira de interagir com alguns recursos será alterada. Esta seção descreve essas alterações.

Suporte de recurso do Armazenamento de Blobs

Embora a maioria dos recursos de armazenamento de blobs continue a funcionar depois de habilitar esses recursos, alguns deles permanecerão em versão prévia ou ainda não possuem suporte.

Consulte os Recursos de Armazenamento de Blobs disponíveis no Azure Data Lake Storage Gen2 para entender o suporte atual para recursos de armazenamento de blobs com o Data Lake Storage Gen2.

Logs de diagnóstico

Se você habilitar o Registro em log da Análise de Armazenamento, você então terá a opção de usar o formato de log da versão 2.0.

Você não precisa usar essa nova versão. No entanto, todas as operações aplicadas ao ponto de extremidade do Data Lake Storage são registradas somente nos logs da versão 2.0. Alguns serviços e ferramentas que você utiliza (como o AzCopy) usarão esse ponto de extremidade para executar operações em sua conta. Para garantir que você capture informações de log de todas as atividades, considere usar o formato de log da versão 2.0.

Gerenciamento do ciclo de vida do Azure

Eles explicam efetivamente que as políticas para mover ou excluir todos os blobs em um diretório não excluirão o diretório em si até que todos os blobs dentro dele sejam removidos. O diretório será removido no dia seguinte.

Grade de Eventos

Sua nova conta tem dois pontos de extremidade: o ponto de extremidade do Data Lake Storage e o ponto de extremidade do serviço Blob. Serviços, ferramentas e aplicativos podem usar qualquer ponto de extremidade para operar em seus dados. Como resultado, uma resposta de evento retornada pela Grade de Eventos pode mostrar qualquer um desses dois pontos de extremidade no campo URL que descreva o blob afetado.

O JSON a seguir mostra a URL de um blob que aparece na resposta do evento quando um blob é criado usando o ponto de extremidade do serviço Blob.

{
  "topic": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
  "subject": "/blobServices/default/containers/test-container/blobs/new-file.txt",
  "eventType": "Microsoft.Storage.BlobCreated",
  "eventTime": "2017-06-26T18:41:00.9584103Z",
  "id": "831e1650-001e-001b-66ab-eeb76e069631",
  "data": {
    "api": "PutBlockList",
    "clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
    "requestId": "831e1650-001e-001b-66ab-eeb76e000000",
    "eTag": "\"0x8D4BCC2E4835CD0\"",
    "contentType": "text/plain",
    "contentLength": 524288,
    "blobType": "BlockBlob",
    "url": "https://my-storage-account.blob.core.windows.net/testcontainer/new-file.txt",
    "sequencer": "00000000000004420000000000028963",
    "storageDiagnostics": {
      "batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
    }
  },
  "dataVersion": "",
  "metadataVersion": "1"
}

O JSON a seguir mostra a URL de um blob que aparece na resposta do evento quando um blob é criado usando o ponto de extremidade do Data Lake Storage.

{
  "topic": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
  "subject": "/blobServices/default/containers/my-file-system/blobs/new-file.txt",
  "eventType": "Microsoft.Storage.BlobCreated",
  "eventTime": "2017-06-26T18:41:00.9584103Z",
  "id": "831e1650-001e-001b-66ab-eeb76e069631",
  "data": {
    "api": "CreateFile",
    "clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
    "requestId": "831e1650-001e-001b-66ab-eeb76e000000",
    "eTag": "\"0x8D4BCC2E4835CD0\"",
    "contentType": "text/plain",
    "contentLength": 0,
    "contentOffset": 0,
    "blobType": "BlockBlob",
    "url": "https://my-storage-account.dfs.core.windows.net/my-file-system/new-file.txt",
    "sequencer": "00000000000004420000000000028963",
    "storageDiagnostics": {
      "batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
    }
  },
  "dataVersion": "2",
  "metadataVersion": "1"
}

Se seus aplicativos usarem a grade de eventos, talvez seja necessário modificar esses aplicativos para levar isso em conta.

Gerenciador de Armazenamento

Os botões a seguir ainda não aparecem na Faixa de Opções do Gerenciador de Armazenamento do Azure:

Botão Motivo
Copiar URL Ainda não implementado
Gerenciar instantâneos Ainda não implementado
Restaurar Depende de recursos de armazenamento de blobs que ainda não têm suporte com o Data Lake Storage Gen2

Os botões a seguir se comportam de forma diferente em sua nova conta.

Botão Comportamento do armazenamento de blobs Comportamento do Data Lake Storage Gen2
Pasta A pasta é virtual e desaparece se você não adicionar arquivos a ela. A pasta existe mesmo sem arquivos adicionados a ela.
Renomear Resulta em uma cópia e, em seguida, na exclusão do blob de origem Renomeia o mesmo blob. Muito mais eficiente.

Documentação

Você pode encontrar as diretrizes para usar os recursos do Data Lake Storage Gen2 aqui: Introdução ao Azure Data Lake Storage Gen2.

Não houve alteração dos locais onde se encontram as diretrizes para todos os recursos existentes do armazenamento de blobs. As diretrizes estão aqui: Introdução ao Armazenamento de Blobs do Azure.

Conforme você passa pelos conteúdos, observará algumas pequenas diferenças na terminologia. Por exemplo, o conteúdo apresentado nos tópicos relacionados ao Data Lake Storage Gen2 pode usar o termo arquivo e sistema de arquivos em vez de blob e contêiner. Os termos arquivo e sistema de arquivos estão profundamente enraizados no mundo da análise de Big Data, no qual o Data Lake Storage possui um longo histórico. O conteúdo preserva estes termos para mantê-lo acessível a esses públicos. Esses termos não descrevem coisas separadas.

Próximas etapas

Quando estiver pronto para atualizar sua conta de armazenamento para incluir os recursos do Data Lake Storage Gen2, consulte este guia passo a passo.