본문 바로가기

EDU

12차시. 그래프 데이터베이스와 빅데이터 시각화 기술

차시목표
1. 데이터 시각화의 정의를 알고 시각화 시장의 동향을 살펴본다
2. 대표적인 그래프 데이터베이스를 살펴보고 데이터 그래프의 특징을 이해한다
주요내용
1. 시각화 데이터 학습하기
2. 그래프 데이터베이스 학습하기
3. 그래프 데이터 학습하기
4. 그래프 데이터베이스 학습하기
5. 대표적인 그래프 데이터베이스 학습하기
6. 데이터 시각화 기술의 동향

 

■ 그래프 데이터베이스와 빅데이터 시각화 기술

1. 시각화 데이터

● 데이터 경쟁 시대에서의 의미

- 데이터란, 숫자나 문자 등의 기록으로 남겨진 모든 행위의 자료를 의미합니다.

분석 대상이 되는 데이터에는 숫자, 문자, 기호, 이미지, 소리, 영상 등이 모두 포함됩니다.

데이터의 쓰임이 넓고 다양해지면서 기계를 인간화하기에 필요한 모든 재료를 통칭하기에 이르렀습니다.

인간의 모든 기록은 라벨링을 통해 인공지능의 학습 데이터가 됩니다.

데이터 경쟁 시대에서 데이터의 시각화는 ‘무엇을 보느냐’가 아니라 ‘어떻게 보느냐’의 관점에서 중요해집니다. 

 

나. 시각화 분석의 접근 방식 시각화 분석의 기본 접근은 ‘재질의가 가능한가’에 달려 있습니다. 

데이터의 시각화에서 질의의 형태는 시각적인 형상화와 대화형의 인터페이스여야 합니다. 

또 시각화의 설계 요소는 하나의 분석에 다양한 관점을 가지게 하는 유연 한 모습으로 제공되어야 합니다. 

2. 그래프 데이터베이스

● 그래프 데이터베이스의 필요성
- 그래프 데이터는 많은 수의 노드들이 서로 간선으로 연결되어 있는 형태입니다. 이에 따라 그래프의 데이터베이스가 활발하게 사용되고 있는데, 그래프 데이터베이스가 그래프에 최적화된 장소, 질의 처리, 질의 언어 등을 제공하기 때문입니다. 

● 그래프 데이터베이스가 활용되는 분야
- 그래프 형태의 데이터가 생성되는 분야는 다양합니다. 예를 들어, 화학 분야에서는 여러 원소가 결합된 복잡한 화합물을 그래프 형태로 표현합니다. 비즈니스에서는 각 데이터에 대한 유통, 거래, 배포 기록과 같은 이력 정보를 그래프로 표현합니다. 

● 기존의 관계형 데이터베이스와의 차이점
- 기존의 관계형 데이터베이스는 제정이 매우 복잡하고, 저장하더라도 다수의 테이블 간의 조인 등에 의해 질의 처리가 비효율적이 라는 단점이 있습니다. 그래프 형태의 데이터를 사용하는 이유는 효율적인 저장과 효율적인 질의의 지원이 가능하기 때문입니다. 

3. 그래프 데이터

● 그래프 데이터 구성 요소
- 노드
- 간선
- 속성
● 역할
- 과거에도 객체 간의 관계를 나타내거나, XML 데이터베이스에서 그래프의 일종인 트리 모델을 사용한 바가 있었습니다. 하지만 대규모 그래프를 저장하거나 질의를 제공하는 확장성 측면에서는 한계가 있었습니다. 그래프 데이터베이스는 이러한 한계점을 극복하고 그 역할을 대신할 수 있습니다.

4. 그래프 데이터베이스

● 특징
- 그래프 데이터베이스의 특징은 기존의 관계형 데이터베이스에 비해 속도가 빠르고, 데이터의 표현이 쉽습니다. 그래프 데이터베이스는 그래프 형태의 데이터를 저장과 질의 및 관리하는 데에 최적화되어 있습니다. 특히, 많은 개체 수의 다양한 관계 정보를 관리하는 데 적합합니다. 

5. 그래프 데이터베이스의 대표적인 기능

- 그래프 데이터에 대한 CRUD 연산을 제공한다. 

- 대부분 그래프 연산에 대한 ACID 트랜잭션을 제공한다. 

- 노드 간의 연결 상태를 저장하고 있는 색인 또는 인접 정보를 유지하여 연결된 노드들을 빠르게 탐색할 수 있다. 

● Neo4j 

- Neo4j는 고유의 그래프 모델을 제안하고 구현한 최초의 그래프 데이터베이스 중의 하나입니다. 현존하는 그래프 데이터베이스 중에서 가장 유명하며, 오픈 소스로 제공되는 그래프 데이터베이스입니다. 

① 지원 영역
- 그래프 데이터에 대한 무결성 및 ACID 트랜잭션을 지원합니다. 

- 그래프 데이터에 특화된 고유한 저장소를 사용함으로써 빠른 성능과 확장성이 있는 아키텍처를 제공합니다. 

- 수평(Horizontal) 확장 기능을 제공합니다. Neo4j는 형태와 규모에 구애받지 않고 효율적인 저장과 질의 및 분석이 가능 합니다.
 또 여러 대의 컴퓨터에 분산된 데이터에 대해 일관성과 무결성 유지가 가능합니다. 

② 구현 및 질의 언어
- Neo4j는 자바(Java)와 스칼라(Scala)로 구현됩니다. 

- 데이터에 대한 질의 언어는 사이퍼(Cypher)를 사용합니다. 

- 그래프 데이터 접근을 위한 API는 자바(Java), 네오포제이(Neo4j)-OGM, 레스트풀 HTTP API(RESTful HTTP API), Spring Data Neo4j 등을 지원합니다. 

- 프로그래밍 언어는 자바(Java), 자바스크립트(JavaScript), PHP, 파이썬(Python), 루비(Ruby), 스칼라(Scala), 고(Go) 등을 지원합니다. 

Neo4j는 그래프의 저장 및 질의를 직접 처리합니다. 

그래프를 연산할 때는 ACID 트랜잭션을 지원하고, 동시 사용자 간의 병행제어 및 트랜잭션 결과의 보존 기능을 제공합니다. 

그래프에 대한 질의도 사이퍼(Cypher)를 통해 SQL을 사용하는 것보다 매우 쉽게 표현할 수 있습니다. 

그래프 데이터에 최적화된 질의 처리를 할 수 있어 그래프 질의에 대한 빠른 처리가 가능합니다. 

● JanusGraph

- JanusGraph는 분산 클러스터에 최적화된 그래프 데이터베이스 시스템입니다. 

리눅스 재단(Linux Foundation)이 오픈소스 방식으로 제공하고 있습니다. 특히, 확장성에 초점을 맞추고 있습니다. 

① 지원 영역
- 분산 환경에서 여러 컴퓨터에 저장된 데이터 간의 일관성은 최종 일관성 (Eventual Consistency) 형태로 지원합니다. 

- ACID 트랜잭션을 지원하며, 수천 명의 사용자가 동시에 복잡한 그래프 질의를 수행할 수 있는 것으로 알려져 있습니다. 

- Expero, Google, Hortonworks, IBM, Amazon 등이 개발에 참여하고 있습니다. 

- 분석 플랫폼으로서는 Apache Spark, Apache Hadoop 등의 여러 Apache - 프로젝트의 소프트웨어와 연동이 가능합니다. #10
② 구현 및 질의 언어
- JanusGraph는 Java에서 구현됩니다. 

- Linux, OS X, Unix, Windows에서 실행됩니다. 

- 질의 언어는 그렘린(Gremlin)을 제공합니다. 

아파치에서 제공하는 그래프 스택 팅커팝(TinkerPop)을 사용하여 그렘린 질의를 처합니다. 

- 프로그래밍 언어는 Java, Python, Clojure를 지원합니다. 

JanusGraph는 수백억 개부터 수천억 개까지의 노드 및 간선으로 이루어진 그래프를 분산 클러스터에 저장하고 질의를 수행할 수 있습니다.

또 데이터의 가용성을 높이기 위해 데이터를 복제하여 저장하는 방식을 사용합니다. 

6. 데이터 시각화 기술의 동향

● 연관 분석 기법

① 연관 분석 기법의 기능
- 연관 분석 기법은 대화형, 비정형 탐색 및 분석에 사용됩니다.

연관 분석 기법의 기능을 사용하면 전문가에게 문의한 뒤에 시간을 들여 기다리지 않아도 됩니다. 

보는 것을 바탕으로 자유롭고 제한 없이 검색하고 탐색하며 피벗을 할수 있습니다. 

- 어떤 데이터도 제외되지 않고 다수의 데이터 소스를 완전히 결합하고 인덱싱하여 가능한 연관을 조사합니다. 

- 연관 분석 엔진은 강력하고 신속한 계산 및 집계를 통해 분석을 즉시 업데이트 합니다. 

- 업데이트한 내용을 각각 클릭한 다음에 관련된 값과 관련되지 않은 값을 모두 노출할 수 있습니다. 

- 데이터 내의 연관성을 모두 강조해서 보여 줍니다. 

② 연관 데이터 모델링 기술의 주요 특성
- 다양한 모든 데이터를 사용하고, 데이터를 잘못 처리하지 않는 능력이 있습니다. 

- 사용자는 단순한 검색 및 선택을 통해 경계 없는 탐색이 가능하며, 모든 질문과 후속 질문을 할 수 있습니다. 

- 전문가에게 문의하고 응답을 기다릴 필요가 없어 사용자의 생각의 속도대로 작업을 수행할 수 있습니다. 

● 경계 없는 탐색

- 경계 없는 탐색이란, 연관 엔진을 이용해 경계에 상관없이 어떠한 방향에서든 지 전체 데이터 소스에 대한 자유로운 탐색을 뜻합니다. 

연관 엔진은 클릭이 발생할 때마다 실시간으로 분석하고 계산하여 데이터 내의 연관성을 강조할 수 있습니다. 

또 레코드 수준 데이터 세트를 기반으로 하는 동적인 계산이 가능하므로 사용자는 원하는 항목을 선택해 새로운 아이디어나 데이터로 피벗 할 수 있습니다. 

● 생각의 속도

① 쿼리 기반 도구의 한계점
- 쿼리 기반의 도구를 작업할 수 있는 사용자는 소수입니다. 

쿼리 기반의 도구를 사용하면 데이터의 부분 집합에 대한 제한적인 선형 분석만을 제공하게 됩니다. 

이는 정적의 시각화와 보고서를 이용하게 된다는 뜻입니다. 

쿼리를 통해 질문을 정확히 예측하고 적절한 쿼리를 구축할 수 없다면 결국 데이터 전문가의 도움을 받을 수밖에 없게 됩니다. 

② 연관 엔진 분석의 이점
- 연관 엔진 분석은 동적인 계산이 가능합니다. 

또 사용자가 질문을 떠올리는 것과 같은 속도로 연관성을 강조해 시각화합니다.
 이는 시스템이나 전문가의 도움이 없더라도 필요한 응답을 바로 받을 수 있다는 것을 뜻합니다. 

연관 엔진 분석은 신속한 가치창출과 정보를 기반으로 하는 의사결정 처리가 가능합니다. 

또 연관 엔진 분석에서는 비교 불가능한 속도와 유연성의 결합이 가능합니다.

시각화 분석의 기본 접근은 ‘재질의가 가능한가’에 달려 있다. O
[해설]
시각화 분석의 기본 접근은 ‘재질의가 가능한가’에 달려 있습니다.
데이터의 시각화에서 질의의 형태는 시각적인 형상화와 대화형의 인터페이스여야 합니다.
또 시각화의 설계 요소는 하나의 분석에 다양한 관점을 가지게 하는 유연한 모습으로 제공되어야 합니다.
기존의 관계형 데이터베이스는 제정이 매우 단순하다는 장점이 있다. X
[해설]
기존의 관계형 데이터베이스는 제정이 매우 복잡하고, 저장하더라도 다수의 테이블 간의 조인 등에 의해 질의 처리가 비효율적이라는 단점이 있습니다.
그래프 형태의 데이터를 사용하는 이유는 효율적인 저장과 효율적인 질의의 지원이 가능하기 때문입니다.
그래프 데이터베이스의 특징은 기존의 관계형 데이터베이스에 비해 속도가 빠르고, 데이터의 표현이 쉽다는 것이다. O
[해설]
그래프 데이터베이스의 특징 기존의 관계형 데이터베이스에 비해 속도가 빠르고, 데이터의 표현이 쉽습니다.
그래프 데이터베이스는 그래프 형태의 데이터를 저장과 질의 및 관리하는 데에 최적화되어 있습니다.
특히, 많은 개체 수의 다양한 관계 정보를 관리하는 데 적합합니다.