일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 쿠버네티스
- 크롤링
- replaceAll
- REST
- microservice
- 도커
- 스파크
- oracle
- dataset
- Data Lineage
- Java
- MariaDB
- spark
- kubernetes
- web crawl
- 컨테이너
- OkHttpClient
- docker
- MSA
- Python
- CRAWL
- atlas
- 테이블정의서
- RDD
- container
- 정규식
- Prototype
- okhttp3
- dataframe
- 파이썬
- Today
- Total
J 의 기록
Apache Atlas 본문
- Apache Atlas
> Data Governance and Metadata framework for Hadoop
'데이터 거버넌스 및 메타데이터 프레임워크'
데이터 표준 및 계보(lineage)를 관리
1-1. 데이터 거버넌스란?
데이터 거버넌스란 전사적인 차원에서 보유하고 있는 모든 데이터의 관리에 대한 기업 IT시스템 내 데이터를 관리하기 위한 정책 및 프로세스.
거버넌스의 주요기능은 데이터품질 관리, 메타데이터 관리, 데이터 주기 관리, 그리고 데이터 보안 및 프라이버시가 있다.
1-2. 데이터 거버넌스로 얻는 장점
1) 데이터 투명성 제공 : 데이터에 대한 전반적인 시각을 제공하고 데이터 액세스를 향상시켜 이전에는 이용할 수 없었던 통찰력을 얻을 수 있는 기회를 제공
2) 데이터 품질 향상 : 데이터 중복을 최소화하여 데이터를 생성할 수 있음.
3) 보안 유지 : 보다 세분화된 액세스 제어 정책으로 데이터 유출 등에 대한 대응이 가능.
주요 기능
- Meta Data를 관리
- Table/Column 등의 단위를 HashTag를 붙여 관리/검색할 수 있음
- Table/Column 등 세밀하게 권한을 부여하여 접근제한이나 Masking 처리를 할 수 있음
- 각 Meta 간의 관계를 계보(Lineage)를 생성시켜 확인
- Apache Atlas 기대효과
1) hive , hbase 등 이기종 데이터 메타 관리 (hive, hbase, sqoop, kafka)
> Atlas UI 를 통한 통합 데이터 메타 관리
> REST API 를 이용한 검색
2) 데이터 계보관리를 통한 최초 생성 부터 ETL 과정을 거쳐 타깃 DB 로 이동하는 데이터 흐름을 확인.
> REST API 를 이용하여 계보(Lineage) 관리
3) 세분화된 권한 관리로 인한 보안 강화
> Apache Ranger 를 통한 Classification 기반 엔티티별 권한관리/데이터마스킹 - 상세 기능
1) Metadata types & instances
-
- 다양한 hadoop과 hadoop이 아닌 Metadata를 사전에 정의된 유형으로 사용 가능.
- 새로운 유형의 Metadata를 정의하고 관리할 수 있음.
- 타입은 단순한 속성, 복잡한 속성을 가지거나 객체 참조를 할 수 있음. 다른 유형으로부터 상속받을 수 있음.
- 개체들(entities)이라고 불리는 유형의 인스턴스는 metadata 객체의 상세와 연관성을 수집.
- REST API들을 함께 제공하며, 이것으로 쉽게 데이터 통합을 할 수 있음.
2) Classification
-
- 분류를 동적으로 생성하는 기능 - 이를테면 개인정보(PII), 만료정보(EXPIRES_ON), 데이터 품질(DATA_QUALITY), 민감정보(SENSITIVE)
- 분류는 속성을 포함함 - 이를테면 만료정보(EXPIRES_ON) 분류의 만료기간(expiry_date) 속성
- 개체들(entities)은 다양한 분류와 관련있으며, 검색과 보안강화가 용이함
- 계보를 통한 분류의 전파 - 다양한 처리 과정에서 분류는 데이터를 자동으로 따르도록 보장
3) Lineage
-
- 직관적인 UI로 데이터가 어떻게 이동 및 가공 처리가 됐는지 계보로 볼 수 있음
- REST APIs로 계보에 접근 및 업데이트
4) Search/Discovery
-
- 직관적인 UI로 유형, 분류, 속성값 혹은 자유로운 텍스트들 개체를 검색 가능
- 풍부한 REST APIs로 복잡성이 높은 검색도 가능
- SQL like Query 언어와 같은 걸로 개체들 검색 - Domain Specific Language (DSL)
5) Security & Data Masking
-
- metadata 접근의 세밀한 보안, 개체들 인스턴스의 접근과 제어를 가능하게 해주고 추가/수정/제거와 같은 분류작업이 가능
- Apache Ranger와 결합하여 데이터 접근 기반에 승인처리/데이터 Masking을 마련하고 Apache Atlas 내에서 개체들과 연동되어 분류.
예시) - 개인정보(PII), 민감정보(SENSITIVE)로 분류된 data에 접근할 수 있는 사용자
- CS팀 사용자들은 주민등록번호(NATIONAL_ID)로 분류된 컬럼의 오직 끝 4자리만을 볼 수 있음 (※역주 : 공식 홈페이지 참조. 서구권 기준이라서 끝 4자리인 듯. 한국으로 치면 주민번호 앞자리 여섯자, 뒷자리 첫자 등)
4. Atlas가 지원하는 Meta Service
-
- hive
- hbase
- ranger
- sqoop
- storm/kafka
- falcon
5. 환경구성
-
- ambari 2.7.1.0
- hortonworks 3.0.1
- HDFS 3.1.1
- hive 3.1.0
- hbase 2.0.0
- atlas 1.0.0
139 서버에 설치된 환경 구성에서 시작
HDP 구성의 세부사항은 HDP(Hortonworks Data Platform: HDP 3.1.0) 설치 링크 참조
Architecture
Core
- Type System
atlas는 metadata 모델을 정의할 수 있으며, 그 모델은 '유형'이라는 형태로 구성된다. 모든 metadata 객체는 Type System이을 통해 모델링되고 개체들이 표시된다.
모델을 새로 정의할 때엔 atlas의 특성으로 인해 기술적인 metadata와 비즈니스적인 metadata를 모두 정의할 수 있다.
- Graph Engine
atlas는 내부적으로 graph 엔진을 사용하여 metadata 객체를 관리한다.
graph 엔진의 구성요소는 atlas type system의 유형과 개체들 - 하위 graph 지속성 모델 간의 변환작업을 담당한다.
atlas는 JanusGraph를 사용하여 metadata 개체를 저장하며, 따로 index를 만들어 저장하여 검색을 좀더 용이하게 한다.
- Ingest / Export
Ingest를 통해 atlas에 metadata를 추가할 수 있다.
내보내기 기능은 atlas에서 감지한 metadata 변경사항을 이벤트로 발생시켜 표시한다.
Intergration
- API
유형과 개체들을 생성, 수정, 삭제할 수 있는 REST API 함수들을 제공한다.
- Messaging
API 외에도 Kafka 기반의 Messaging Interface도 사용할 수 있다.
atlas는 Kafka 통신 서버의 hooks과 metadata 처리 알림 이벤트 downstream 알림 처리도 사용한다.
Metadata sources
atlas는 meta service(위의 상세 기능에 4번 참조)에서의 객체를 나타내기 위해 기본적으로 정의하는 모델이 있다.
Applications
- Atlas Admin UI
Web 기반의 응용프로그램으로, 데이터 관리자나 기술자가 metadata를 참조하거나 주석을 달 수 있다.
interface나 SQL과 유사한 query 방식의 검색 사용을 통해 metadata의 유형과 객체들을 관리할 수 있다.
admin UI는 REST API의 함수도 사용할 수 있다.
- Tag Based Policies
Apache Ranger와 결합하여 metadata의 보안 정책을 정의하고 관리한다.
Ranger는 Atlas의 metadata 변경 이벤트 알림을 참조한다.
'개발' 카테고리의 다른 글
[Kubernetes] 쿠버네티스와 도커 (0) | 2020.03.06 |
---|---|
VNC 설치 (0) | 2020.03.06 |
Oracle 테이블 정의서 쿼리 (0) | 2020.03.06 |
MariaDB VS MySQL (0) | 2020.03.06 |
[Kubernetes] 쿠버네티스란 무엇인가 (0) | 2020.03.06 |