Share via


Zonas e contêineres do data lake

É importante planejar sua estrutura de dados antes de colocá-la em um data lake. Quando você tem um plano, pode usar a segurança, o particionamento e o processamento de forma eficaz.

Para obter uma visão geral dos data lakes, consulte Visão geral do Armazenamento do Azure Data Lake para análise em escala de nuvem.

Visão geral

Suas três contas de data lake devem se alinhar às camadas típicas de data lake.

Número do lago Camadas Número do contêiner Nome do contêiner
1 Raw 1 Destino
1 Raw 2 Compatibilidade
2 Enriquecido 1 Padronizado
2 Selecionado 2 Produtos de dados
3 Desenvolvimento 1 Área restrita do Analytics
3 Desenvolvimento # Número de armazenamento primário da Synapse

A tabela anterior mostra o número padrão de contêineres que recomendamos por zona de desembarque de dados. A exceção a essa recomendação é quando diferentes políticas de exclusão temporária são necessárias para os dados em um contêiner. Esses requisitos determinam a necessidade de mais contêineres.

Observação

Três data lakes são ilustrados em cada zona de destino de dados. O data lake fica em três contas de data lake, vários contêineres e pastas, mas representa um data lake lógico para sua zona de aterrissagem de dados.

Dependendo de suas necessidades, convém consolidar camadas brutas, enriquecidas e selecionadas em uma conta de armazenamento. Mantenha outra conta de armazenamento chamada "desenvolvimento" para que os consumidores de dados tragam outros produtos de dados úteis.

Para obter mais informações sobre como separar contas de data lake, consulte Contas de armazenamento em um data lake lógico.

Habilite o Armazenamento do Azure com o recurso de espaço de nome hierárquico, que permite gerenciar arquivos com eficiência. O recurso de espaço de nome hierárquico organiza objetos e arquivos dentro de uma conta em uma hierarquia de diretórios e subdiretórios aninhados. Essa hierarquia é organizada da mesma forma que o sistema de arquivos em seu computador.

Quando seu mecanismo independente de ingestão de dados ou aplicativo de integração registra um novo sistema de registro, ele cria pastas obrigatórias em contêineres nas camadas de dados brutos, enriquecidos e padronizados. Se um aplicativo de dados alinhado à origem ingerir os dados, sua equipe de aplicativo de dados precisará da equipe da zona de destino de dados para criar as pastas e os grupos de segurança. Coloque um nome de princípio de serviço ou identidade gerenciada no grupo correto e atribua um nível de permissão. Documente esse processo para as equipes de aplicativos de dados e zona de destino de dados.

Para saber mais sobre equipes, confira Noções básicas sobre funções e equipes para análises em escala de nuvem no Azure.

Cada produto de dados deve ter duas pastas no contêiner de produtos de dados que sua equipe de produtos de dados possui.

Na camada enriquecida de um contêiner padronizado, há duas pastas por sistema de origem, divididas por classificação. Com essa estrutura, sua equipe pode armazenar separadamente dados que tenham diferentes classificações de segurança e dados e atribuir-lhes diferentes acessos de segurança.

O contêiner padronizado precisa de uma pasta geral para confidencial ou menos e uma pasta confidencial para dados pessoais. Controle o acesso a essas pastas usando listas de controle de acesso (ACLs). Você pode criar um conjunto de dados com todos os dados pessoais removidos e armazená-los em sua pasta geral. Você pode ter outro conjunto de dados que inclua todos os dados pessoais em sua pasta de dados pessoais confidenciais .

Uma combinação de ACLs e grupos do Microsoft Entra restringe o acesso a dados. Essas listas e grupos controlam o que outros grupos podem ou não acessar. Os proprietários de dados e as equipes de aplicativos de dados podem aprovar ou rejeitar o acesso aos ativos de dados.

Para saber mais, confira Gerenciamento de acesso a dados e Dados restritos.

Aviso

Alguns produtos de software não oferecem suporte à montagem da raiz de um contêiner de data lake. Devido a essa limitação, cada contêiner de data lake nas camadas bruta, curada, enriquecida e de desenvolvimento deve conter uma única pasta ramificada para várias pastas. Configure suas permissões de pasta com atenção. Quando você cria uma nova pasta a partir da raiz, a ACL padrão no diretório pai determina a ACL padrão de um diretório filho e a ACL de acesso. A ACL de um arquivo filho não tem uma ACL padrão.

Para saber mais, confira ACLs (listas de controle de acesso) no Azure Data Lake Storage Gen2.

Camada bruta ou data lake um

Pense na camada bruta como um reservatório que armazena dados no estado natural e original. Eles não são filtrados nem purificados. Você pode armazenar os dados em seu formato original, como JSON ou CSV. Ou pode ser econômico armazenar o conteúdo do arquivo como uma coluna em um formato de arquivo compactado, como Avro, Parquet ou Databricks Delta Lake.

Esses dados brutos são imutáveis. Mantenha seus dados brutos bloqueados e, se você conceder permissões a qualquer consumidor, automatizado ou humano, certifique-se de que eles sejam somente leitura. Você pode organizar essa camada usando uma pasta por sistema de origem. Dê a cada processo de ingestão acesso de gravação somente à pasta associada.

Ao carregar dados de sistemas de origem na zona bruta, você pode optar por fazer:

  • Cargas completas para extrair um conjunto de dados completo.
  • A Delta carrega para carregar apenas os dados alterados .

Indique o padrão de carregamento escolhido na estrutura de pastas para simplificar o uso para os consumidores de dados.

Os dados brutos dos sistemas de origem para cada aplicativo de dados alinhado à origem ou fonte do mecanismo de ingestão automatizada pousam na pasta completa ou na pasta delta. Cada processo de ingestão deve ter acesso de gravação somente à pasta associada.

As diferenças entre cargas completas e cargas delta são:

  • Carga total - Os dados completos da fonte podem ser integrados se:

    • O volume de dados na origem é pequeno.
    • O sistema de origem não mantém um campo de carimbo de data/hora que identifique se os dados foram adicionados, atualizados ou excluídos.
    • O sistema de origem substitui os dados completos todas as vezes.
  • Carga delta - Os dados incrementais da origem podem ser integrados se:

    • O volume de dados na origem é grande.
    • O sistema de origem mantém um campo de carimbo de data/hora que identifica se os dados foram adicionados, atualizados ou excluídos.
    • O sistema de origem cria e atualiza arquivos quando ocorrem alterações de dados.

Seu data lake bruto é composto por seus contêineres de pouso e conformidade. Cada contêiner usa uma estrutura de pastas 100% obrigatória específica para sua finalidade.

Layout do contêiner de destino

Seu contêiner de desembarque é reservado para dados brutos provenientes de um sistema de origem reconhecido. Seu mecanismo de ingestão independente de dados ou um aplicativo de dados alinhado à fonte carrega os dados, que são inalterados e em seu formato original suportado.

.
|-Landing
|--Log
|---{Application Name}
|--Master and Reference
|---{Source System}
|--Telemetry
|---{Source System}
|----{Application}
|--Transactional
|---{Source System}
|----{Entity}
|-----{Version}
|------Delta
|-------{date (ex. rundate=2019-08-22)}
|------Full

Contêiner de conformidade da camada bruta

Sua camada bruta contém dados em conformidade com a qualidade de dados. À medida que os dados são copiados para um contêiner de pouso, o processamento de dados e a computação são acionados para copiar os dados do contêiner de desembarque para o contêiner de conformidade. Nesta primeira fase, os dados são convertidos no formato de delta lake e colocados em uma pasta de entrada. Quando a qualidade dos dados é executada, os registros que passam são copiados para a pasta de saída. Os registros que falharem aterrissam em uma pasta de erro.

.
|-Conformance
|--Log
|---{Application Name}
|--Master and Reference
|---{Source System}
|--Telemetry
|---{Source System}
|----{Application}
|--Transactional
|---{Source System}
|----{Entity}
|-----{Version}
|------Delta
|-------Input
|--------{date (ex. rundate=2019-08-22)}
|-------Output
|--------{date (ex. rundate=2019-08-22)}
|-------Error
|--------{date (ex. rundate=2019-08-22)}
|------Full
|-------Input
|--------{date (ex. rundate=2019-08-22)}
|-------Output
|--------{date (ex. rundate=2019-08-22)}
|-------Error
|--------{date (ex. rundate=2019-08-22)}

Dica

Pense em cenários em que talvez seja necessário reconstruir uma plataforma de análise do zero. Considere os dados mais granulares necessários para reconstruir armazenamentos de dados de leitura downstream. Tenha um plano de continuidade dos negócios e recuperação de desastres implementado para seus principais componentes.

Camada enriquecida ou data lake dois

Pense na camada enriquecida como uma camada de filtragem. Ela remove impurezas e também pode envolver enriquecimento.

Seu contêiner de padronização contém sistemas de registros e mestres. As pastas são segmentadas primeiro por área de assunto e, em seguida, por entidade. Os dados estão disponíveis em tabelas mescladas e particionadas que são otimizadas para o consumo de análise.

Contêiner padronizado

.
|-Standardized
|--Log
|---{Application Name}
|--Master and Reference
|---{Source System}
|--Telemetry
|---{Source System}
|----{Application}
|--Transactional
|---{Source System}
|----{Entity}
|-----{Version}
|------General
|--------{date (ex. rundate=2019-08-22)}
|-------Sensitive
|--------{date (ex. rundate=2019-08-22)}

Observação

Essa camada de dados é considerada a camada prata ou a fonte de dados de leitura. Os dados dentro dessa camada não tiveram transformações aplicadas além da qualidade dos dados, conversão do lago delta e alinhamento do tipo de dados.

O diagrama a seguir mostra o fluxo de data lakes e contêineres dos dados de origem para um contêiner padronizado.

Diagram that shows a high level data flow.

Camada coletada ou data lake dois

Sua camada coletada é sua camada de consumo. Ele é otimizado para análises, em vez de ingestão ou processamento de dados. A camada curada pode armazenar dados em data marts desnormalizados ou esquemas em estrela.

Os dados do contêiner padronizado são transformados em produtos de dados de alto valor que são servidos aos consumidores de dados. Esses dados têm estrutura. Ele pode ser servido aos consumidores no estado em que se encontra, como blocos de anotações de ciência de dados, ou por meio de outro armazenamento de dados de leitura, como o Banco de Dados SQL do Azure.

Use ferramentas, como Spark ou Data Factory, para fazer modelagem dimensional em vez de fazê-lo dentro do mecanismo de banco de dados. Isso é importante para fazer do data lake a única fonte da verdade.

Quando a modelagem dimensional é feita fora do data lake, recomenda-se publicar os modelos novamente nele para fins de consistência. Essa camada não substitui um data warehouse. Seu desempenho normalmente não é adequado para painéis responsivos ou análises interativas do usuário final e do consumidor. Essa camada é mais adequada para analistas internos e cientistas de dados que executam consultas ou análises improvisadas em grande escala, ou para analistas avançados que não têm necessidades de relatórios sensíveis ao tempo. Como os custos de armazenamento são mais baixos em seu data lake do que em seu data warehouse, pode ser econômico manter dados granulares e de baixo nível em seu lago. Armazene dados agregados em seu depósito. Gere essas agregações usando o Spark ou o Azure Data Factory. Persista-os em seu data lake antes de carregá-los em seu data warehouse.

Os ativos de dados nessa zona geralmente são altamente controlados e bem documentados. Atribua permissões por departamento ou por função e organize permissões por grupo de consumidores ou data mart.

Contêiner de produtos de dados

.
|-{Data Product}
|---{Entity}
|----{Version}
|-----General
|-------{date (ex. rundate=2019-08-22)}
|------Sensitive
|-------{date (ex. rundate=2019-08-22)}

Dica

Quando você aterrissar dados em outro armazenamento de dados de leitura, como o Banco de Dados SQL do Azure, verifique se você tem uma cópia desses dados localizada em seus dados selecionados. Os usuários do produto de dados são guiados para o armazenamento de dados de leitura principal ou para a instância do Banco de Dados SQL do Azure, mas também podem explorar dados com ferramentas extras se você disponibilizar os dados em seu data lake.

Camada de desenvolvimento ou data lake três

Os consumidores podem trazer outros produtos de dados úteis com os dados ingeridos no contêiner padronizado.

Nesse cenário, sua plataforma de dados pode alocar uma área de área restrita de análise para esses consumidores. Na área restrita, eles podem gerar insights valiosos usando os dados selecionados e os produtos de dados que eles trazem. Por exemplo, se uma equipe de ciência de dados quiser determinar a melhor estratégia de colocação de produto para uma nova região, ela poderá trazer outros produtos de dados, como dados demográficos do cliente e dados de uso, de produtos semelhantes nessa região. A equipe pode usar os insights de vendas de alto valor desses dados para analisar o ajuste do mercado do produto e a estratégia de oferta.

Observação

A área de área restrita de análise é uma área de trabalho para um indivíduo ou um pequeno grupo de colaboradores. As pastas dessa área têm um conjunto especial de políticas que impedem tentativas de usá-la como parte de uma solução de produção. Essas políticas limitam o armazenamento total disponível e por quanto tempo os dados podem ser armazenados.

Geralmente, esses produtos de dados são de qualidade e precisão desconhecidas. Eles ainda são categorizados como produtos de dados, mas são temporários e relevantes apenas para o grupo de usuários que está usando os dados.

Quando esses produtos de dados amadurecem, sua empresa pode promover esses produtos de dados para sua camada de dados selecionada. Para manter suas equipes de produtos de dados responsáveis ​​por novos produtos, forneça a elas uma pasta dedicada na zona de dados coletada. Eles podem armazenar novos resultados na pasta e compartilhá-los com outras equipes em toda a organização.

Observação

Para cada espaço de trabalho do Azure Synapse que você criar, use o data lake três para criar um contêiner para usar como armazenamento principal. Esse contêiner impede que os espaços de trabalho do Azure Synapse interfiram nos limites de taxa de transferência das zonas selecionadas e enriquecidas.

Exemplo de fluxo de dados em produtos e na área restrita de análise

O diagrama a seguir compila as informações deste artigo e mostra como os dados fluem para uma área restrita de análise e produtos de dados.

Diagram showing a data flow into product container and analytics sandbox.

Próximas etapas