그래프 Db | Graph Db(그래프 Db)의 개념과 활용(1교시) 29471 명이 이 답변을 좋아했습니다

당신은 주제를 찾고 있습니까 “그래프 db – GRAPH DB(그래프 DB)의 개념과 활용(1교시)“? 다음 카테고리의 웹사이트 ppa.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://ppa.maxfit.vn/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 투이컨설팅-투이톡 이(가) 작성한 기사에는 조회수 1,749회 및 좋아요 23개 개의 좋아요가 있습니다.

그래프 데이터베이스란 그래프를 만들고 조작하기 위한 특수한 단일 목적 플랫폼으로 정의됩니다. 그래프에는 노드, 에지 및 속성이 포함되며, 모두 관계형 데이터베이스가 할 수 없는 방식으로 데이터를 표현하고 저장하는 데 사용됩니다.

Table of Contents

그래프 db 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 GRAPH DB(그래프 DB)의 개념과 활용(1교시) – 그래프 db 주제에 대한 세부정보를 참조하세요

Graph DB는 무엇일까요? 기존 RDBMS와의 본질적인 차이와 유사성을 정확히 이해하고, 그 특성을 활용한 구체적 활용분야를 엔코아 이화식 대표님이 알기 쉽게 설명해드립니다.
– Graph DB의 출현 배경 및 주력 분야
– Graph DB의 개념 및 구조적 특성
-적용 시에 유의해야 할 핵심 요소
#GraphDB #그래프DB

그래프 db 주제에 대한 자세한 내용은 여기를 참조하세요.

그래프 데이터베이스란? – AWS

그래프 데이터베이스는 노드를 사용하여 데이터 엔터티를 저장하고 엣지로는 엔터티 간의 관계를 저장합니다. 엣지는 항상 시작 노드, 끝 노드, 유형과 방향을 가지며, …

+ 여기를 클릭

Source: aws.amazon.com

Date Published: 10/6/2021

View: 1225

데이터 분석 결과를 효과적으로 제공하기 위한 그래프 …

그래프 데이터베이스(GDB)는 데이터를 그래프(노드, 에지)로 저장하고 표현하는 데이터베이스이다. GDB는 에지를 통해 데이터에 해당하는 노드 간 관계를 …

+ 여기를 클릭

Source: d2.naver.com

Date Published: 1/5/2022

View: 573

그래프 데이터베이스 – 위키백과, 우리 모두의 백과사전

컴퓨팅에서 그래프 데이터베이스(graph database, GDB)는 시맨틱 쿼리를 위해 노드, 엣지, 프로퍼티와 함께 그래프 구조를 사용하여 데이터를 표현하고 저장하는 …

+ 여기를 클릭

Source: ko.wikipedia.org

Date Published: 1/16/2021

View: 4902

그래프DB – 인코덤, 생물정보 전문위키

그래프DB #. 그래프 이론을 바탕으로 노드, 엣지, 프로퍼티로 연결되어있는 데이터를 저장하기 위한 NoSQL 데이터베이스이다.

+ 여기에 자세히 보기

Source: www.incodom.kr

Date Published: 12/11/2022

View: 8664

Graph DB? 그래프 데이터베이스 – RastaLion’s IT Blog

Graph DB?오랜만에 글을 쓰는거 같네요. 현재 이런저런 일도 많이 있고 방송대 전공 과목의 과제와 기말시험을 대비한 공부를 하느라 포스팅이 소홀 …

+ 여기에 보기

Source: rastalion.me

Date Published: 10/3/2022

View: 5840

Graph DB 와 RDBMS 트랜드 3부- 그래프 데이터베이스의 종류

관계형 및 그래프 모델 데이터를 모두 처리 할 수있는 단일 저장소를 생성하여 사용자가 Graph 쿼리 언어 인 openCypher (http://www.opencypher.org)와 …

+ 여기에 자세히 보기

Source: couplewith.tistory.com

Date Published: 8/14/2022

View: 8642

01-1 그래픽 데이터베이스란 ? – 그래프 데이터베이스 (Neo4J)

그래프는 무엇인가? 그래프에 대한 관계 모델링; Run-time behavior : RDBMS vs graph; How we model : RDBMS vs graph. 그래픽 데이터베이스를 설명 …

+ 여기에 자세히 보기

Source: wikidocs.net

Date Published: 8/2/2021

View: 9409

그래프 DB를 선택할 때 고려해야 할 10 가지 사항

1. Native Graph Storage. 네이티브 그래프 스토리지는 그래프 데이터베이스의 무결성과 성능을 상징하는 근본적인 요소입니다. 네이티브 그래프 스토리지 …

+ 여기에 표시

Source: bitnine.tistory.com

Date Published: 12/15/2022

View: 2412

[창간 36주년 특별기획] 데이터 분석의 패러다임 시프트, 그래프 …

[아이티데일리] 국내 시장에서도 그래프 DB에 대한 관심이 점점 높아지고 있다. 그래프 DB는 데이터 간의 관계성을 명시적으로 저장해, …

+ 자세한 내용은 여기를 클릭하십시오

Source: www.itdaily.kr

Date Published: 5/17/2022

View: 6849

주제와 관련된 이미지 그래프 db

주제와 관련된 더 많은 사진을 참조하십시오 GRAPH DB(그래프 DB)의 개념과 활용(1교시). 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

GRAPH DB(그래프 DB)의 개념과 활용(1교시)
GRAPH DB(그래프 DB)의 개념과 활용(1교시)

주제에 대한 기사 평가 그래프 db

  • Author: 투이컨설팅-투이톡
  • Views: 조회수 1,749회
  • Likes: 좋아요 23개
  • Date Published: 2020. 2. 5.
  • Video Url link: https://www.youtube.com/watch?v=4EmYcO6nI34

그래프 데이터베이스 정의

그래프 데이터베이스 중 인기 있는 유형으로 속성 그래프와 RDF 그래프, 두 가지를 꼽을 수 있습니다. 속성 그래프는 분석 및 쿼리에, RDF 그래프는 데이터 통합에 중점을 둡니다. 두 가지 유형 모두 포인트(꼭짓점)와 해당 포인트 사이의 라인(에지)의 모음으로 구성됩니다. 그러나 차이점도 있습니다.

그래프 데이터베이스 중 인기 있는 유형으로 속성 그래프와 RDF 그래프, 두 가지를 꼽을 수 있습니다. 속성 그래프는 분석 및 쿼리에, RDF 그래프는 데이터 통합에 중점을 둡니다. 두 가지 유형 모두 포인트(꼭짓점)와 해당 포인트 사이의 라인(에지)의 모음으로 구성됩니다. 그러나 차이점도 있습니다.

특성 그래프

속성 그래프는 데이터 간의 관계를 모델링하는 데 사용되며 이러한 관계를 기반으로 쿼리 및 데이터 분석 작업을 지원합니다. 속성 그래프에는 주제에 대한 자세한 정보 등을 포함하는 꼭짓점과 이 꼭짓점 간의 관계를 나타내는 에지가 있습니다. 꼭짓점과 에지는 속성(properties)이라고 하는 요소(attributes)를 가질 수 있으며, 이를 사용하여 연결될 수 있습니다.

이 예에서는 동료 및 이들의 관계 집합이 속성 그래프로 표시됩니다.

다방면으로 유용한 특성 덕분에 속성 그래프는 금융, 제조, 공공 안전, 소매 분야를 포함한 다양한 산업 및 부문에서 광범위하게 사용됩니다.

RDF 그래프

RDF(Resource Description Framework) 그래프는 명령문을 나타내도록 설계된 W3C(Worldwide Web Consortium)의 표준을 따르며, 복잡한 메타 데이터 및 마스터 데이터를 표현하는 데 가장 적합합니다. RDF 그래프는 연결된 데이터, 데이터 통합 및 지식 그래프에 자주 사용됩니다. 도메인 내에서 복잡한 개념을 나타낼 수 있을 뿐 아니라 데이터와 관련하여 풍부한 의미 체계 및 추론도 제공할 수 있습니다.

RDF 모델에서 문장은 세 가지 요소로 표현됩니다. 꼭짓점 2개와 이 두 점을 연결하는 에지 1개로 구성된 RDF 트리플은 문장의 주어, 술어, 목적어를 반영합니다. 모든 꼭짓점과 에지는 URI 또는 고유한 리소스 식별자로 식별됩니다. RDF 모델은 잘 정의된 의미 체계를 갖춘 표준 형식으로 데이터를 표현하기 때문에 정보 교환이 수월해집니다. 정부 통계 기관, 제약 회사 및 헬스케어 기관에서 RDF 그래프를 널리 사용하고 있습니다.

그래프 데이터베이스란?

Amazon Neptune는 수십억 개의 관계를 저장하고 밀리 초의 지연 시간으로 그래프를 쿼리하는데 최적화된 특별한 용도의 고성능 그래프 데이터베이스 엔진입니다. Neptune은 널리 사용되는 그래프 모델 속성 그래프와 W3C (Worldwide Web Consortium)의 RDF(Resource Description Framework)를 지원할 뿐만 아니라 고도로 연결된 데이터세트의 효율적 탐색을 돕는 쿼리를 작성할 수 있도록 각각의 쿼리 언어인 Apache TinkerPop Gremlin과 SPARQL도 지원합니다.

고도의 가용성이 특징인 Neptune은 읽기 전용 복제본, 특정 시점으로 복구, Amazon S3으로 연속 백업, 가용 영역 간 복제 등의 기능을 갖추고 있습니다. Neptune은 유휴 중 암호화를 지원하므로 안전합니다. Neptune은 종합 관리형 솔루션이기 때문에 더 이상 하드웨어 프로비저닝, 소프트웨어 패치, 설정, 구성, 백업과 같은 데이터베이스 관리 작업을 염려할 필요가 없습니다.

위키백과, 우리 모두의 백과사전

컴퓨팅에서 그래프 데이터베이스(graph database, GDB[1])는 시맨틱 쿼리를 위해 노드, 엣지, 프로퍼티와 함께 그래프 구조를 사용하여 데이터를 표현하고 저장하는 데이터베이스이다. 이 시스템의 주 개념은 그래프(엣지 또는 관계)이며 스토어에 직접 데이터 항목들의 관계를 정한다. 이러한 관계들은 스토어 안의 데이터가 함께 직접 연결될 수 있게 한다.

그래프 데이터베이스는 일반적인 그래프를 표현한다는 점에서 1970년대의 네트워크 모델 데이터베이스와 비슷하지만 네트워크 모델 데이터베이스는 더 낮은 수준의 추상화로써 동작하며[2] 일련의 엣지 간의 용이한 횡단이 불가능하다.[3]

개요 [ 편집 ]

그래프 데이터베이스는 노드, 엣지, 프로퍼티를 갖추고 있다.

그래프 데이터베이스는 그래프 이론에 기반을 두며 노드, 엣지(edge), 프로퍼티를 갖추고 있다.

노드(node): 추적 대상이 되는 사람, 기업, 계정 등 의 실체를 대표한다. 관계형 데이터베이스의 레코드, 관계, 로우, 도큐먼트 데이터베이스의 도큐먼트와 개념이 거의 동등하다.

엣지(edge): 그래프(graph)나 관계(relationship)이라고도 하며 노드를 다른 노드에 연결하는 선이며 관계를 표현한다.

프로퍼티(property): 노드의 정보와 밀접한 관련이 있다. 이를테면 위키백과가 노드 중에 하나라면 위키백과의 어떠한 관점이 주어진 데이터베이스에 밀접한 관련이 있느냐에 따라 웹사이트, 참고 문헌, w로 시작하는 낱말과 같은 프로퍼티에 묶여있을 수 있다.

역사 [ 편집 ]

그래프 데이터베이스 이전에 1960년대 중순 IBM의 IMS 등의 내비게이셔널 데이터베이스는 자체적인 계층형 모델에서 트리 계열 구조를 지원하였으나 엄격한 트리 구조는 가상 레코드로 우회가 가능하였다.[4][5]

그래프 구조는 1960년대 말에 네트워크 모델 데이터베이스에서 표현할 수 있었다. 1959년에 코볼을 정의했던 CODASYL은 1969년 네트워크 데이터 언어(Network Database Language)를 정의했다.

레이블이 붙은 그래프들은 1980년대 중순부터 논리 데이터 모델(Logical Data Model) 등 그래프 데이터베이스에서 표현할 수 있었다.[2][6]

1990년대 초에 그래프 데이터베이스의 여러 개선점들이 모습을 드러냈으며 1990년대 말에는 웹 페이지를 색인화하는 노력과 더불어 가속화되었다.

2000년대 중순에서 말 즈음에 Neo4j, 오라클 스페셜 앤드 그래프와 같은 상용 ACID 그래프 데이터베이스들의 이용이 가능하게 되었다.

2010년대에 수직 스케일링이 가능한 상용 ACID 그래프 데이터베이스의 이용이 가능하게 되었다. 더 나아가, SAP HANA는 그래프 데이터베이스에 인메모리와 컬럼화 기술을 도입하였다.[7] 또, 2010년대에 그래프 모델을 지원했던 멀티 모델 데이터베이스들(및 관계형 데이터베이스나 도큐먼트 지향 데이터베이스 등의 기타 모델)이 등장하였으며 이를테면 OrientDB, ArangoDB, 마크로직(7.0 버전부터) 등이 있다.

한국의 그래프 데이터베이스 연구 개발 전문 기업으로는 비트나인이 있으며, 2017년 1월 AgensGraph v.1.0을 출시하였다.[8]

그래프 데이터베이스 목록 [ 편집 ]

저명한 그래프 데이터베이스 목록은 다음과 같다:

같이 보기 [ 편집 ]

인코덤, 생물정보 전문위키

Structured data Category Database

그래프 이론을 바탕으로 노드, 엣지, 프로퍼티로 연결되어있는 데이터를 저장하기 위한 NoSQL 데이터베이스이다. 객체 또는 노드로 불리는 데이터를 플롯, 그래프에서 이를 연결하여 데이터 네트워크를 구축한다. 하나의 노드가 가질 수 있는 관계의 수와 종류에는 제한이 없어 매우 유연한 구조의 데이터 모델을 표현할 수 있다.

소셜 네트워크 그래프의 사례 출처: https://aws.amazon.com/ko/nosql/graph/

그래프DB 종류 #

Neo4j: 그래프 DB 중 하나로 자바 기반으로 임베딩 방식이나 REST 방식으로 사용이 가능하다.

AllegroGraph: RDF를 저장할 수 있는 그래프 DB

그래프DB 랭킹 #

DB-Engines (http://db-engines.com/)에서 제공하는 그래프 DB의 랭킹(1~10위)은 다음과 같다.

Rank DBMS 명 데이터베이스 모델 1 Neo4j Graph DBMS 2 Titan Graph DBMS 3 OrientDB Multi-model 4 Virtuso Multi-model 5 ArangoDB Multi-model 6 Giraph Graph DBMS 7 AllegroGraph Multi-model 8 Stardog Multi-model 9 Sqrrl Multi-model 10 InfiniteGraph Graph DBMS

출처: http://db-engines.com/en/ranking/graph+dbms, DB-Engines Ranking of Graph DBMS

적용 사례 #

Personalized Education Service:

학생들 개개인에게 맞는 맞춤형 학습 환경을 제공하는 것은 많은 기업이 원하는 일이다. 이를 위해 AI 기반 교육 프로그램은 학생별 각기 다른 커리큘럼을 제공하기 위해 30년 이상 쌓아온 학습 데이터를 그래프 데이터베이스에 저장 및 관리한다. 이를 이용하여 학생들의 학습 습관 패턴을 분석해 학습 과정을 AI가 관리할 수 있는 지식 그래프(Knowledge Graph)를 구축하였다.

Performance Management System:

제조업 생산과정은 시험부터 유통에 이르기까지 다양한 부서들과의 협업을 통해 이루어져 있다. 이런 복잡하고 다양한 협업들을 효율적으로 관리하기 위해 그래프 데이터베이스로 보기 쉽고 분석하기 쉽도록 시각화 플랫폼을 구축하여 부서 협업 관계를 네트워크 형태로 저장, 관리할 수 있게 하였다.

Incoming Links #

Related Data Sciences (DataScience 0) #

Suggested Pages #

Graph DB? 그래프 데이터베이스

Graph DB?

오랜만에 글을 쓰는거 같네요. 현재 이런저런 일도 많이 있고 방송대 전공 과목의 과제와 기말시험을 대비한 공부를 하느라 포스팅이 소홀했습니다. 기말 공부를 하던중에 머리도 식힐 겸 Graph DB를 조금 알아보았습니다.

NoSQL를 많이 사용하고, 많은 기업에서 NoSQL 전문가들을 찾는데, NoSQL에 포함된 여러 데이터베이스들은 각각 자기만의 아키텍처를 가지고 있습니다. 따라서 MongoDB를 좀 다룬다고 해서 Graph DB인 Neo4j 혹은 Arango 같은 GraphDB 타입의 NoSQL을 다룰수 있다는 아니고 역시 공부가 좀 필요하더군요.

일반적으로 GraphDB라고 했을때 어떤 생각이 떠오르시나요?

그래프 라는 것은 일반적으로 통계를 나타낼때 사용하는 막대 그래프 같은 통계나 수치를 보여주는 것이 가장 먼저 떠오르지 않을까 싶네요. 또는 IT업계 분들이라면, 뭐 그래픽 카드의 성능을 이용하는가 라고 생각할 수도 있을것 같습니다.

GraphDB는 이런것들과 전혀 관계 없으며, 그래프는 꽤 오래된 개념으로 스위스의 수학자 레온 하르트 오일러의 학술 논문에서 처음 기술 되었습니다. 그는 쾨니히스베르크의 7개의 다리로 알려진 문제를 해결하기 위해 노력중이었고, 이 문제는 요즘에는 수학을 공부하는 학생이라면 한번쯤 본적이 있을 겁니다.

7개의 다리는 도시의 4개의 서로 다른 지역과 연결되어 있음

도시 곳곳을 둘러보고 모든 다리를 두 번 건너지 않고 모든 다리를 건너는 것

오일러는 자신이 만든 수학 공식을 이용해 이 문제를 해결 했는데, 이 과정에서 짝수 개의 다리가 없다는 것을 증명함으로써 문제를 만족하는 산책을 할 수 없다는 것을 증명 했습니다. 이과정에서 나온 것이 바로 그래프이며, 그래프 이론의 시발점이 되는 것이죠.

이렇게 탄생한 그래프를 정의한다면, “연결되어 있거나 서로 관련이 있는 2개 이상의 실체를 추상화하여 수학적으로 표현한 것” 입니다.

수학에서는 위 그림에서 빨간 원으로 표시된 부분을 정점(Vertex)라고 하지만, GraphDB에서는 노드라고 표현합니다.

정점을 잇는 선들을 Edge라고 표현하며, GraphDB에서는 엣지를 통해 각각의 노드들이 서로 연결되어 있는 구조를 통해 그래프가 생성됩니다.

이처럼 오일러의 모델과 알고리즘을 이용하여, 그래프를 사용해 모델링과 솔루션 패턴을 연구하는 과학 분야를 그래프 이론이라고 부릅니다. 그리고 그래프의 유형에는 여러가지가 있습니다.

현재 GraphDB의 대표적인 데이터베이스는 Neo4j입니다. 그리고 Neo4j 말고도 arangoDB 같은 다양한 GraphDB들이 있습니다.

GraphDB들은 NoSQL의 범주에 들어 있지만, 일반적인 NoSQL의 데이터베이스들과는 많이 다른 특징을 보여주는데 바로 모든 작업을 그래프와 그래프 이론을 통해 동작한다는 것입니다.

GraphDB의 특징

그래프를 이용하여 데이터를 탐색하는 경우의 가장 큰 장점은 인덱스를 이용하지 않아도 연결된 노드를 찾는 것이 빠르다는 것입니다. 노드와 노드간의 관계를 이용해 인접한 관계를 찾는 기능인데 index free adjacency라고 합니다. 이처럼 관계를 이용한 정보를 탐색하는데 강력하고, 관계형 데이터베이스보다 관계를 표현하는데 있어 더 직관적이며, 왜곡 없이 표현할 수 있습니다. RDBMS에서 10개 이상의 테이블을 조인하게 되면 테이블의 사이즈, 데이터양, 조인 순서들 많은 부분을 고려하여도, 성능저하가 발생하는 것을 막을수가 없지만, GraphDB는 이런 복잡한 연산을 처리하는데 적합한 그래프 이론을 알고리즘으로 채택하고 있습니다.

다른 NoSQL과 마찬가지로 스키마가 없는 구조로 되어 있으며, 반정규화된 데이터를 처리하는데 적합합니다. 노드는 RDBMS의 테이블과 비교할 수 있는데, 노드는 테이블이 행/열의 데이터를 가지고 있는 것과 같은 속성을 가지고 있습니다.

GraphDB에서 관계는 항상 시작과 끝점이 있는 방향을 가지고 있는데 , 자체 참조가 가능하여 시작과 끝이 동일 노드가 될 수도 있습니다. 관계는 명시적이며, 노드 처럼 속성을 가질수도 있습니다.

GraphDB를 어디다 사용해야 할까?

4~6개 이상의 테이블을 이용하는 복잡한 질의를 해야한다면 GraphDB가 좋은 대안이 될수 있습니다. 인덱스를 이용해 시작 노드를 찾고 index free adjacency를 이용해 해당 노드에 연결된 관계만들 탐색합니다. 패턴이 일치하지 않는 것들은 무시하고 넘어가기 때문에 연결된 패턴을 찾는데 있어서는 매우 빠른 속도를 보장합니다. 노드의 데이터 크기와 쿼리의 성능이 독립적이기 때문에 데이터 사이즈가 늘어난다고 해서 성능의 저하가 발생하지 않습니다.

비지니스 인텔리전트 시스템에서도 강점을 가지고 있습니다. 실시간으로 데이터를 복제하고 반정규화하고 추출, 변환 및 적재 하는 작업를 큐브라고 하는데, GraphDB에서는 데이터를 많이 복제하지 않아도 되는 데이터에 대해 요청과 응답을 실시간으로 업데이트 할 수 있습니다.

서로 다른 데이터들이 어떻게 연관되어 있는지 확인하는 경우에도 GraphDB는 강점을 보입니다. 시작과 끝이 되는 노드만 알려주고 그래프 이론을 적용하기만 하면 되기 때문이죠.

GraphDB를 사용하지 말아야 하는 경우

모든 데이터베이스들이 그렇듯, 강점이 있으면 약점도 있습니다. GraphDB에서 피해야 하는 작업은 대규모 집합지향 쿼리, 글로벌 그래프 작업, 간단한 집계 중심 질의입니다.

어려 항목을 확인하는데 있어 많은 조인과 집계 연산이 필요하지 않고 단순히 데이터를 취합하는데 사용한다면 관계형 데이터베이스보다 나은 성능을 제공한다고 할 수는 없습니다.

GraphDB는 로컬 그래프를 처리하는데 있어서는 뛰어나지만, 노드 클러스터를 찾고, 노드 사이의 알려지지 않은 관계 패턴을 발견하고 그래프 구성요소의 중심 및 구역 사이를 정의하는 작업, 다시 말해 그래프 전체를 보는 글로벌 그래프 작업에는 성능적으로 많은 자원과 시간을 소모합니다.

앞서 말했듯 GraphDB는 복잡한 연산에 최적화 되어 있는데, 반대로 복합성이 낮은 단순한 구조의 간단한 질의들이 GraphDB에서는 상당히 비효율적으로 처리됩니다.

이렇듯 단점도 있으니 무조건 성능이 잘나오더라가 아닌 어떤 시스템을 구축하느냐가 가장 중요합니다.

GraphDB를 간단히 알아보았고, 정확히 어떻게 동작하고, 어떻게 노드간 관계가 정의되고 하는지는 Neo4j나 다른 GraphDB의 아키텍처를 더 뜯어 봐야 할것 같습니다. 지금은 MongoDB에 집중하고 있기도 해서 언제 여유가 되고 기회가 된다면 공부해보면 재밌을것 같습니다. 기말 공부가 끝나면 MongoDB에 대한 포스팅을 마저하고, MongoDB DBA 자격시험을 좀 준비 해야겠네요.

참고 자료

도서: Neo4j로 시작하는 그래프 데이터베이스 2/e

Graph DB 와 RDBMS 트랜드 3부- 그래프 데이터베이스의 종류와 활용

728×90

반응형

Graph DB 와 RDBMS 트랜드 3부- 그래프 데이터베이스의 종류

그래프 데이터베이스의 특징

그래프 데이터베이스의 종류

1. Apache AGE

2. Amazon Neptune

3. 카카오 Apache S2Graph

4. ArangoDB

5. Bitnine

6. Couchbase

7. Starcounter

Apache AGE

AGE는 PostgreSQL에 구축 된 그래프 및 관계형 모델을 지원하는 다중 모델 데이터베이스입니다. PostgreSQL의 확장 기능인 AGE를 통해 사용자는 최소한의 노력으로 기존 관계형 데이터베이스 위에 그래프 데이터베이스를 활용할 수 있습니다. 관계형 및 그래프 모델 데이터를 모두 처리 할 수있는 단일 저장소를 생성하여 사용자가 Graph 쿼리 언어 인 openCypher (http://www.opencypher.org)와 함께 표준 ANSI SQL을 사용할 수 있도록하는 것입니다.

Amazon Neptune

Amazon Neptune는 수십억 개의 관계를 저장하고 밀리 초의 지연 시간으로 그래프를 쿼리하는데 최적화된 특별한 용도의 고성능 그래프 데이터베이스 엔진입니다. Neptune은 널리 사용되는 그래프 모델 속성 그래프와 W3C (Worldwide Web Consortium)의 RDF(Resource Description Framework)를 지원할 뿐만 아니라 고도로 연결된 데이터세트의 효율적 탐색을 돕는 쿼리를 작성할 수 있도록 각각의 쿼리 언어인 Apache TinkerPop Gremlin과 SPARQL도 지원합니다.

카카오의 Apache S2Graph !

S2Graph는 그래프 데이터 저장소와 그래프 API 서버입니다.

Storage-as-a-Service + Graph API = Realtime Breadth First Search

<카카오 S2Graph>

$ git clone https://github.com/kakao/s2graph.git

기타 다중 모델 데이터 베이스

IDC Innovators : Multimodel Database Management, 2020 보고서 (IDC # US44814519)는 획기적인 다중 모델 데이터베이스 관리 시스템 기술을 제공하는 4 개의 회사를 소개합니다.

ArangoDB 는 문서, 그래프 또는 키-값 데이터베이스처럼 구성하고 액세스 할 수있는 유연한 내부 구조를 사용합니다. 모든 데이터 모델을 결합 할 수 있으며 전체 텍스트 검색과 함께 수평 확장 성을 제공합니다.

는 문서, 그래프 또는 키-값 데이터베이스처럼 구성하고 액세스 할 수있는 유연한 내부 구조를 사용합니다. 모든 데이터 모델을 결합 할 수 있으며 전체 텍스트 검색과 함께 수평 확장 성을 제공합니다. Bitnine 은 사용자가 관계형 기술을 사용하여 데이터에 액세스 할 수있는 그래프 DBMS를 제공합니다. 그래프로로드 된 구조는 관계형 테이블로 볼 수 있으며 스키마 검색도 가능합니다.

은 사용자가 관계형 기술을 사용하여 데이터에 액세스 할 수있는 그래프 DBMS를 제공합니다. 그래프로로드 된 구조는 관계형 테이블로 볼 수 있으며 스키마 검색도 가능합니다. Couchbase 는 사용자가 문서 유형에 대한 스키마를 정의 할 수있는 문서 DBMS로, 데이터 액세스를 최적화하고 SQL 쿼리에 대한 풍부한 지원을 제공하는 데 사용됩니다.

는 사용자가 문서 유형에 대한 스키마를 정의 할 수있는 문서 DBMS로, 데이터 액세스를 최적화하고 SQL 쿼리에 대한 풍부한 지원을 제공하는 데 사용됩니다. Starcounter 는 모든 객체 지향 응용 프로그램에 바인딩 할 수있는 완전한 인 메모리 DBMS입니다. 일반 OODBMS와 달리 전체 SQL 쿼리에 데이터를 구성하고 사용할 수 있습니다.

그래프 DB 활용 사례

1) 지식 그래프 / 소셜그래프

지식 그래프를 사용하면 정보를 그래프 모델에 저장하고 그래프 쿼리를 사용해 사용자가 상호연결성이 높은 데이터 세트를 손쉽게 탐색하도록 지원할 수 있습니다.

지식 그래프를 사용하여 제품 카탈로그에 주제별 정보를 추가하거나, 복잡한 법규 모델을 빌드하고 쿼리하거나, Wikidata 같은 일반 정보를 모델링할 수 있습니다.

지식 그래프는 조직의 정보 자산을 통합 및 통합하여 조직의 모든 구성원이 더 쉽게 사용할 수 있도록합니다. 서로 다른 데이터 소스의 정보를 연결하고 액세스하여 아직 생각하지 못했던 질문에 답할 수 있습니다. 정보와 엔티티는 구조화 된 소스 (예 : 관계형 데이터베이스)뿐만 아니라 반 구조화 된 소스 (예 : 미디어 메타 데이터, 스프레드 시트) 및 구조화되지 않은 소스 (예 : 텍스트 문서, 이메일, 뉴스 기사)에서도 추출 할 수 있습니다.

RDF ( Resource Description Framework ) 그래프, SPARQL 쿼리 언어 및 웹 온톨로지 언어 사양입니다. (OWL) 지식이 분산 된 방식으로 구조화되고 관리 될 수있는 방법에 대한 비전 인 시맨틱 웹 (Semantic Web )으로 알려진 것을 집합 적으로 구성합니다 . 2000 년대 초 시맨틱 웹에 대한 작업은 현대 지식 그래프의 토대를 마련했습니다. W3C (World Wide Web Consortium)는 그래프를 표현하고 쿼리하고 그래프 스키마를 구축하기위한 일련의 기술 사양을 만들었습니다.RDF () 그래프,(OWL)지식이 분산 된 방식으로 구조화되고 관리 될 수있는 방법에 대한 비전 인)으로 알려진 것을 집합 적으로 구성합니다2000 년대 초 시맨틱 웹에 대한 작업은 현대 지식 그래프의 토대를 마련했습니다.

2) 자격 증명 그래프

자격 증명 그래프를 구축해 디바이스 및 소셜 그래프, 개인화 및 권장 사항, 패턴 탐지 등 각종 자격 증명 확인 솔루션에 활용할 수 있습니다. 자격 증명 그래프에 그래프 식별자를 서로 연결하고 프로필을 손쉽게 업데이트할 수 있으며, 업데이트 속도가 빨라지고 최신 프로필 데이터를 확보하여 타게팅, 개인화, 분석 및 광고 속성 등에 활용할 수 있습니다.

3) 사기 탐지 / 추천 엔진

그래프의 관계를 사용해 거의 실시간으로 금융 및 구매 트랜잭션을 처리하여 부정 패턴을 손쉽게 탐지할 수 있습니다. 그리고 고객 관심사, 친구, 구매 이력과 같은 정보 간 관계를 그래프로 저장하고 신속하게 쿼리하여 개인화되고 연관성이 높은 추천을 제공할 수 있습니다.

그래프 쿼리를 실행해 잠재적 구매자가 알려진 부정 사례에서와 같은 이메일 주소와 신용 카드를 사용하고 있음을 탐지하는 완전관리형 서비스를 제공합니다. 소매 부정 탐지 애플리케이션을 구축하고 있다면, 그래프 쿼리를 구축하여 한 명의 개인 이메일 주소에 여러 사람이 연결되어 있다거나 여러 사람이 같은 IP 주소를 공유하지만 서로 다른 물리적 주소에 거주하는 등의 관계 패턴을 손쉽게 탐지할 수 있습니다.

4) 생명 과학 분야

생명 과학 정보를 저장 및 탐색하고 저장 중 암호화를 사용해 민감한 데이터를 간편하게 처리하는 애플리케이션을 구축할 수 있습니다. 예를 들어 Neptune을 사용해 질병과 유전자 상호 작용 모델을 저장하고 단백질 경로 내 그래프 패턴을 검색하여 질병과 연관이 있을 수 있는 다른 유전자를 찾을 수 있습니다. 화합물을 그래프로 모델링하고 분자 구조에서 패턴을 쿼리할 수 있습니다

[Graph DB 와 RDBMS 트랜드 1부- DBMS의 역사와 이론들

[Graph DB 와 RDBMS 트랜드 2부- 그래프 데이터베이스의 개념]

728×90

반응형

01-1 그래픽 데이터베이스란 ?

그래픽 데이터베이스를 설명하기 위해서는 기존의 관계형 데이터베이스와의 차이를 살펴볼 필요가 있다. 관계형 데이터베이스는 SQL이라는 쿼리를 사용하며 데이터는 테이블에 저장된다. 테이블은 레코드와 컬럼으로 구성되고 테이블내의 외래키(Forlgn Key)는 두 엔티티 사이의 관계를 표현하는데 사용된다. 회원관리를 생각해보자. 회원 테이블은 회원가입, 로그인, 데이터수정, 삭제 기능이 있고 게시판 테이블은 게시물 작성, 수정, 삭제, 목록보기, 페이지번호 만들기 기능이 있다. 회원정보와 관련된 정보를 보려면 2개의 테이블의 관계를 명시적으로 기술해야 한다. 관계형 데이터베이스에서는 일대일, 일대다, 다대다와 같은 관계를 통해 이를 수행한다.

관리하는 업무가 작다면 테이블의 수가 적어서 이 방법이 실용적이다. 하지만 최근에 빅데이터를 다루는 업계에서는 수백만, 수십억개의 관계를 다룬다면 전통적인 RDBMS 방식의 쿼리로는 효과적으로 확장되지 않는다. 데이터의 관계의 의미를 파악하려고 한다면 다른 종류의 데이터베이스인 즉, 그래프 데이터베이스가 효과적으로 활용될 수 있다.

그래픽 모델은 노드(Node)들과 관계(Relationship)들로 구성된 개념이다. 노드는 프로퍼티(키-값 쌍)를 가지고 있으며 노드는 하나 이상의 레이블을 가질 수 있다. 구체적인 내용은 다음장에서 설명하도록 한다.

그래프는 무엇인가?

하나의 그래프는 노드와 관계로 구성되어 있다. 각 노드는 개체(개인, 장소, 사물, 범주 또는 기타 데이터)를 나타낸다. Neo4j를 사용하면 노드에 대한 유형을 정의하는 데 사용되는 라벨을 노드에 가질 수 있다. 예를 들어 위치 노드는 위치 레이블이 있는 노드다. 같은 노드에도 레지던스라는 라벨이 붙을 수 있다. 또 다른 위치 노드는 비즈니스라는 레이블을 가질 수 있다. 라벨은 동일한 유형의 노드를 그룹화하는 데 사용할 수 있다. 예를 들어 모든 비즈니스 노드를 검색하십시오.

각 관계는 두 개의 노드가 어떻게 연결되어 있는지를 나타낸다. 예를 들어, 두 노드 사용자와 위치는 LIVES_AT 관계를 가질 수 있다. 사용자 노드에서 위치 노드로 LIVE_AT 지정 관계는 두 실체 사이의 동사 또는 행동을 나타낸다. MARRIED 관계는 한 사용자 노드에서 다른 사용자 노드로 정의된다. 비록 그 관계가 방향성으로 정의되지만, 그것은 비방향적인 방법으로 쿼리될 수 있다. 즉, 두 개의 사용자 노드가 관계의 방향에 관계없이 MARRIED 관계를 가지고 있는지 쿼리할 수 있다. 일부 데이터 모델의 경우, 관계의 방향이 중요하다. 예를 들어, 페이스북에서, 어떤 사람이 다른 사람을 친구로 초대했는지를 나타내기 위해 KNOWS 관계를 사용하는 것이 사용된다.

이 범용 구조는 도로 시스템, 장치 네트워크, 인구의 의료 이력 또는 관계에 의해 정의된 모든 종류의 시나리오를 모델링할 수 있게 해준다. Neo4j 데이터베이스는 속성 그래프 입니다. 노드와 관계에 속성을 추가하여 그래프 모델을 더욱 풍부하게 만들 수 있다.

이를 통해 그래프의 데이터와 연결을 실제 애플리케이션과 밀접하게 정렬할 수 있다. 예를 들어, 사용자 노드는 속성, 이름을 위치 노드는 속성, 주소를 가질 수 있다. 게다가, MARRIED라는 관계는 그 이후로 재산을 가질 수도 있다.

다음 비디오 에서는 노드와 관계를 포함하는 속성 그래프를 모델링하는 방법과 Cypher가 그래프 데이터베이스에 액세스하는 데 사용되는 방법에 대해 배울수 있습니다.

그래프에 대한 관계 모델링

많은 애플리케이션의 데이터는 관계형 데이터로 모델링된다. 관계형 모델과 그래프 모델 사이에는 몇 가지 유사점이 있다.

RDBMS 그래픽 DB 테이블 레이블(Lable) 행(row) 노드(node) 열(column)과 data 속성과 값 조인(join) 순회(Traversal)

그러나 관계형 모델이 그래프 모델과 다른 몇 가지 방법이 있다.

Relation Graph 각 열에는 필드 값이 있어야 한다 동일한 레이블을 가진 노드는 동일한 속성 집합을 가질 필요가 없다. Join은 질의할떄 계산된다. 관계는 생성될 때 디스크에 저장된다 노드는 많은 라벨을 가질 수 있다 노드는 많은 라벨을 가질 수 있다.

Run-time behavior : RDBMS vs graph

데이터 검색 방법은 RDBMS와 그래프 데이터베이스 간에 매우 다르다.

How we model : RDBMS vs graph

어떻게 관계 정의를 RDBMS와 Graph는 하는가 ?

Relation Graph 스키마를 정의한 후 최소로 변경함 스키마는 애플리케이션과 함께 진화함 모델링할 때 추상화, 객체보다는 클래스에 초점 모델링할 때 실제 데이터 항목을 사용함

만약 우리가 관계형 데이터베이스와 그래프 데이터베이스에서 축구 이적 그래프를 모델링하고 있다면, 이 도표는 일반적인 접근방식이 어떻게 보일지 보여준다.

관계 모델:

그래프 모델 :

그래프 모델을 사용하여 실제 값을 사용하여 예를 스케치하고 모델링 프로세스를 수행하는 동안 ‘스키마’를 도출할 수 있다.

Neo4j가 속성 그래프 모델을 지원하는 방법 Neo4j는 데이터베이스로, 정보를 안정적으로 저장하고 나중에 찾을 때 사용한다. Neo4j의 데이터 모델은 그래프이며, 특히 속성 그래프이다. Cyper는 Neo4j의 그래프 쿼리 언어(그래프의 SQL!)이다. Cyper는 선언적인 질의어다. 그것은 그것이 어떻게 습득되는지가 아니라 당신이 무엇에 관심이 있는지를 묘사한다. * Cyper는 매우 읽기 쉽고 표현력이 풍부하도록 되어 있다.

출처 : Introduction to Graph Databases 참고사이트

그래프 DB를 선택할 때 고려해야 할 10 가지 사항

글로벌 그래프 DB 시장에는 수많은 그래프 DB 공급 업체들이 존재하지만, 실제 활용을 위한 그래프 DB를 선택하는 것은 쉽지 않습니다. 요구사항에 따라 여러 DB 제품들이 있기에 충분히 검토해보고 결정해야 할 것입니다.

본 글은 그래프 DB를 선택할 때 기본적으로 고려해야 할 10가지 사항들에 대해 소개하고자 합니다. 후보군을 놓고 아래 사항들에 대해 고려해 본다면, 가장 최선의 선택을 할 수 있을 것입니다.

1. Native Graph Storage

네이티브 그래프 스토리지는 그래프 데이터베이스의 무결성과 성능을 상징하는 근본적인 요소입니다. 네이티브 그래프 스토리지는 그래프 노드를 연결하는 실제 관계가 기본 영구 데이터 요소로 저장되도록 합니다.

네이티브 그래프 스토리지가 아닌 그래프 기능을 모방한 논 네이티브(non-native) 그래프 스토리지는 관계 정보 손실, 연결 해제 또는 운영 중단될 수 있어 데이터베이스의 중앙 탐색 시스템에 오류가 나타나고 데이터 커럽션(data corruption)을 일으킬 수 있습니다. 보통 이러한 DB들은 NoSQL 계열(예: 열 또는 문서) DB에 그래프 기능을 추가한 경우이며, 이러한 코드 계층은 쿼리 및 애플리케이션 성능을 저하시킵니다. 그래프 기능을 모방하기 위한 모든 노력에도 불구하고 네이티브가 아닌 그래프 DB는 필요한 결과를 생성하기 위해 복잡한 쿼리와 조인이 요구됩니다.

네이티브 그래프 스토리지의 또 다른 장점은 index-free adjacency가 있습니다. 이는 ‘인덱스에서 자유로운 인접’을 의미하며, 인덱스 없이도 빠르게 연결된 노드를 탐색할 수 있어 빠른 검색이 가능하다는 것입니다. 대조적으로 네이티브가 아닌 DB의 그래프 접근 방식은 그래프 애플리케이션의 성능, 확장성 및 안정성을 저하시킬 수 있습니다.

그래프 DB가 네이티브냐 아니냐의 여부는 일반적으로 자체적인 그래프 스토리지의 보유 여부와 처리 과정에 따라 분류됩니다. 비트나인의 아젠스그래프는 노드 및 엣지로 이루어진 그래프 데이터를 그래프 스토리지에 저장하고, 그래프 쿼리 언어인 Cypher로 처리(graph processing)하는 ‘네이티브 그래프 DB’입니다.

2. Property Graphs

프로퍼티 그래프는 그래프 데이터베이스의 기능을 강화시킵니다. 프로퍼티 그래프의 데이터 요소와 관계(노드와의 연결)는 주요 데이터 요소로 취급됩니다. 프로퍼티 그래프는 데이터를 모델링할 때, 연결된 데이터에 의미를 부여해 줍니다. 누가 누구인지, 무엇을 좋아하는지, 어디에서 쇼핑하는지, 누가 어떤 재료를 공급하는지, 어떤 부품이 어떤 제품에 사용되는지 등을 모두 따로 연결해놓지 않고도 알 수 있습니다.

프로퍼티 그래프는 데이터를 원형 그대로 저장하기에 고효율 실현이 가능하기 때문에 대부분의 글로벌 그래프 DB에서 사용되는 표준 모델입니다.

프로퍼티 그래프 데이터 모델 간단 예시

아젠스그래프는 새로운 데이터 모델을 쉽게 만들고 비즈니스 요구 사항에 따라 조정할 수 있는 유연한 네이티브 프로퍼티 그래프를 제공합니다. 타 그래프 DB 공급업체 중 Resource Description Framework(RDF) 형식을 채택한 곳도 있는데, 이 형식은 프로퍼티 그래프와 달리 스키마리스(schema-less)가 아니기 때문에 종종 스키마를 고쳐 써야 하고, 복잡한 쿼리 및 코딩, 그리고 사소한 변경에도 긴 개발 주기가 필요합니다. 노드의 depth가 깊어질수록 탐색 성능이 저하되기 때문에 비즈니스 및 빅데이터 분석 용도로서는 적합하지 않을 수 있습니다. 따라서 불필요한 단점을 피하고 싶다면 네이티브 프로퍼티 그래프를 선택하는 것을 권장합니다.

3. Graph Query Languages

세계에 여러 나라가 있듯이, DBMS 시장에는 여러 그래프 DB가 있고, 취급하는 쿼리 언어도 다양합니다. 그래프 DB 중에 Neo4j가 개발한 Cypher가 표준어이고 그 외 Apache Tinkerpop이 개발한 Gremlin이 있습니다. 이 중에서 ISO 커뮤니티에서는 Cypher 기반 표준 언어를 SQL의 형제 언어로 인식하기 위한 노력이 이루어지고 있습니다.

SQL 및 Cypher와 같은 선언적 언어는 Java와 같은 명령형 언어와 달리 배우고, 쓰고, 읽고, 디버깅하기 쉽습니다. 또한 개발자는 데이터베이스로부터 검색 대상을 추출할 수 있기에 사용하기 더 편리합니다.

일부 쿼리 언어는 실행 전에 바이너리 패키지로 컴파일해야 합니다. 컴파일은 성능을 최적화시킬 수 있지만 쿼리 작성, 빌드 및 실행을 더 복잡하게 만들고 쿼리를 즉시 디버그하고 변경할 수 있는 기능을 제외시킬 수 있습니다.

비트나인의 아젠스그래프는 PostgreSQL 기반의 멀티모델 데이터베이스이기 때문에 SQL과 Cypher 쿼리 언어를 모두 사용할 수 있습니다. 자체 개발한 그래프 쿼리 언어만 받아들이는 타 그래프 DB 대비되는 장점이죠. 또한, SQL에서 Cypher를 subquery로, 또는 Cypher에서 SQL을 subquery로 사용할 수 있는 하이브리드 쿼리도 구현 가능하다는 것이 아젠스그래프의 독보적인 장점입니다.

세계유일 하이브리드 쿼리: SQL과 Cypher 동시 처리가능

4. Data Migration

데이터 마이그레이션이란 서로 다른 데이터 성질에 대해서 전처리를 거치는 과정입니다. 기존 관계형 데이터 관리 시스템을 운영하던 데이터를 그래프 데이터로 분석하려면 데이터를 그래프 DB로 옮겨야 할 것입니다.

데이터 마이그레이션에서 돋보이는 멀티모델의 장점

기본적인 그래프 DB는 관계형 DB와 성질이 달라 DB 간 데이터 연동이 불가하여 그래프화 시킬 데이터를 따로 추출하여 외부 프로그램으로 컨버팅 작업을 거쳐야 합니다. 하지만 아젠스그래프는 기존 DB를 그대로 활용하여 관계형 DB에서 원하는 데이터를 바로 그래프 시킬 수 있습니다.

5. Graph Visualization

그래프 DB의 핵심 장점 중 하나는 시각화 도구를 통해 그래프 데이터를 눈으로 직접 볼 수 있다는 점입니다. 시각화 도구를 통해 노드 및 관계 필터링이 가능하고, 유사한 패턴만 별도로 보거나, 속성 편집, 경로 강조 표시, 노드 사용자 지정과 같은 다양한 방법으로 그래프 데이터를 빠르게 탐색할 수 있습니다.

사용자는 그래프 시각화 도구를 통해 그래프 패턴의 숨겨진 의미를 파악할 줄 알아야 하고, 그래프 데이터 모델을 학습하여 분석 결과를 도출할 수 있어야 합니다.

비트나인의 아젠스 브라우저(AgensBrowser)는 아젠스그래프 라이선스를 보유한 사용자에게 제공되는 그래프 시각화 및 분석 도구입니다. 아젠스브라우저는 그래프의 시각화를 제공하며 Cypher 및 SQL을 통해 그래프 데이터를 질의하고 수정할 수 있습니다. 이는 시각화 도구일 뿐만 아니라 그래프 모델링, 데이터 저장 관리와 그래프 분석을 제공하는 수단으로도 사용됩니다.

비트나인의 또 다른 시각화 도구는 라이선스 소유권과 관계없이 그래프의 사용성을 확장하기 위해 개발된 AG 뷰어(Viewer)입니다. AG 뷰어는 그래프 데이터를 가져와 원하는 결과를 화면에 표시하기에 오로지 시각화 역할만 수행합니다.

AG Cloud Express에서 제공되는 AG뷰어

6. Graph Data Science

그래프 데이터 사이언스는 그래프 기술의 급격한 상승에 주된 역할을 맡고 있습니다. 모든 그래프 데이터의 기초가 되는 실제 관계 기반의 그래프 데이터 사이언스는 고도화된 그래프 분석 및 알고리즘과 AI/ML을 응용하여 기존 분석 및 통계 기반의 시스템이 놓친 비즈니스의 핵심 가치를 발견해냅니다.

그래프 군집 알고리즘: 연관성이 높은 노드들을 같은 집단(community)로 묶음

위 그림은 수많은 알고리즘 중 하나인 그래프 군집(Graph Clustering) 알고리즘을 보여주고 있습니다. 사용자는 비즈니스 통찰력을 얻기 위해 그래프 알고리즘으로 그래프 데이터의 패턴, 경로, 군집 및 유사성을 쉽게 식별하고, AI/ML 애플리케이션과 응용하여 분석의 질을 높일 수 있습니다. 올바른 그래프 DB 공급 업체들은 그래프 알고리즘의 전체 스펙트럼을 이해하고 제공해야 하며, 분석 활용에 대한 설명 또는 교육을 제공할 수 있는 전문 인력들을 갖춰야 합니다.

비트나인은 전문적인 지식을 갖춘 데이터 분석가들로 구성된 그래프 사이언스 R&D 센터를 보유하고 있습니다. 필요시, 데이터 분석에 대한 궁금증을 바로 해소할 수 있도록 전문 서비스를 지원하고 있습니다.

기업들이 그래프 데이터 사이언스를 통해 수익, 제품 개발 및 고객 만족도를 높이고 있는지, 더 빠르고 더 나은 예측 및 결정에 도달하기 위해 그래프 데이터베이스 기술에 투자하고 있는지도 살펴볼 수 있는 대목입니다.

7. HTAP (OLTP + OLAP)

기존 데이터베이스는 일반적으로 두 가지의 작업 처리 방식으로 나뉩니다.

OLTP(Online Transaction Processing)은 복수의 사용자 PC에서 발생하는 트랜잭션을 DB 서버가 처리하고, 그 결과를 요청한 사용자 PC에 결과값을 되돌려주는 과정입니다.

OLAP(Online Analytical Processing)은 데이터웨어하우스, 즉 DB에 저장된 데이터를 분석하고, 데이터 분석을 통해 사용자에게 유의미한 정보를 제공해주는 처리 방법을 의미합니다.

그래프 데이터베이스는 트랜잭션 및 분석 기능을 통합한 HTAP(Hybrid Transaction-Analytical Platforms)로 자주 사용됩니다. 이를 위해 그래프 플랫폼은 광범위한 활용 사례, 데이터 인터페이스, 배포 환경, 프로그래밍 언어 등을 지원해야 합니다.

그래프 플랫폼을 선택할 때 가장 중요한 것은 통합할 기술 및 응용 프로그램의 폭을 발견하는 것입니다. 더 중요한 것은 비즈니스를 운영하는 데 사용하는 애플리케이션과 얼마나 긴밀하게 통합할 수 있는지 알아야 합니다.

아젠스그래프는 트랜잭션 및 분석 애플리케이션이 통합된 HTAP이기에 기업의 비즈니스에서 매우 전략적으로 활용할 수 있습니다. 현재 업무의 효율적인 처리(OLTP)와 의사결정에 도움 되는 데이터 분석(OLAP)에 관심이 있다면 그 둘을 통합한 HTAP 방식이 해답이 될 것입니다.

8. ACID

그래프 데이터베이스의 특징은 연결된 데이터이며 실패 없는 트랜잭션을 보장해야 합니다. 데이터베이스 트랜잭션이 안전하게 수행되는 성질을 ACID라고 하는데, ACID는 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)을 가리키는 약어입니다.

트랜잭션 일부만 완료되고 다른 부분이 실패할 경우, 그래프 커럽션이 발생하여 그래프 엔티티가 존재하지 않거나, 관계가 불완전해지는 오류가 발생할 수 있습니다. 이 상태에서 그래프의 업데이트는 데이터 커럽션을 쉽게 확산시켜 데이터베이스를 사용할 수 없을 정도로 만들 수도 있습니다.

키-값 저장소를 기반으로 구축한 논 네이티브 그래프 DB는 높은 처리량을 수행하기 위해 단일 키 수준에서만 ACID를 지원하기 때문에 트랜잭션 오류가 자주 발생할 수 있습니다.

ACID를 지원하지 않는 데이터베이스는 불완전한 트랜잭션으로 인해 그래프에서 관계가 생략되거나, 관계가 존재하지 않게 될 수도 있습니다. 거의 그래프 DB의 목적을 잃는다고 볼 수도 있죠. 그래프가 손상되면서도 결과는 정상적으로 보일 수 있는데요, 만약 무의식적으로 잘못된 데이터를 기반으로 비즈니스 계획과 결정을 내리게 되면 치명적인 손실을 입을 수 있습니다.

물론 아젠스그래프는 100% ACID를 준수하여 그래프 커럽션을 방지하고 그래프 데이터의 무결성을 보존하여 신뢰할 수 있는 데이터에 따른 비즈니스 결정을 보장합니다.

9. Professional Service

아홉 번째는 그래프 DB라는 제품보다 이를 제공하는 업체에 대해 고려해야 할 사항입니다. 외산의 DB 제품을 도입할 경우에는, 교육 서비스, 커스터마이제이션 등의 유지 보수를 받기 어려울 수도 있습니다. 해당 국가의 개발자, 엔지니어들이 파견을 오기도 쉽지 않고, 지원에 대한 소통이 어려울 수도 있습니다. 따라서 국내의 로컬 업체를 찾는 것이 비교우위를 가질 수 있습니다.

비트나인은 국내 유일의 그래프 DB 연구 및 개발 기업으로, 필요시 컨설팅 및 분석 서비스를 지원합니다. 그래프 DB에 대한 교육이 필요할 경우, 엔지니어들이 쌓은 노하우와 경험들을 전수하기도 합니다. 그 외 DB 구축, 유지보수, 설치 등에 대한 그래프 관련 서비스도 지원합니다.

10. Data Continuity

기존의 데이터 관리 시스템(주로 관계형 DB)을 유지하면서 동시에 그래프 DB의 기능을 사용할 수 있다면, 기업으로서는 큰 이득이 될 것입니다. 로그성 데이터는 로그성 데이터대로, 분석이 필요한 데이터는 그래프 DB로 효율적인 데이터 운영이 가능하다면 굳이 100% 그래프 DB로 전환할 필요가 없게 되겠죠.

글로벌 시장에도 몇몇 멀티모델 그래프 데이터베이스 제품들이 있습니다. 그러나 대부분 키-값(Key-value stores), 문서(Document stores), 칼럼(Column stores) 등 다른 NoSQL과의 멀티모델 방식으로 개발된 것들입니다. 그래서 데이터 수집은 쉽게 가능하더라도 전처리 과정이 복잡하며, 반정형/비정형 데이터만 저장할 수 있습니다. 결국 분석 단계에서 정형 데이터만 저장하는 관계형 DB를 추가로 활용해야 하는데, 이를 연동하려면 외부 애플리케이션 및 도구를 활용해야 하는 불필요한 과정들이 발생합니다.

앞서 언급했듯 아젠스그래프의 멀티모델은 관계형 DB + 그래프 DB입니다. 분리된 저장 방식으로 인해 RDB와 GDB 중 환경에 맞는 스토리지에 데이터를 저장하여 분석 효율을 증가시킬 수 있습니다. 현재 싱글모델 그래프 DB나 NoSQL 기반 그래프 DB도 대중적으로 사용되고 있지만, 분석의 80%가 통계분석이라는 것을 감안할 때 RDB 영역을 활용할 수 있는 그래프 DB를 활용한다는 것은 데이터 분석 플랫폼에 있어 큰 강점이 될 것입니다.

가장 적합한 그래프 DB를 선택하세요!

본 글에 소개한 10가지 사항들을 잘 이해하셨나요? 그래프 DB를 선택할 때 고려해야 할 기술적인 사항들은 더 많겠지만, 핵심적인 장점들을 전해 비즈니스 애플리케이션에 활용하는 데 잘 참고되었으면 하는 바램입니다.

글로벌 유명 연구 기관들도 그래프 기술에 대해 기술적 미래 가치를 인정하고 있습니다. 가트너는 2019년부터 3년 연속으로 데이터 분석 트렌드의 핵심 기술 중 그래프 기술을 언급하고 있을 정도입니다. 많은 기술 분석가들이 향후 10년 동안 그래프 활용과 그래프 DBMS 적용이 매년 성장할 것을 예상했습니다. 그래프 기술이 입증된 것은 잘 알려진 사실이지만 많고 많은 그래프 DB 중 기업에 가장 적합한 솔루션을 찾는 것이 의미 있는 결정일 테죠.

비트나인의 아젠스그래프를 선택하면 다음과 같은 혜택을 받을 수 있습니다.

– 글로벌 1위 제품 대비 10배 이상의 빠른 속도의 쿼리 성능

– 유연성: 자주 변화하는 비즈니스 모델 및 데이터셋에 대한 신속한 대응

– 확장성: 복잡한 엔터프라이즈 환경에서의 애플리케이션 요구 충족

– ANSI-SQL과 openCypher 동시 지원

– 숙련된 엔지니어와 분석가로 구성된 국내 최고 그래프 전문가의 지원

비트나인의 그래프 기술은 네이티브 그래프 구조를 기반으로 상당한 ROI(Return of Investment)를 제공합니다. 국내 많은 기업들의 실제 활용 사례들로 입증된 그래프 DB는 엔터프라이즈 데이터를 활용하여 안전하고 효율적인 관리, 분석을 보장하고, 타의 추종을 불허하는 비즈니스 및 기술적인 이점을 제공합니다. 매일 새롭게 생성되는 데이터나 기존에 활용하던 데이터에 대한 의미를 파악하고 싶다면, 그래프 DB를 고려해 보시기를 바랍니다.

트렌디한 그래프 기술과 IT 소식을 뉴스레터로 받아보세요!

https://bitnine.net/ko/subscribe/

제품 및 기술문의

070-4800-3517 | [email protected]

[창간 36주년 특별기획] 데이터 분석의 패러다임 시프트, 그래프 DB

[아이티데일리] 국내 시장에서도 그래프 DB에 대한 관심이 점점 높아지고 있다. 그래프 DB는 데이터 간의 관계성을 명시적으로 저장해, 서로 복잡한 관계로 얽혀있는 데이터들 사이에서 숨어있는 인사이트를 찾아낼 수 있다. 특히 그동안의 데이터 관련 기술들이 분석에 필요한 업무를 줄이고 성능을 높이는 데에 주력했던 반면, 그래프 DB는 기존에는 불가능했던 복합적인 분석까지 가능하게 만든다는 점에서 분석의 패러다임을 바꿀 기술로 평가된다.

가장 촉망받는 NoSQL ‘그래프 DB’

‘데이터베이스(DB)’라고 하면 관계형 DB(Relational Database)를 의미하던 시대가 있었다. 컬럼(column)과 로우(row)로 구성된 테이블에 데이터를 저장하는 관계형 DB는 지금도 DB 시장의 대표주자다. 기업의 IT 환경이 확장되고 변화하면서 관계형 DB만으로 모든 업무를 처리할 수는 없게 됐지만, 그럼에도 불구하고 관계형 DB를 사용하지 않는 기업은 없다고 단언할 수 있다.

오늘날 관계형 DB의 대항마로 노SQL(NoSQL) DB가 부각되고 있다. 노SQL이라는 명칭은 관계형DB의 핵심 중 하나인 SQL을 부정하며 ‘SQL을 사용하지 않는다(No SQL)’, 혹은 ‘SQL만 사용하지는 않는다(Not only SQL)’는 의미에서 붙여졌다. 관계형 DB의 엄격한 스키마(schema) 구조와 정형화된 SQL을 사용하는 대신, 비교적 융통성 있는 모델을 사용해 데이터의 속성을 다양하게 정의하고 편리한 저장과 검색을 지원한다. 특히 관계형 DB가 단일한 서버의 수직(vertical) 확장에 특화돼 있다면, 노SQL DB는 다수의 서버로 늘려나가는 수평(horizontal) 확장이 가능해 많은 데이터를 분산 처리하는 데에 강하다는 특징이 있다.

그렇지만 노SQL DB가 관계형 DB의 대척점에 있거나, 관계형 DB를 대체하기 위해 나온 기술은 아니다. 노SQL DB들은 관계형 DB에서는 찾아볼 수 없는 기능들을 제공하기는 하지만, 그만큼 명확한 한계를 가지고 있기 때문이다. 예를 들어 대표적인 노SQL DB 중 하나인 키-값(key-value) DB는 데이터를 식별하는 ‘키’와 그에 해당하는 ‘값’으로 구성돼, 관계형 DB보다 훨씬 간편하고 빠른 데이터 검색이 가능하다. 하지만 복잡한 연산을 수행하는 능력이 부족해 사용할 수 있는 영역이 제한된다. 이에 따라 복잡한 연산이 필요하지 않으면서 빠른 읽기/쓰기가 필요한 경우에 한정적으로 사용되고 있다. 즉 노SQL DB와 관계형 DB는 서로 상호보완적으로 사용된다는 뜻이다.

그래프 DB는 노SQL 중에서 가장 인기있는 DB다. (출처: DB엔진닷컴)

현재 노SQL DB 진영에서 가장 뜨거운 관심을 받고 있는 것은 단연 그래프 DB(GraphDB)다. 아직 기술 자체가 미완성이기 때문에 도입 사례가 많지는 않으나, 그래프 DB가 가져올 수 있는 막대한 가능성에 대해 많은 이들이 관심을 보이고 있다. DB엔진닷컴(DB-engines.com)에 따르면 그래프 DB는 나머지 경쟁자들을 큰 격차로 따돌리면서 가장 인기있는 DB로 자리잡고 있다. 시장조사기관인 가트너는 오는 2025년까지 전 세계 기업의 80%가 그래프 DB를 활용할 것으로 예측했다.

데이터 간의 관계성에 주목…복잡한 문제 풀이에 유리

그래프 DB는 수학에서 사용되는 그래프 이론을 활용해 데이터를 저장하고 표현하는 DB다. 흔히 그래프 DB를 그림과 함께 설명하는 경우가 많아 시각화된(graphic) DB로 오해하기도 하지만, 저장한 데이터들의 구조를 보다 쉽게 이해하기 위해 시각적인 표현을 사용하는 것이지 그래프 DB 자체가 시각화된 DB를 의미하는 것은 아니다.

그래프 이론에서는 값들을 꼭짓점(vertex)과 변(edge)으로 저장하고 관계성을 정의하는 것처럼, 그래프 DB는 값(데이터)을 노드(node)와 에지(edge)로 저장한다. 하나의 데이터가 절대적인 값만을 가지고 있는 게 아니라, 다른 데이터들과의 관계성으로 인해 상대적인 값을 갖는다. 예를 들어 서울과 부산 사이에 있는 KTX 정차역들을 노드로 놓고, 각 역 사이의 이동시간을 에지로 저장한다고 하자. 이를 시각화하면 KTX 정차역들 사이의 이동시간을 직관적으로 파악할 수 있다. 서울이라는 데이터에는 ‘부산에서 KTX로 3시간 30분 떨어진 도시’라는 상대적인 값이 주어진다.

일반적인 그래프 DB 형태와 주요 특성 (출처: 엔코아)

물론 두 도시 간의 이동시간 정도는 그래프 DB가 아니어도 충분히 표현할 수 있다. 그래프 DB의 장점은 데이터의 양과 종류가 폭발적으로 늘었을 때 발휘된다. 다시 아까의 예시로 돌아가서 KTX 노선을 30개 정도로 늘려보자. 노선의 방향도 서울-부산 사이의 1개가 아니라 주요 도시들을 모두 연결할 수 있도록 동서남북으로 자유롭게 놓도록 하자. 이런 상황에서 A 도시를 출발해 B 도시까지 가장 빠르게 갈 수 있는 노선을 구하려면 어떻게 해야 할까?

기존의 데이터 저장 방법으로는 이러한 문제를 풀기 어렵다. A-B 사이를 연결하는 도시들 간의 이동 시간의 합을 구하기 위해 반복적으로 데이터 결합(join)을 시도해야 하기 때문이다. 반면 그래프 DB는 이러한 문제를 손쉽게 풀 수 있다. A 도시와 B 도시를 연결하는 수많은 노드와 에지 사이에서 가장 총합이 낮은 경로를 찾는다. 데이터 사이의 관계를 명시적으로 저장하고 있기 때문에 반복적인 결합을 실행할 필요가 없어 연산 시간이 크게 단축된다. 두 지점(도시) 사이를 가장 적은 값(시간)으로 이동하는 최단거리 문제는 수학적으로 그래프 이론을 사용하는 가장 대표적인 사례이기도 하다.

에지를 특정한 값이 아니라 변수로 놓는 것도 가능하다. 서울과 부산 사이의 거리처럼 변하지 않는 값을 입력할 수도 있지만, ‘서울의 인구가 100명 증가하면 부산의 인구가 50명 감소한다’처럼 양자의 상관관계를 표현할 수도 있다는 뜻이다. 이렇게 인구 증감과 같은 변수를 모든 노드에 확대 적용하면 특정 노드의 변화가 전체 도시들에게 어떤 영향을 미치는 지 직관적으로 파악할 수 있다.

한 걸음 더 나아가, 에지를 변수로 가지고 있는 테이블을 여러 개 만들어본다면 어떨까? 가령 ‘도시 사이의 인구 증감’ 테이블에 ‘평균 소득과 인구 증감의 관계’ 테이블을 연결하는 것이다. 후자에 ‘서울은 평균 소득이 100만 원 증가하면 인구가 100명 늘어난다’는 데이터가 갖춰져 있다면, ‘서울의 평균 소득이 100만 원 증가했을 때 부산의 인구가 50명 감소한다’는 결과까지 얻을 수 있다. 앞서 설명했던 최단거리 문제에도 다양한 테이블을 적용해볼 수 있다. ‘각 도시 사이의 이동시간’ 테이블에 ‘각 도시의 현재 날씨’와 ‘날씨와 이동시간의 상관관계’를 결합해보면, 날씨의 영향까지 고려해 서울에서 부산까지 가장 빠르게 갈 수 있는 방법을 찾을 수 있다.

라플라스의 악마

라플라스의 악마(Laplace’s Demon)는 프랑스의 수학자인 피에르시몽 라플라스(Pierre-Simon, marquis de Laplace)가 제시한 가상의 존재다. 라플라스의 악마는 ‘우주에 있는 모든 원자의 위치와 운동량을 알고 있다면, 과거‧현재‧미래의 모든 일들을 알 수 있다’는 생각에서 탄생했다. 실제로 이런 악마가 존재할 수는 없겠지만 하나의 사고실험으로써 많은 관심을 받았다.

만약 그래프 DB에 세상에 존재하는 모든 변수를 입력하면 라플라스의 악마가 될 수 있지 않을까? 현상 간의 인과관계와 영향을 정확히 알고 변수로 입력할 수 있다면 ‘나비가 북경에서 날개짓을 했다’는 현상에서 ‘뉴욕에 태풍이 일어난다’는 미래도 읽어낼 수 있을 것이다. 여기에서 중요한 점은 데이터들 사이의 인과관계를 통해 ‘미래를 읽어낼 수 있다’는 요소다.

기존의 데이터 분석은 과거의 데이터에서 통계적인 특징(pattern)을 찾아 미래를 예측한다. 어떤 시스템에서 수집된 데이터들이 XY 그래프에서 직선에 수렴하는 식으로 나타난다면, 앞으로도 해당 시스템에서는 해당 직선에 수렴하는 데이터들이 생성되리라고 예상하는 식이다. 통계적으로 사공이 많은 배가 산으로 가는 경우가 많았다면, ‘사공이 많으면 배가 산으로 간다’는 결론을 내리는 분석이다.

이러한 전통적인 분석에서 인과관계는 고려되지 않는다. 해당 시스템에서 수집된 데이터가 왜 직선으로 수렴하는지, 사공이 많으면 왜 배가 산으로 가는지는 알지 못해도 된다. 중요한 것은 결과적으로 데이터가 직선으로 수렴하고, 사공이 많으니 배가 산으로 갔다는 결과다. 최근 몇 년간 AI와 머신러닝이 데이터 분석 기술을 크게 성장시키기는 했지만, 결국 축적된 데이터의 통계에 기반하고 있다는 점에서 새로운 지평을 열지는 못했다. AI와 머신러닝 기술이 알고리즘 블랙박스라는 문제를 안고 있었음에도 사용될 수 있었던 것은 인과관계를 따지는 과정이 아니라 통계적인 결과를 이용하기 때문이다.

그래프 DB는 결과가 아니라 인과관계를 통해 미래를 예측한다는 점에서 차별화된다. 그래프 DB의 예측은 노드들을 연결하고 있는 에지, 즉 하나의 데이터가 다른 데이터에 미치는 영향을 순차적으로 따라가면서 이뤄진다. A라는 현상이 Z라는 결과를 만들어내기까지, A-B-C-D-…-Y-Z라는 인과관계를 차례대로 따라간다. 즉 ‘사공이 많다’는 현상에서 ‘배가 산으로 갈 것’이라는 미래를 읽어내기 위해 ‘사공이 많으면 각자 자기주장만 한다’, ‘자기주장만 하다보면 엉뚱한 결과로 이어진다’와 같은 인과관계를 따라간다는 것이다.

여기에서 중요한 차이는, 인과관계를 따지는 그래프 DB에서는 결과에 대한 통계적인 데이터가 필요하지 않다는 점이다. 즉 사공이 많을 경우 배가 산으로 간다는 통계가 축적돼 있지 않더라도, ‘사공이 많다’는 현상이 야기하는 인과관계가 제대로 정립돼 있다면 ‘배가 산으로 간다’는 결과를 예측해낼 수 있다. ‘나비의 날개짓’이 일으키는 현상을 따라가다 보면 ‘뉴욕의 태풍’이라는 전혀 예상할 수 없었던 미래를 알아내는 것도 가능하다. 그래프 DB에서 ‘라플라스의 악마’라는 가능성이 보이는 이유다.

그래프가 필요한 문제부터 찾아야

그래프 DB를 활용하기 전에 고려해야 할 것은 크게 두 가지다. 가장 먼저 그래프 DB를 사용할 필요가 있는지를 고민해야 한다. 대부분의 노SQL DB들이 그렇듯, 그래프 DB는 관계형 DB의 대체재가 아니다. 관계성이 중요하지 않은 문제에서는 기존의 관계형 DB를 사용하는 게 훨씬 유리하다. 가령 한 학급에서 시험 후 과목별 평균점수를 구하는 문제가 있다면, 여기에 굳이 그래프 DB를 활용할 필요는 없다.

그래프 DB를 사용해야 하는 문제는 변수가 많고 데이터 간의 관계성과 인과관계가 복잡한 문제들이다. 앞서 설명한 최단거리 문제의 사례로 차량 내비게이션을 들 수 있다. 현 위치에서 목적지까지 가기 위해서는 가장 먼저 도로 정보가 확보돼야 한다. 여기에 관계성이 높은 다양한 데이터들을 결합해 정확도를 높일 수 있다. 공사정보 레이어를 얹어 해당 경로를 피한다거나, 실시간 교통 혼잡도 레이어를 얹어 막히지 않는 길을 찾는 식이다. ‘A 경로가 공사 중이니 B 경로에 차량이 몰릴 것’처럼, 다양한 요소들의 관계를 복합적으로 분석하는 문제에 그래프 DB를 활용할 수 있다.

길 찾기, 혹은 최단거리 문제는 그래프로 풀 수 있는 대표적인 문제다.

또한 고려해야 할 것은 데이터 간의 인과관계를 정확히 파악하고 이를 변수로 설정하는 것이다. 변수가 제대로 설정되지 않는다면 정확한 분석이 이뤄질 수 없는 것은 당연하다. 정확한 변수를 설정하기 위해서는 해당 분야에 대한 치밀한 도메인 지식이 필요하다. 데이터들이 어떤 관계성을 가지고 있는 지는 축적된 데이터에 기반한 통계적 지식으로도 알아낼 수 있지만, 겉으로는 잘 드러나지 않는 관계성을 찾고 연결고리를 만들어보는 것은 도메인 지식과 경험에 의거한 직관이 있어야 한다. 긴 지문으로 구성된 수학 문제를 보고 스스로 수식을 세워 해답을 찾아가기 위해서는 유사한 문제들을 풀어보며 축적된 노하우가 필요한 것과 마찬가지다.

이화식 엔코아 대표 그래프 DB 활성화에 총력전 걸겠다

이화식 엔코아 대표

‘인간이 할 수 없는 일’을 한다 1988년 무렵에 ‘오라클 SQL+’라는 책을 구하게 됐다. 아직 오라클이 한국 지사를 세우기도 전, IBM의 정보관리시스템(IMS, Information Management System)로 대부분의 업무를 처리하던 시절이다. 그 책을 출퇴근하는 지하철에서 3일 동안 읽었다. 책을 읽는 동안 앞으로 세상은 반드시 관계형 DB로 간다, 여기에 뛰어들어야 한다고 생각했다. 그래프 DB를 처음 봤을 때, ‘오라클 SQL+’를 읽었을 때와 같은 충격을 받았다. 앞으로 그래프 DB는 관계형 DB가 그랬던 것만큼 IT를 크게 변화시킬 것이다. 그래서 지난 3년간 처음으로 돌아간 마음으로 그래프 DB에 대한 공부에 매진했다. 기존 IT 시스템들의 목표는 사람이 하는 일을 좀 더 편하게 도와주는 것이었다. 다르게 말하자면 ‘인간이 할 수 있는 단순한 일’을 대신해주는 것이다. 지금의 AI나 머신러닝도 마찬가지다. 그렇지만 앞으로 IT는 ‘인간이 할 수 없는 복잡한 일’에 도전해나갈 것이다. 사칙연산으로는 풀 수 없는, 쿼리 몇 줄로는 답이 나오지 않는 문제를 해결하기 위해 나아갈 것이라는 뜻이다. 이런 문제는 지금까지 봐왔던 단편적이고 스칼라(scalla)적인 연산이 아니라, 보다 복잡하고 다원화된 토폴로지(topology) 형태의 연산으로 풀어야 한다. 이는 기존의 관계형 DB로는 해결할 수 없다. 예시를 들어보자. 잔잔한 연못에 돌멩이를 던지면 둥근 파문이 퍼져나간다. 돌멩이를 하나 더 던지면 또 다른 파문이 일어나고, 먼저 생겼던 파문과 겹쳐 서로 영향을 주고받는다. 다섯 개의 돌멩이를 던지면 파문들이 서로 겹치면서 더욱 복잡한 결과를 만들어낸다. 통계에 기반한 지금까지의 분석으로는 돌멩이를 던지면 파문이 일어난다는 결과는 알 수 있지만, 파문들이 서로 겹치면서 만들어내는 모양까지는 예측해낼 수 없었다. 한 걸음 더 나아가서, 첫 번째 던졌던 돌멩이의 크기를 30% 키웠을 때 어떤 모양이 나올 것인가? 두 번째 돌멩이를 던지지 않는다면 어떤 변화가 생길 것인가? 이는 기존의 관계형 DB를 통한 분석으로는 풀 수 없는 문제다. 변수가 너무 많고 연관관계가 복잡하기 때문이다. 이러한 문제를 해결하기 위해서는 각 변수들이 가지고 있는 인과관계를 찾고 그들 간의 가중치(weight)를 찾아서 분석해야 한다. 첫 번째 돌멩이가 나머지 현상들에 어떤 영향을 미쳤는지를 정확히 파악하고 있다면 크기를 30% 키웠을 때 어떤 결과가 일어날 지를 예측할 수 있다. 이것이 그래프 DB가 하는 일이다. 많은 사람들이 그래프 DB에 대해 오해하고 있는 부분은, 그래프 DB가 기존에 있던 기능들을 대체하는 게임 체인저라고 생각하는 것이다. 내가 오라클 DB를 처음 봤을 때는 기존 DB들을 전부 밀어내는 게임 체인저라고 생각했지만, 그래프 DB는 그렇지 않다. 그래프 DB의 역할은 기존 기술들로는 거의 불가능한 분석들을 가능케 하는 것에 있다. 인간이 할 수 있는 일을 쉽고 편리하게 만드는 것이 아니라, 인간이 할 수 없었던 일을 가능케 하는 것 말이다. “경험과 기술, 네임밸류를 총 동원해 그래프 DB 활성화에 나서겠다.” 그래프 DB 활성화가 마지막 과업이다 하지만 그래프 DB는 좋은 제품을 골라 도입하면 해결되는 만능의 도구가 아니다. 관계형 DB를 사용하기 위해 SQL을 공부하듯 그래프 DB에 맞는 쿼리를 공부한다고 사용할 수 있는 기술이 아니라는 의미다. 데이터를 넣고 빼고 처리해야하니 쿼리를 공부하는 것은 당연하지만, 그건 전체의 20%에 불과하다. 나머지 80%는 네트워크 위상(topology)들을 처리할 수 있는 이론들을 공부해야 한다. 이러한 이론들은 굉장히 광범위하게 펼쳐져있고, 하나만 가지고도 논문을 쓸 수 있을 정도로 깊은 영역이다. 이러한 이론들을 실제 도메인 지식과 결합해서 나오는 브랜치(branch)들은 어마어마하게 많다. 오늘날 대학교에서 이런 이론에 대한 학습 기회를 제공하는 경우는 찾아보기 힘들다. 공부를 하겠다고 나서는 학생들도 드물고, 그나마 관심이 있는 학생들은 지식의 폭은 좁고 도메인 지식도 없으니 스스로 공부하는 것은 불가능하다. 최소한 국내에서 대기업이라고 불릴 정도의 규모와 인재를 갖추지 않으면 시작하기도 어렵다. 하지만 그들은 엉덩이가 무거워서 쉽게 움직이려 들지 않는다. 시간이 지난다고 자연스럽게 달라질 분야는 아니라고 본다. 이러한 상황에 변화의 모멘텀을 주는 게 나 같은 기존 플레이어들의 역할이다. 그래프 DB에 대한 관심을 제고하기 위해서는 두 가지를 모두 알고 있는 전문가가 나서야 한다. 이것으로 무엇을 할 수 있는지, 그리고 어떻게 해야 하는지를 제시할 수 있는 사람 말이다. 여기에 더해 새로운 기술을 활용할 수 있는 기업이 믿고 맡길 만한 신뢰가 갖춰져 있다면 더욱 좋다. 나는 지난 30년 간 현업에서 뛰면서 축적한 도메인 지식이 있으니 어떤 데이터로 무엇을 할 수 있는지를 제시할 수 있고, 이론과 기술에 대해 많은 공부를 하면서 어떻게 해야 하는지도 알게 됐다. 데이터 전문가들이 갖춰진 엔코아라는 조직도 갖추고 있다. 부끄럽지만 시장에서 이화식이라는 이름으로 신뢰도 제법 얻고 있다고 생각한다. 이렇게 그동안 쌓아온 경험과 기술, 조직과 네임밸류 등 모든 것들을 총동원해, 내년부터는 국내에 그래프 DB가 활성화될 수 있도록 직접 뛰어들고자 한다. 전국을 떠돌며 진기한 물건을 소개하는 보부상처럼, 실제 프로젝트들을 직접 진두지휘하면서 그래프 DB라는 물건이 무엇을 할 수 있는지를 보여주는 레퍼런스를 만들어나가겠다. 처음에는 사람들이 어려워하겠지만, 몇 가지 성공적인 레퍼런스를 접하고 나면 “이런 것도 되는구나”하는 가능성을 깨닫게 될 것이다. 처음 물꼬를 터주기만 하면 금방 큰 파도가 일어날 것이다. 스스로 참 운이 좋은 사람이라고 생각한다. 늘 타이밍 좋게 재미있는 것들을 만나 내가 할 수 있는 일들을 해왔기 때문이다. 아주 오래 전에 관계형 DB가 그랬고, 지금은 그래프 DB가 그렇다. 그렇기 때문에 더욱 사명감을 느낀다. 그냥 내버려둬서는 그래프 DB가 국내에서 활성화되는 날은 요원하다. 그동안 쌓아온 모든 것들을 그래프 DB에 쏟아서 세상 사람들이 잘 쓸 수 있도록 해주는 것이 내가 마지막으로 해야 할 일이라고 생각한다.

네오포제이 선두…한국 지사 설립한 타이거그래프도 주목

현재 그래프 DB 중에서 가장 앞서나가고 있는 것은 네오포제이(Neo4J)다. ‘포 제이’라는 이름에서 연상되듯 자바로 구현됐으며, 기본적으로 JVM(Java Virtual Machine) 위에서 작동하는 1세대 그래프 DB다. 상위권 그래프 DB들이 대부분 다양한 데이터 모델들을 지원하는 멀티모델(multi-model) DB인 반면, 네오포제이는 순수한 네이티브 그래프 DB를 표방하며 가장 많은 인기를 누리고 있다. 그래프 DB를 위한 전용 쿼리 언어인 사이퍼(Cypher)를 사용하며, 사이퍼 커뮤니티의 핵심 기여자 중 하나이기도 하다.

커뮤니티를 통해 오픈소스 라이선스로도 사용할 수 있지만, 동명의 회사를 통해 엔터프라이즈 버전을 이용하면 보다 강력한 서비스 지원을 받는 것도 가능하다. 다만 그래프 DB 자체가 워낙 빠르게 발전하고 있는 기술이기 때문에, 오픈소스 버전을 사용할 경우 업데이트 속도를 따라가기에 벅찰 수도 있다. 기존의 데이터들을 그래프 DB가 처리할 수 있도록 다양한 알고리즘이 마련돼 있는데, 이러한 알고리즘들이 하루가 다르게 추가‧변경‧삭제되기 때문에 주의가 요구된다. 물론 이는 네오포제이만의 문제는 아니며, 오픈소스 라이선스로 제공되는 모든 그래프 DB들이 유사한 어려움을 겪고 있다.

국내에 정식으로 지사를 설립해 서비스되는 제품으로는 타이거그래프(TigerGraph)가 있다. 최초에 스토리지 및 시각화 중심으로 개발된 1세대, 확장성에 중점을 뒀으나 복잡한 쿼리 수행에 어려움이 있었던 2세대에 이어, 수평적인 확장이 가능하면서도 쿼리 속도를 높여 기존 제품들의 문제를 해결한 3세대 제품으로 꼽힌다. 자바 대신 C++로 개발됐으며, 테라바이트 이상의 방대한 데이터 분석에서 특히 높은 성능을 발휘한다. 최소 5홉(hop) 이상의 관계로 엮인 데이터들을 실시간으로 분석할 수 있다. 기존 관계형 DB에서 사용하던 SQL과 유사한 GSQL을 제공해 접근성이 높은 것도 장점이다.

이외에도 국내 기업 비트나인이 서비스하는 아젠스그래프(AgensGraph)가 있다. 관계형 DB와 그래프 DB를 지원하는 멀티모델 DB로 개발됐으며, SQL과 사이퍼를 모두 처리할 수 있다. 지난해 4월에는 아파치재단의 오픈소스 프로젝트 아파치 에이지(Apache AGE)에 인큐베이팅되며 높은 가능성을 인정받았다. 그래프 DB에 대한 관심이 거의 없었던 국내 시장에서 선제적으로 제품을 개발해 공급해왔으며, 국내외에서 지속적으로 파일럿 프로젝트를 비롯한 실증 사례를 만들어온 만큼 향후 성장이 기대된다.

키워드에 대한 정보 그래프 db

다음은 Bing에서 그래프 db 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 GRAPH DB(그래프 DB)의 개념과 활용(1교시)

  • Graph DB
  • 그래프DB
  • 엔코아
  • 이화식
  • RDBMS

GRAPH #DB(그래프 #DB)의 #개념과 #활용(1교시)


YouTube에서 그래프 db 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 GRAPH DB(그래프 DB)의 개념과 활용(1교시) | 그래프 db, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  팜 투게더 | 고인물이 알려주는 팜 투게더 초보자 가이드 108 개의 자세한 답변

Leave a Comment