본문 바로가기

백엔드/그래프 DB

그래프 DB 개요

반응형

정의


- 그래프 DB란 그래프 생성 및 조작이라는 단일 용도로 특별히 설계된 플랫폼을 말합니다.

- 그래프는 노드, 간선, 속성으로 구성되어 있으며, 이 모든 요소를 활용하여 관계형 데이터베이스에서는 불가능한 방식으로 데이터를 표현하고 저장할 수 있습니다.

- 일반적으로 그래프 분석이라고도 불리며, 특히 데이터 포인트를 노드로, 관계를 간선으로 사용하여 데이터를 그래프 형식으로 분석하는 프로세스를 말합니다.

- 그래프 분석에는 전용 그래프 데이터베이스나 그래프를 포함한 여러 데이터 모델을 지원하는 컨버지드 데이터베이스와 같은 그래프 형식을 지원할 수 있는 데이터베이스가 필요합니다.

 

 

그래프 데이터베이스 유형


- 그래프 데이터베이스에는 속성 그래프와 RDF 그래프의 두 가지 주요 모델이 있습니다.

- 속성 그래프는 분석 및 쿼리에, RDF 그래프는 데이터 통합에 중점을 둡니다. 두 가지 유형 모두 포인트(정점)와 해당 포인트 사이의 연결선(간선)의 모음으로 구성됩니다.

 

 

 

속성 그래프


- 속성 그래프는 데이터 간의 관계를 모델링하는데 사용

- 이러한 관계를 기반으로 쿼리 및 데이터 분석 작업을 지원합니다.

- 속성 그래프에는 주제에 대한 자세한 정보 등을 포함하는 정점과 이러한 정점 간의 관계를 나타내는 간선이 있습니다.

- 정점과 간선은 속성(properties)이라고 하는 요소(attributes)를 가질 수 있으며, 이를 사용하여 연결될 수 있습니다.

- 아래는 동료 및 이들의 관계 집합이 속성 그래프로 표시된 예시이다.

 

RDF 그래프


- RDF(Resource Description Framework, 자원 기술 프레임워크) 그래프는 명령문을 표현하도록 설계된 W3C(Worldwide Web Consortium, 월드 와이드 웹 컨소시엄)의 표준을 따르며, 복잡한 메타 데이터 및 마스터 데이터를 표현하는데 최적의 도구입니다.

- RDF 그래프는 연결된 데이터, 데이터 통합 및 지식 그래프에 자주 사용되며, 도메인 내에서 복잡한 개념을 나타낼 수 있을 뿐 아니라 데이터와 관련하여 풍부한 의미 체계 및 추론도 제공할 수 있습니다.

- RDF 모델에서 명령문은 2개의 정점(RDF 트리플)과 이를 연결하는 문장의 주어, 서술어, 목적어를 반영하는 1개의 간선이라는 세 가지 요소로 표현됩니다.

- 모든 정점과 간선은 URI 또는 고유한 리소스 식별자에 의해 식별됩니다.

- RDF 모델은 잘 정의된 의미 체계를 갖춘 표준 형식으로 데이터를 표현하기 때문에 원활한 정보 교환이 이루어질 수 있도록 해주며, 정부 통계 기관, 제약 회사, 의료 서비스 기관에서 RDF 그래프를 널리 사용하고 있습니다.

그래프와 그래프 데이터베이스의 원리


- 그래프 및 그래프 데이터베이스는 데이터의 관계를 표현하는 그래프 모델을 제공

- 사용자는 연결을 기반으로 '순회 쿼리'를 수행하고 그래프 알고리즘을 적용하여 패턴, 경로, 커뮤니티, 영향 요인, 단일 장애 지점 및 기타 관계를 찾을 수 있으므로 방대한 양의 데이터를 보다 효율적으로 분석할 수 있습니다.

- 그래프의 진가는 분석과 이를 통해 얻을 수 있는 통찰력, 서로 다른 데이터 소스를 연결할 수 있는 능력에 있습니다.

- 그래프를 분석할 때 알고리즘은 정점 사이의 경로와 거리, 정점의 중요도, 정점의 클러스터링 등을 탐색합니다. 예를 들어 중요도를 판단하기 위한 알고리즘은 진입 간선, 인접한 정점의 중요도와 기타 지표를 살펴 봅니다. 예를 들어 그래프 알고리즘은 소셜 네트워크나 비즈니스 프로세스에서 다른 사람과 가장 많이 접속한 개인 또는 항목을 식별할 수 있습니다.

- 알고리즘은 개인 또는 관련 트랜잭션에 접속하는 커뮤니티, 이상 징후, 공통 패턴, 경로를 식별할 수 있습니다.

- 그래프 데이터베이스는 관계를 명시적으로 저장하기 때문에 정점 간 연결을 활용하는 쿼리 및 알고리즘 실행에 소요되는 시간을 몇 시간이나 며칠에서 1초 이내로 단축할 수 있습니다.

그래프 데이터베이스의 장점


- 그래프를 사용하면 소셜 네트워크, IoT, 빅 데이터, 데이터웨어하우스에서 연결 및 패턴을 탐색하고 발견할 수 있으며, 은행에서의 이상 거래 감지, 소셜 네트워크에서의 연결 발견, Customer 360을 비롯한 다양한 비즈니스 사용 사례에 대한 복잡한 트랜잭션 데이터도 탐색할 수 있습니다.

- 그래프 데이터베이스는 일반적으로 PGQL(Property Graph Query Language, 속성 그래프 쿼리 언어)과 같은 언어로 쿼리를 실행합니다. 아래의 예시는 동일한 쿼리를 각각 PGQL과 SQL로 표현한 것입니다.

위의 예시에서 볼 수 있듯이 PGQL 코드는 더 간단하고 훨씬 더 효율적입니다.

 

- 그래프는 데이터 간의 관계를 강조하기 때문에 서로 다른 다양한 유형의 분석에 이상적입니다. 특히 그래프 데이터베이스는 다음과 같은 점에서 장점을 가집니다.

  • 2개의 노드 간 최단 경로 찾기
  • 가장 많은 작업 및 가장 큰 영향력을 생성하는 노드 파악
  • 네트워크의 최대 취약점을 식별하기 위해 연결 분석
  • 그룹 내 연결 거리/밀도를 기반으로 네트워크 또는 커뮤니티 상태 분석
  •  

그래프 데이터베이스와 그래프 분석의 원리


- 아래 그림은 그래프 데이터베이스의 간단한 실례로, 대중적인 파티 게임인 '케빈 베이컨의 6단계 법칙(Six Degrees of Kevin Bacon)'를 시각적으로 표현한 것입니다.

- 이 게임은 배우 케빈 베이컨과 같은 영화에 출연한 배우들이 몇 단계만에 연결되는지를 찾는 게임입니다. 

- 지금까지 만들어진 모든 영화와 그 영화에 출연한 모든 배우라는 두 가지 노드 범주로 구성된 데이터 세트가 있다고 상상해 보세요. 그런 다음 그래프를 사용하여 케빈 베이컨을 인형극 쇼의 아이콘인 미스 피기에 연결하라는 쿼리를 실행하면 다음과 같은 결과가 나옵니다.

이 예시에서 노드(정점)는 배우와 영화이고, 관계(간선)는 '출연'했다는 상태입니다. 여기에서 쿼리는 다음 결과를 반환합니다.

  • 케빈 베이컨은 '리버 와일드'에서 메릴 스트립과 함께 연기했다.
  • 메릴 스트립은 '레모니 스니켓의 위험한 대결'에서 빌리 코놀리와 함께 연기했다.
  • 빌리 코놀리는 '머펫의 보물섬'에서 미스 피기와 함께 연기했다.

그래프 데이터베이스는 이 케빈 베이컨 예시에 대해 다음과 같은 다양한 관계를 쿼리할 수 있습니다.

  • '케빈 베이컨과 미스 피기를 잇는 가장 짧은 연결고리는 무엇인가?'(위의 6단계 법칙 게임에서 사용된 최단 경로 분석)
  • '가장 많은 배우와 일한 사람은 누구인가?'(연결 중심성)
  • '케빈 베이컨과 다른 모든 배우 사이의 평균 거리는 얼마인가?(근접 중심성)

 

 

그래프 데이터베이스 활용 사례: 자금 세탁


- 자금 세탁의 원리는 간단합니다. 떳떳하지 못한 재산을 이리저리 옮겨 합법적인 자금과 섞은 후 실물 자산으로 둔갑시키는 것입니다. 파나마 페이퍼스 분석에 사용된 프로세스와 동일합니다.

- 더 구체적으로 말하면, 순환 이체는 범죄자가 부정하게 얻은 대량의 자금을 자기 자신에게 보내는 것으로, 길고 복잡한 과정을 통해 '정상적인' 계좌로 돈을 옮기며 적법한 이체처럼 보이도록 함으로써 돈의 출처를 숨기는 방법입니다. 여기서 '정상적인' 계정이란 사실은 위조된 신원 정보를 사용하여 생성한 계정을 말합니다. 이러한 계정은 일반적으로 도난당한 개인 정보(이메일 주소, 주소 등)을 사용하여 생성되기 때문에 공통의 유사한 정보를 포함하고 있다는 특징이 있기 때문에 그래프 분석을 통해 이러한 정보를 분석하면 사기 행위의 출처를 밝힐 수 있습니다.

- 이메일 주소, 비밀번호, 주소 등을 포함한 정보를 공유하는 엔티티뿐만 아니라 엔티티 간의 거래 정보를 활용하여 그래프를 만들면 보다 쉽게 부정 거래 탐지 작업 수행할 수 있습니다. 그래프가 만들어지면 간단한 쿼리를 실행하여 유사한 정보를 가진 계정을 가진 고객을 모두 찾아 돈이 오가는 계정을 찾아낼 수 있습니다.

그래프 데이터베이스 활용 사례: 소셜 미디어 분석


- 그래프 데이터베이스는 다양한 시나리오에서 사용할 수 있지만 일반적으로 소셜 네트워크를 분석하는 데 사용됩니다. 실제로 소셜 네트워크는 많은 양의 노드(사용자 계정)와 다차원 연결(다양한 방향의 참여)을 수반하기므로 이상적인 활용 사례입니다. 소셜 네트워크에 대한 그래프 분석을 통해 다음과 같은 사항을 파악할 수 있습니다.

  • 사용자들이 얼마나 활동적인가?(노드의 수)
  • 가장 영향력이 있는 사용자는 누구인가?(연결의 밀도)
  • 양방향 참여도가 가장 높은 사용자는 누구인가?(연결의 방향과 밀도)

 

 

- 하지만 봇에 의해 부자연스럽게 왜곡된 정보는 쓸모가 없는데, 다행히 그래프 분석은 봇을 식별하고 필터링하는 훌륭한 수단을 제공할 수 있습니다.

 

- 아래의 이미지는 본래 인기 있는 계정의 모습입니다.

- 그리고 아래의 이미지는 봇 기반 계정의 동작을 보여줍니다.

여기서 핵심은 그래프 분석의 강점을 활용하여 자연스러운 패턴과 봇 패턴을 식별하는 것입니다.

 

그래프 데이터베이스 활용 사례: 신용카드 사기


- 그래프 데이터베이스는 금융 업계에서 사기를 감지할 수 있는 강력한 도구가 되었습니다.

- 카드 내장 칩과 같은 사기 방지 기술의 발전에도 불구하고 여전히 다양한 방식의 신용카드 사기가 발생할 수 있습니다. 아직 칩 리더기가 설치되지 않은 곳에서는 마그네틱 스트립에서 세부 정보를 훔치는 스키밍 장치 기술이 흔히 사용됩니다. 이렇게 저장된 세부 정보를 위조 카드에 심으면 물건을 구매하거나 현금을 인출할 수 있습니다.

- 패턴 식별은 사기 탐지의 첫 번째 방어선으로 많이 사용되는 수단입니다. 예상 구매 패턴은 위치, 빈도, 상점 유형, 사용자 프로필에 맞는 기타 항목에 기반합니다. 예를 들어 샌프란시스코 베이 지역에 거주하는 사람이 갑자기 밤늦은 시간에 플로리다에서 구매를 하는 것과 같이 무언가 완전히 변칙적으로 보이는 패턴이 발생하면 잠재적인 사기 행위로 플래그를 지정합니다.

- 이를 위해 필요한 컴퓨팅 성능은 그래프 분석을 통해 크게 단순화됩니다. 그래프 분석은 노드 간의 패턴을 밝히는데 있어 탁월한 능력을 보이는데, 이 경우 노드의 범주는 계정(카드 소지자), 구매 위치, 구매 범주, 거래 및 터미널로 정의됩니다. - - - 자연스러운 동작 패턴을 식별하는 것은 쉽습니다. 예를 들어 어떤 사람은 특정 달에 다음과 같은 행동을 할 수 있습니다.

  • 각기 다른 반려동물 상점(터미널)에서 사료(구매 카테고리) 구매
  • 특정 지역(구매 위치)에서 주말마다 외식 비용 지불(거래 메타데이터)
  • 지역 철물점(계정 위치, 구매 위치)에서 수리용 하드웨어(구매 카테고리) 구입

일반적으로 사기 행위 감지는 머신 러닝을 통해 처리되지만 그래프 분석은 이러한 노력을 보완하여 보다 정확하고 훨씬 효율적인 프로세스를 만들 수 있습니다. 관계에 초점을 맞춘 덕분에, 분석 결과는 데이터가 실제 사용되기 전에 큐레이션하고 준비하여 위법한 레코드를파악하고 플래그를 지정하는 데 있어 효과적인 예측 인자가 되었습니다.

 

반응형

'백엔드 > 그래프 DB' 카테고리의 다른 글

그래프 DB 선택 시 고려사항 - Data Migration  (0) 2022.10.24