Saltar para o conteúdo principal

Apache Atlas

Governança de Dados

Apache Atlas icon

Em resposta à intensa busca por valor e velocidade na tomada de decisão pelas organizações modernas, o mercado oferece, cada vez mais, tecnologias, ambientes e componentes para serem consumidos e explorados com estratégias realtime, near-time, streaming e outras que permitam a transformação dos dados e o acesso às informações no menor tempo possível.

Embora esta evolução analítica agregue alta capacidade às transformações digitais e otimize os parques de tecnologia, demanda das organizações um "alicerce" estruturado e alta maturidade na manutenção de processos e ativos.

É neste momento que entra a Governança de Dados, processo fundamental que garante alinhamento à conformidade das organizações, melhorando a qualidade das percepções, auxiliando na adoção da conformidade regulatóri1, na redução de custos com políticas e sistemas centralizados, no crescimento dos dados controlados e organizados, protegendo-os de qualquer contratempo, dentro de um ambiente cultural favorável à inovação e permeando todo o pipeline de tecnologias em que os dados navegarão.

Figura 1 - Aspectos da Governança de dados
Figura 1 - Aspectos da Governança de dados

Características do Apache Atlas​

O Apache Atlas é um conjunto escalável de serviços básicos de governança fornecidos para o Hadoop, com o objetivo de auxiliar as organizações na realização de seus requisitos de conformidade. Para isso, usa modelos prescritivos e forenses enriquecidos por metadados taxonômicos de negócios.

O Apache Atlas permite que as organizações construam um catálogo de seus bens, classificando-os, administrando-os e provendo competências de colaboração para seu uso por cientistas de dados e times de governança.

A ferramenta foi projetada para trocar metadados com outras ferramentas e processos dentro e fora da pilha Hadoop, permitindo assim controles de governança independentes de plataforma atendendo, com eficácia, aos requisitos de conformidade.

Esses serviços incluem:

  • Pesquisa e linhagem proscritiva: facilitando a exploração pré-definida e ad hoc de dados e metadados e mantendo um histórico de fontes de dados e de como dados específicos foram gerados.
  • Controle de acesso a dados orientado por metadados.
  • Modelagem flexível de dados comerciais e operacionais.
  • Classificação de dados: auxiliando no entendimento da natureza dos dados e sua classificação com base em fontes externas e internas.
  • Intercâmbio de metadados com outras ferramentas de metadados.
Figura 2 - Interface Apache Atlas
Figura 2 - Interface Apache Atlas

Arquitetura do Apache Atlas​

A arquitetura do Apache Atlas envolve os seguintes componentes:

Core​

  • Type System: Permite a definição de um modelo para objetos de metadados que se deseja gerenciar.

    • O modelo é composto de definições chamadas types.
    • As instâncias das types são chamadas entidades e representam os objetos de metadados que serão gerenciados.
    • Todos os objetos de metadados gerenciados pelo Atlas no modelo out-of-the-box (prontos para uso) são modelados usando types e representados como entidades.
    • A natureza genérica da modelagem no Atlas permite que integradores e administradores de dados definam metadados técnicos e de negócio e os relacione por meio de recursos do Atlas.
  • Engine Graph: Internamente, Atlas persiste os objetos de metadados que gerencia usando um modelo Graph. Esta abordagem provê grande flexibilidade e habilita a manipulação eficiente dos relacionamentos entre os objetos de metadados.

    • A engine Graph é responsável pela tradução entre types e entidades do Type System e pelo modelo de persistência do gráfico subjacente.
    • A engine Graph também cria índices para objetos metadados de forma que se possa executar buscas de forma eficiente.
    • O Atlas usa o JanusGraph para armazenar objetos metadados.
  • Ingestão/Exportação: O componente ingest habilita a adição de metadados no Atlas e o componente export disponibiliza as mudanças detectadas em metadados para serem geradas como eventos e consumidas pelos Consumers em resposta às mudanças em metadados em tempo real.

Integração​

Existem dois métodos para gerenciar metadados no Atlas:

  • API: Todas as funcionalidades do Atlas são disponibilizadas ao usuário final via REST API, que habilita a criação, alteração e exclusão de types e entidades. É este o principal mecanismo para consulta e discover dos types e entidades gerenciados pelo Atlas.

  • Mensagens: Adicionalmente às APIs, há a possibilidade de integração com o Atlas usando a interface messaging.

    • Esta interface é muito útil para a comunicação entre objetos de metadados para o Atlas e para consumir eventos de alteração de metadados do Atlas. É particularmente útil quando se deseja usar uma integração mais flexível para alcançar mais escalabilidade, confiança, etc.
    • O Atlas usa o Kafka como servidor de notificações para comunicação entre consumidores hooks e downstream de eventos de notificação de metadados. Eventos são escritos pelo hooks e Atlas para diferentes tópicos Kafka.
  • Fontes de metadados

    O Atlas oferece suporte a integração com diversas fontes de metadados, prontas para uso. A integração implica em duas coisas:

    • Existirem modelos de metadados que Atlas define nativamente para representar objetos destes componentes.
    • Existirem componentes fornecidos pelo Atlas para "ingerir" objetos metadados desses componentes (real time ou batch).

    Atualmente, suporta a ingestão e gerenciamento de metadados das seguintes fontes:

    • HBase
    • Hive
    • Sqoop (obsoleto — aposentado pela Apache Software Foundation)
    • Storm
    • Kafka
    • Falcon

Aplicações​

Os metadados gerenciados pelo Apache Atlas são consumidos por uma variedade de aplicações.

  • Admin UI: Este componente, baseado na Web, habilita administradores e cientistas de dados a "descobrir" e "anotar" metadados.

    • É uma interface de pesquisa com linguagem de consulta semelhante a SQL que pode ser usada para consultar os tipos de metadados e objetos gerenciados pelo Atlas.
    • A Interface usa a API REST do Atlas para criar sua funcionalidade.
  • Políticas baseadas em tags do Ranger: O Ranger é uma solução avançada de gerenciamento de segurança para o ecossistema Hadoop com ampla integração com uma variedade de componentes.

    • Ao integrar-se com o Atlas, permite que administradores de segurança definam políticas orientadas por metadados, visando uma governança eficaz.
    • É um Consumer de eventos de alteração de metadados notificados pelo Atlas.
Figura 3 - Arquitetura Apache Atlas
Figura 3 - Arquitetura Apache Atlas

Recursos do Apache Atlas​

  • Base de conhecimento: Aproveita os metadados existentes. Suporta a troca de metadados com outros componentes, aplicativos de terceiros ou ferramentas de governança.

  • Auditoria centralizada: Armazenamento indexado e "pesquisável" a partir de repositório histórico de todos os eventos de governança, incluindo acessos, concessões, negações, eventos operacionais relacionados à proveniência de dados e métricas.

  • Engine de política: Política de conformidade em tempo de execução com base em esquemas de classificação de dados, atributos e funções.

  • Interface RESTful (em conformidade com os critérios REST): Suporte a aplicativos de terceiros por meio de APIs REST.

  • Linhagem

    • UI intuitiva para visualizar linhagens de dados, à medida em que se movem pelos processos.
    • APIs REST para trabalhar com tipos e instâncias.
  • Integração com Ranger:: Integração com Apache Ranger habilitando autorização/mascaramento de dados no acesso ao dado, baseado em classificações associadas com entidades. Pode ser usada para implementar políticas de segurança baseadas em classificação dinâmica e em papéis.

  • Alta disponibilidade e Tolerância a falhas: O Apache Atlas usa e interage com uma variedade de sistemas para prover gerenciamento de metadados e linhagem de dados para administradores de dados. Estas dependências devem ser configuradas adequadamente, para que seja possível alcançar um alto grau de disponibilidade. A comunidade descreve este suporte em detalhes aqui.

  • Propagação da Classificação:: Apache atlas habilita classificações para entidades serem associadas automaticamente com outras entidades relacionadas. Isto é muito útil quando lidamos com cenários onde um dataset deriva seu dado a partir de outros datasets.

  • Metadados do Negócio: O typesystem do Atlas permite a definição de um modelo e a criação de entidades para objetos de metadados que se deseja gerenciar. O modelo captura atributos técnicos como nome, descrição, data de criação, número de réplicas, etc. Isto é muito útil para expandir atributos técnicos com atributos adicionais da captura de detalhes do negócio para auxiliar na organização, busca, gerenciamento de entidades de metadados.

  • Segurança:: Os seguintes recursos de segurança estão disponíveis para auxiliar na segurança da Plataforma:

    • Suporte a SSL one-way (autenticação do servidor) e two-way (autenticação do cliente e servidor).
    • Autenticação de serviços: A Plataforma, ao iniciar, é associada a uma identidade autenticada. Por default, em um ambiente não assegurado, esta identidade é a mesma que o usuário autenticado no S.O. para iniciar o servidor. No entanto, em um Cluster seguro, que utiliza Kerberos, é uma prática recomendada configurar um Keytab e Principal para que a Plataforma seja autenticada no KDC. Com isso, o serviço interagirá com outros serviços de Cluster seguros.
    • Autenticação baseada em SPNEGO: Os acessos HTTP à Plataforma Atlas podem ser protegidos ativando o suporte SPNEGO da plataforma. Existem atualmente dois mecanismos suportados:
      • simples: a autenticação é realizada por meio de um nome de usuário fornecido.
      • Kerberos: a identidade autenticada KDC do cliente é aproveitada para autenticar no servidor.
  • Índice de Reparo:: Em casos raros, durante a criação da entidade, os índices correspondentes não são criados no Solr. Como o Atlas depende muito do Solr, isto resultaria na entidade não retornada por uma pesquisa (a pesquisa avançada não é afetada). O Atlas Index Repair Utility para JanusGraph permite a restauração de todos os índices.

  • Tipo de Entidade Atlas Server: O tipo de entidade AtlasServer é um tipo especial de entidade:

    • Criada durante operações de Export ou Import.
    • Possui páginas de propriedades especiais que mostram auditorias detalhadas para operações de importação e exportação.
    • Entidades são vinculadas a ela, usando a nova opção dentro do atributo de entidade SoftReference.
  • Atributos replicados:: Por meio dos atributos do tipo de entidade Referenciável replicatedFrom e replicatedTo é possível saber como entidades chegaram à instância do Apache Atlas, se foram criadas por ingestão de gancho ou importadas de outra instância.

  • SoftReference:: A estratégia de persistência do atributo é determinada baseada em seu tipo. A opção do atributo isSoftReference definida como true faz com que um tipo de atributo não-primitivo receba o tratamento de atributo primitivo.

  • Políticas de acesso Ranger-Atlas::

    • Controles de acesso baseados em classificação: Uma entidade de dados pode ser marcada como metadados relacionada à conformidade ou determinada taxonomia e usada para atribuir permissões a um usuário ou grupo.
    • Política de acesso baseada em expiração de dados: Datas de expiração para negar acesso automaticamente aos dados marcados após a data indicada.
    • Políticas de acesso específicas do local: Acesso a um usuário enquanto estiver em determinado local, mas não em outro, embora se trate do mesmo usuário.
    • Proibição de combinações de conjuntos de dados: Restrição baseado em conjuntos de dados (como por exemplo, para evitar que sejam combinados).

Detalhes do Projeto Apache Atlas​

Apache Atlas foi desenvolvido predominantemente em Java. Possui componentes de Dashboard em JavaScript.

Figura 4 - Linguagens do Atlas
Figura 4 - Linguagens do Atlas

Fontes:​