Apache Atlas
Governança de Dados

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 utilizados 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 para as transformações digitais e otimize os parques de tecnologia, demanda das organizações um "alicerce" estruturado e grande 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ória, na redução de custos com políticas e sistemas centralizados, no crescimento dos dados controlados e organizados, protegendo-os de qualquer contratempo, dentro dum ambiente cultural favorável à inovação e permeando todo o pipeline de tecnologias pelas quais os dados circularão.

Características do Apache Atlas
O Apache Atlas é um conjunto escal ável de serviços essenciais de governança fornecidos para o Hadoop, com o objetivo de auxiliar as organizações a cumprir os 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 controlos de governança independentes de plataforma atendendo eficazmente 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.
- Controlo de acesso a dados orientado por metadados.
- Modelagem flexível de dados comerciais e operativos.
- 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.

Arquitetura do Apache Atlas
A arquitetura do Apache Atlas envolve os seguintes componentes:
Core
-
Type System: Permite a definição dum 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 das relações 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 grafo 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 (´tempo real´ ou ´em lote´).
Atualmente, suporta a ingestão e gerenciamento de metadados das seguintes fontes:
- HBase
- Hive
- Sqoop
- 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.

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 operativos 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 aceder e atualizar a linhagem.
-
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 dum 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, num ambiente não assegurado, esta identidade é a mesma que o usuário autenticado no S.O. para iniciar o servidor. No entanto, num 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 dum 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::
- Controlos 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.
