Graph powered mahine learning - 2. Graph data engineering

김무성·2022년 4월 5일
0

Graph ML Study

목록 보기
2/2

Chapter 2.

  • 더 많은 양의 고품질 데이터에 대해 학습 알고리즘을 훈련하면 알고리즘 자체를 미세 조정하거나 교체하는 것보다 모델의 정확도가 높아짐 -> 빅데이터
  • 전 세계 데이터의 90%가 지난 2년 동안 생성되었음
  • 변화는 지식의 원천으로서 데이터의 중요성에 대한 인식이 높아짐에 따라 발생
  • 사용자, 고객, 비즈니스 및 조직에 대해 더 많이 알고자 하는 강한 열망은 데이터 수집, 수집 및 처리에 대한 새로운 요구 사항과 새로운 요구 사항을 생성
  • 다양한 소스의 데이터를 정의된 빅 데이터 스토리지로 수집하려면 전문 도구와 프레임워크가 필요
  • 데이터는 확장하도록 설계된 특정 스토리지 솔루션(예: 분산 파일 시스템 또는 비관계형 데이터베이스)에 저장
  • 필요한 단계
    • 데이터 모으기 (Collect)
    • 데이터 저장 (Store)
    • 데이터 전처리 (Clean)
    • 데이터 접근 (Access)

2.1 Working with big data

  • 빅 데이터를 규정하는 기본 특성
  • 3V (volume 양, velocity 속도, variety 다양성)
    +Veracity 진실성 -> 수집된 정보의 신뢰성과 품질

2.1.1 Volume

  • 많은 양의 정보를 처리하는 능력은 빅 데이터의 주요 요소
  • 더 많은 데이터를 보유하는 것이 더 나은 모델을 보유하는 것보다 나음
  • 많은 양의 데이터를 고려할 때 간단한 수학 연산은 매우 효과적일 수 있음
  • 데이터의 양이 크다는 것은 기존 관계형 데이터베이스 시스템 및 데이터 처리 아키텍처를 사용하여 저장, 관리 및 처리하기 어려운 규모의 데이터를 나타남
  • 빅데이터 분석의 주요 요소
    • 확장 가능한 저장 공간 (Scalable storage)
    • 확장 가능한 처리 (Scalable processing)
  • 그래프 기반 모델을 사용하면 여러 데이터 소스의 데이터를 여러 빠른 액세스 패턴을 제공하는 고도로 연결되고 균일한 단일 소스에 저장할 수 있음
  • 빅 데이터 플랫폼에서 그래프는 두 가지 역할을 수행하여 볼륨 문제를 해결
    • 메인 데이터 소스 (Main data source)
    • 구체화된 뷰 (Materialized views)

2.1.2 Velocity

  • 데이터가 생성, 축적 또는 처리되는 속도를 나타냄
  • 주식 거래, 온라인 사기 탐지 및 실시간 응용 프로그램과 같은 경우 데이터 분석에 엄격한 시간 제약이 있음
  • 특정 산업 부문에만 국한되었던 문제가 이제는 훨씬 더 광범위한 환경에서 나타남
  • 실시간 시스템은 데이터를 빠른 속도로 처리할 수 있을 뿐만 아니라 빨리 예측을 생성할 수 있어야 함
  • 이상적으로 실시간 머신 러닝 플랫폼은 데이터가 생성되는 즉시 분석할 수 있어야 함
  • 속도에 대처하는 데이터 인프라는 전체 데이터 세트에 액세스할 필요가 없으며 필요한 데이터에 대한 빠른 액세스를 제공해야 함
  • 그래프 데이터베이스는 각 노드에 대한 관계 목록을 유지 관리하므로 각 노드의 관계에 따라 이전 노드를 다시 탐색할 수 있음
  • 그래프는 특수한 경우 필요한 데이터에 빠른 액세스를 통해 빠른 속도를 제공

2.1.3 Variety

  • 분석되는 데이터의 다양한 유형 및 특성과 관련
  • 데이터는 형식, 구조 및 크기가 다양하며 완벽하게 정렬되어 처리할 준비가 된 형태로 나타나는 경우는 거의 없음
  • 다르고 다양한 소스에서 수집되기 때문에 빅 데이터는 다양한 형태(정형, 비정형 또는 반정형)와 형식으로 제공
  • 모든 빅 데이터 플랫폼은 이러한 다양성을 처리할 수 있을 만큼 충분히 유연해야 함
  • 다양한 데이터를 머신러닝 플랫폼에서 처리하려면 데이터를 동질적인 방식으로 하나의 단위로 구성, 저장 및 관리해야 함
  • 관계형 데이터베이스가 보편적임에도 더 이상 빅 데이터 플랫폼에 적합하지 않음, 특정 데이터 유형은 특정 유형의 데이터베이스에 더 적합 함
  • 데이터 유형 불일치가 없는 경우에도 관계형 데이터베이스는 스키마가 정적이라는 단점을 가짐
  • NoSQL 데이터베이스는 이러한 유연성 요구를 충족
  • 노드와 에지에 기반한 그래프 모델은 데이터 표현 측면에서 큰 유연성을 제공하며 새로운 유형의 노드와 에지는 이전에 정의한 모델에 영향을 주지 않고 설계 프로세스의 후반부에 나타날 수 있어 높은 수준의 확장성을 제공

2.1.4 Veracity

  • 수집된 데이터의 품질 또는 신뢰성과 관련
  • 훈련 데이터 세트의 데이터 품질과 양은 모델의 품질에 직접적인 영향을 미치며 잘못된 데이터는 결과 예측에 확실히 영향을 줌
  • 데이터가 완전히 정확하고 완전하게 제공되는 경우는 거의 없으므로 정리 프로세스가 필요
  • 그래프 액세스 패턴을 사용하면 요소 간의 관계를 기반으로 문제를 쉽게 발견할 수 있으며 연결된 단일 정보 소스에서 여러 소스를 결합하여 정보를 병합하여 데이터 희소성을 줄일 수 있음

2.2 Graphs in the big data platform

  • 데이터 저장, 관리, 액세스 및 분석에 대한 요구 사항 4V와 관련된 문제를 처리하는 접근 방식은 방법론적(또는 설계) 및 기술적인 두 가지 범주로 그룹화할 수 있음
  1. 방법론적 (Methodological)
    아키텍처, 알고리즘, 스토리지 스키마 및 정리 방법과 관련된 모든 설계 결정이 포함
  2. 기술론적 (Technological)
    사용할 DBMS와 관련된 설계 측면, 채택할 클러스터 구성 및 제공할 솔루션의 신뢰성이 포함

2.2.1 Graphs are valuable for big data

  • 그래프는 데이터를 저장, 처리 및 분석하기 위한 완전한 기능 세트를 제공하여 문제 복잡성을 처리할 수 있음
  • 그래프 활용 사례
    • 휴대전화가 도달 가능한 모든 타워와 교환하는 지속적인 모니터링 신호에서 수집된 셀룰러 타워 데이터를 사용하는 문제
    • 시나리오의 목표는 이러한 모니터링 데이터를 사용하여 대상의 삶과 관련된 위치 클러스터를 식별하고 대상의 현재 위치에 따라 후속 움직임을 예측하는 예측 모델을 만드는 것
    • 셀룰러 타워에서 사용할 수 있는 데이터를 축소 및 구성하는 방법으로 그래프를 사용하고 대상의 움직임에 대한 그래프 기반의 구체화된 보기를 생성
    • 결과 그래프는 위치 클러스터를 식별하는 그래프 알고리즘으로 분석
    • 위치는 위치 예측 모델을 구축하기 위해 분석 파이프라인의 다음 알고리즘에서 사용
  • 그래프 모델은 데이터 소스를 저장 및 관리하는 데 사용되며 그래프 알고리즘은 처리 파이프라인에 사용되고 그래프는 중간 모델을 저장하는 데 사용 됨
  • 그래프 모델이 일부 기계 학습 알고리즘의 입력 또는 분석가를 위한 시각화 도구로 사용할 수 있는 방법론적 접근 방식
  • 그래프 모델은 스키마가 없기 때문에 과거 데이터와 실시간 값은 동일한 모델에 공존할 수 있음
  • 아키텍처 문제
    • 기록된 이벤트는 원시이고 변경할 수 없는 사실이므로 수행된 분석으로 인해 변경되지 않고 단지 발생함, 이벤트를 한 번만 원시 형식으로 저장해야 함
    • 데이터에 대한 기능으로 여러 보기가 생성되며(집계가 한 예임), 분석에 사용된 알고리즘에 따라 변경될 수 있음
    • 뷰 구축 프로세스는 일반적으로 전체 데이터 세트에서 작동하며 많은 양의 데이터에서 작동할 때 시간이 걸릴 수 있으므로 데이터를 처리하는 데 필요한 시간으로 인해 현재 이벤트 보기와 이전 이벤트 보기 사이에 간격이 생김
    • 데이터를 실시간으로 보기 위해서는 이 격차를 메워야 하며 실시간 보기에는 이벤트를 읽고 보기에 정보를 추가하는 일종의 스트리밍 프로세스가 필요 함
  • Lambda 아키텍처의 기본 개념은 배치, 제공 및 속도의 세 가지 계층으로 구성된 일련의 빅 데이터 시스템으로 빅 데이터 시스템을 구축하는 것
  • 원시 형식의 모든 데이터는 배치 계층에 저장되며 이 계층은 원시 데이터 액세스와 일괄 보기 계산 및 추출도 담당
  • 결과 뷰는 적절한 방식으로 인덱싱되고 쿼리 중에 액세스되는 서빙 레이어에 저장
  • 그래프 모델링은 그래프 표현을 통해 쿼리에 더 빠르게 응답할 수 있을 뿐만 아니라 분석을 용이하게 하는 여러 시나리오에서 이점
  • 배치 계층이 배치 보기의 사전 계산을 완료할 때마다 서빙 계층이 업데이트
  • 사전 계산에는 시간이 필요하기 때문에 아키텍처 진입점에 도달하기 위한 최신 데이터는 배치 보기에 표시되지 않음
  • 속도 계층은 배치 계층과 최신 수신 데이터 사이의 간격을 채우고 최신 데이터의 일부 보기를 제공하여 이 문제를 해결
  • 속도 계층은 최근 데이터만 보는 반면 배치 계층은 모든 데이터를 봄
  • Lambda 아키텍처는 이러한 기술을 선택하고 요구 사항을 충족하도록 함께 연결하는 일관된 접근 방식을 정의
  • 그래프 기반 Lambda 아키텍처는 기계 학습 파노라마 빅 데이터 분석에서 그래프가 할 수 있는 중요한 역할이며 다음과 같은 시나리오에서 사용 가능
    • 사기 적발을 위한 은행 거래 분석
    • 웹팜의 서버 로그를 분석하여 사이버 공격 식별
    • 통화 데이터를 분석하여 사람들의 커뮤니티 식별
  • 이 접근 방식에서 트랜잭션 데이터는 마스터 데이터 세트의 다른 위치에 있어 이 옵션은 서비스 계층에 저장된 집계 데이터를 쿼리하고 분석할 때 유용

2.2.2 Graphs are valuable for master data management

  • 데이터 간의 연결을 이해하고 이러한 연결에서 의미를 도출하면 그래프를 기반으로 하지 않는 기존의 분석 방법에서는 제공되지 않는 기능이 제공
  • 규칙 기반 같은 전통적인 사기 탐지 방법은 사기 손실을 최소화하는 데 중요한 역할을 하지만 사기꾼은 탐지를 피하기 위해 점점 더 정교한 방법을 지속적으로 개발하여 규칙 기반 사기 탐지 방법을 쓸모 없게 만듬
  • 그래프는 관련성을 표현하도록 설계되어 있어 그래프 데이터베이스는 테이블과 같은 기존 표현을 사용하여 감지하기 어려운 패턴을 발견할 수 있음
  • 사기 탐지를 위한 분석 단계
    • 사기 거래 필터링 / 공격에 관련된 사람과 카드를 식별
    • 사기의 출처 탐색 / 사기가 시작되기 전에 모든 거래를 검색
    • 사기꾼 격리 / 사기의 원인이 될 수 있는 공통된 판매자와 같은 몇 가지 일반적인 패턴을 식별
  • 버거킹 레스토랑은 모든 사용자가 공통적으로 갖고 있는 유일한 상인이고 각각의 사기가 버거킹 거래 후에 시작되기 때문에 사기꾼은 버거킹에서 일을 하고 있음
  • 이러한 유형의 분석에 그래프 데이터베이스를 사용할 때의 몇 가지 이점
    • 지리 정보 또는 GPS 정보, 소셜 네트워크 데이터, 사용자 개인 프로필, 가족 데이터 등과 같은 여러 데이터 소스를 연결된 단일 정보 소스로 병합할 수 있습니다.
    • 존재하는 데이터는 외부 지식 소스(매장 위치, 사람들의 주소 등) 또는 컨텍스트 정보(새 매장, 기타 불만 사항 등)로 확장하여 분석을 개선하는 데 사용할 수 있습니다.
    • 동일한 데이터 모델이 여러 분석 기술(예: 사기 적발)을 지원할 수 있습니다.
    • 데이터를 그래프로 시각화하여 수동 분석 속도를 높일 수 있습니다.
    • 다중 홉을 고려하여 여러 수준의 상호 작용으로 분석을 확장할 수 있습니다.
    • 그래프 모델이 제공하는 유연한 액세스 패턴 덕분에 구조가 병합 및 정리 작업을 단순화합니다.
  • 사기 분석 시나리오에서 그래프는 병합, 정리 및 확장 데이터에 대한 주요 지식 소스를 나타내며, 그 위에 분석이 수행되고 결정이 내려짐
  • 그래프는 마스터 데이터 세트의 역할을 하며 데이터를 식별, 정리, 저장 및 관리하는 방식인 마스터 데이터 관리(MDM)의 기초
  • MDM의 주요 관심사
    • 조직 구조가 변경되고 비즈니스가 병합되고 비즈니스 규칙이 진화함에 따라 시간 경과에 따른 변경 관리
    • 새로운 데이터 소스 통합
    • 기존 데이터를 외부 데이터 소스로 보완
    • 보고, 규정 준수 및 비즈니스 인텔리전스 소비자의 요구 사항 해결
    • 데이터의 값 및 스키마 변경에 따른 버전 관리
  • MDM의 이점
    • 직원 및 부서 간 데이터 공유 간소화
    • 여러 시스템 아키텍처, 플랫폼 및 애플리케이션에서 컴퓨팅 촉진
    • 데이터의 불일치 및 중복 제거
    • 정보 검색 시 불필요한 좌절 감소
    • 업무절차 간소화
    • 조직 전체의 커뮤니케이션 향상
  • 그래프 데이터베이스는 완전한 MDM 솔루션을 제공하지 않지만 계층 구조, 마스터 데이터 메타데이터 및 마스터 데이터 모델의 모델링, 저장 및 쿼리에 이상적으로 적합
  • 이러한 모델에는 유형 정의, 제약 조건, 엔터티 간의 관계, 모델과 기본 소스 시스템 간의 매핑이 포함 됨
  • 그래프 기반 MDM의 장점
  1. 유연성
    캡처된 데이터는 추가 속성 및 개체를 포함하도록 쉽게 변경할 수 있음
    확장성
  2. 이 모델을 사용하면 변화하는 비즈니스 요구 사항에 따라 마스터 데이터 모델을 빠르게 발전시킬 수 있음
  3. 검색 기능
    각 노드, 각 관계 및 모든 관련 속성은 검색 진입점임
  4. 인덱싱 기능
    그래프 데이터베이스는 관계와 노드 모두에 의해 자연스럽게 인덱싱되어 관계형 데이터에 비해 더 빠른 액세스를 제공함
  • 그래프가 훈련 목적으로 데이터를 저장하는 MDM 시스템을 나타낼 수 있는 또 다른 시나리오 -> 추천 엔진
  • 이 경우 그래프는 사용자와 항목 간의 상호 작용 내역을 포함하는 사용자 대 항목 매트릭스를 저장할 수 있음

2.3 Graph databases

  • 2.2와 같이 그래프를 머신 러닝 접근 방식에 사용하려면 데이터 흐름이나 알고리즘에서 생각하는 것과 동일한 방식으로 그래프를 저장, 조작 및 액세스할 수 있어야 하고 이 작업을 수행하려면 스토리지 엔진으로 그래프 데이터베이스가 필요
  • 그래프 데이터베이스를 사용하면 엔터티(노드)와 이러한 엔터티 간의 연결(관계)을 저장하고 조작할 수 있음
  • 실제 데이터를 조작, 저장 및 액세스해야 하는 기계 학습 프로젝트의 수명 주기와 관련
  • 대부분의 경우 빅 데이터로 작업하므로 확장성 문제를 고려하기 위해 샤딩(여러 서버에 걸쳐 수평으로 데이터 분할) 및 복제(고가용성 및 확장성을 위해 여러 서버에 데이터 복사)를 제공
  • native: native 그래프 데이터베이스(처음부터 그래프용으로 구축됨)는 데이터를 저장하고 처리하기 위해 그래프 모델을 사용하므로 그래프 조작이 간단하고 직관적이며 성능이 좋음
  • nonnative: 많은 그래프 데이터베이스를 사용할 수 있지만 모든 데이터베이스가 native는 아니며 비그래프 스토리지 모델 위에 그래프 "보기"를 제공, nonnative 접근 방식은 저장 및 쿼리 중에 성능 문제로 이어짐
  • Label property graphs: 최소한 노드 식별이 필요하기 때문에 노드 및 관계에 일부 속성을 추가하는 것이 유용하며 같은 클래스의 노드를 그룹화해야 함, 이러한 "기능"은 그래프 데이터베이스의 표현성과 모델링 기능을 극적으로 향상시킴
  • 모든 이론, 예 및 사용 사례는 Neo4j를 참조 데이터베이스 플랫폼으로 사용
  • Neo4j는 고성능을 제공하는 그래프 데이터베이스이며 Cypher라는 강력하고 직관적인 쿼리 언어를 가지고 있음

2.3.1 Graph database management

  • 기계 학습 프로젝트에서 그래프를 사용하려면 각 그래프를 저장, 액세스, 쿼리 및 관리해야 함
  • 그래프 데이터 관리 작업을 그룹화할 수 있는 세 가지 주요 영역
  1. 그래프 모델링
    • 그래프 모델은 실제 개체와 개체 간의 관계 표현을 모델링하는 데 사용되는 개념적 도구
    • 그래프 구조의 주요 특징 중 하나는 비정형 데이터 모델링의 단순성으로 그래프 모델에서 스키마와 데이터의 분리는 고전적인 관계형 모델보다 덜 중요
    • 그래프 모델은 유연하고 확장 가능
    • 다른 모델은 다른 관점에서 다른 문제를 해결할 수 있으므로 올바른 모델을 정의하려면 노력과 경험이 필요
    • 그래프의 "스키마가 없는" 특성은 프로젝트의 초기 단계에서 정의된 모델이라도 비교적 적은 노력으로 변경할 수 있음을 의미
    • 모델 설계는 그래프에서 수행되는 모든 쿼리 및 분석의 성능에 영향을 미치므로 모델링은 데이터 관리의 중요한 측면
  2. 그래프 저장
    • 모델이 정의될 때 데이터는 영구 계층에 저장되어야 함
    • 그래프 DBMS는 영구 데이터 저장, 메모리 사용, 캐싱, 물리적/논리적 데이터 독립성, 쿼리 언어, 데이터 무결성 및 일관성 등과 같은 데이터베이스 시스템의 공통 원칙에 따라 그래프와 같은 데이터를 관리하도록 설계
    • 그래프 데이터베이스 공급업체는 백업, 복구, 수평 및 수직 확장성, 데이터 중복성과 같은 확장성, 안정성 및 성능과 관련된 모든 측면을 처리해야 함
    • 그래프 DBMS의 주요 개념, 특히 모델에 영향을 미치는 개념과 처리 중 데이터에 액세스하는 방식에 대해 논의
  3. 그래프 처리
    • 이러한 작업에는 그래프 처리 및 분석을 위한 프레임워크(예: 도구, 쿼리 언어 및 알고리즘)가 포함 됨
    • 때때로 그래프 처리에는 성능을 개선하기 위해 여러 대의 컴퓨터를 사용하는 것이 포함 됨
    • 쿼리 언어 및 일부 그래프 액세스 패턴과 같은 일부 처리 기능은 그래프 DBMS 자체에서 사용할 수 있음
    • 다른 것들은 그래프와 그래프 DBMS 위에 구현되어야 하는 알고리즘 또는 외부 플랫폼으로 사용할 수 있음
  • 그래프 처리는 광범위한 주제이며 관련 작업은 몇 가지 범주로 크게 나눌 수 있음
  • 그래프 역동성, 알고리즘 유형 및 작업 부하 유형의 세 가지 차원에 따라 구성된 그래프 처리를 분류하는 흥미로운 방법을 제시

2.3.2 Sharding

  • 데이터 스토리지 관점에서의 빅 데이터 애플리케이션 4가지 주요 Vs 과제
    • 볼륨: 관련된 데이터의 볼륨이 너무 커서 단일 시스템에 데이터를 저장하기 어려움
    • 속도: 단일 시스템은 제한된 수의 동시 사용자에게만 서비스를 제공할 수 있음
  • 컴퓨팅, 스토리지 및 메모리 리소스 증가와 같은 수직적 확장은 대용량 데이터를 처리하고 여러 동시 사용자의 응답 시간을 개선하기 위한 임시 솔루션이 될 수 있지만 궁극적으로 데이터가 너무 커져서 저장할 수 없음
  • NoSQL 데이터베이스에서 일반적인 확장 기술 중 하나는 큰 데이터 세트가 분할되고 하위 집합이 서로 다른 서버의 여러 샤드에 분산되는 샤딩
  • 샤드 또는 하위 집합은 일반적으로 안정성과 성능을 높이기 위해 여러 서버에 복제
  • 샤딩 전략은 어떤 ​​데이터 파티션을 어떤 샤드로 보내야 하는지를 결정
  • 그래프 데이터 모델은 관계 지향적이므로 각 노드는 다른 노드와 관련될 수 있어 샤딩하는 것이 간단하지 않음
  • 가능한 솔루션은 관련 노드와 그에 따른 관련 에지를 함께 배치하는 것
  • 솔루션은 그래프 순회 성능을 향상시키지만 동일한 데이터베이스 샤드에 너무 많은 연결된 노드가 있으면 많은 데이터가 동일한 샤드에 있게 되어 - - 불균형하게 되기 때문에 로드가 과중하게 됨
  • 그래프 탐색이 샤드 경계를 여러 번 교차하는 것을 포함할 수 있는 방법
    • 많은 네트워크 홉이 필요하므로 쿼리 시간이 상당히 증가하기 때문에 비용이 많이 듬
    • 모든 것이 동일한 샤드에서 발생하는 경우에 비해 성능이 빠르게 저하
  • 이전의 교차 샤드 탐색을 극복하기 위해 관련 노드를 동일한 샤드에 저장
    • 그래프 순회는 더 빠르지만 샤드 간의 부하가 매우 불균형
    • 그래프의 동적 특성으로 인해 그래프와 그래프의 액세스 패턴이 런타임에 예측할 수 없이 빠르게 변경될 수 있으므로 실제로 구현하기가 불편
  • 그래프 데이터베이스를 확장하는 세 가지 기술
  1. 애플리케이션 수준 샤딩
    • 도메인 특정 지식을 사용하여 애플리케이션 측에서 수행
    • 글로벌 비즈니스의 경우 북미와 관련된 노드는 한 서버에 생성할 수 있고 아시아와 관련된 노드는 다른 서버에 생성할 수 있음
    • 애플리케이션 수준 샤딩은 노드가 물리적으로 다른 데이터베이스에 저장된다는 것을 이해해야 함
    • 샤딩은 데이터에 대해 수행해야 하는 다양한 유형의 분석 또는 그래프 처리를 기반으로 할 수도 있음
    • 이러한 경우 각 샤드에는 알고리즘을 실행하는 데 필요한 모든 데이터가 포함되며 일부 노드는 샤드 간에 복제될 수 있음
  2. RAM 증가 또는 캐시 샤딩 사용
    • 전체 데이터베이스가 메모리에 맞도록 RAM을 추가하여 서버를 수직으로 확장할 수 있음
    • 이 솔루션은 그래프 순회를 매우 빠르게 만들지만 대규모 데이터베이스에는 비합리적이고 실행 불가능
    • 이러한 경우 캐시 샤딩(cache sharding)이라는 기술을 채택하여 메인 메모리 공간을 훨씬 초과하는 데이터 세트로 고성능을 유지할 수 있음
    • 우리는 전체 데이터 세트가 각 데이터베이스 인스턴스에 존재하기를 기대하기 때문에 캐시 샤딩은 전통적인 의미의 샤딩이 아님
    • 캐시 공유를 구현하기 위해 각 데이터베이스 인스턴스가 수행하는 작업 부하를 분할하여 주어진 요청에 대해 웜 캐시에 도달할 가능성을 높임
  3. 복제
    • 읽기 전용 액세스 권한이 있는 팔로어 역할을 하는 데이터베이스의 (동일한) 복사본을 더 추가하여 데이터베이스를 확장할 수 있음
    • 읽기 전용인 비교적 많은 수의 팔로워 데이터베이스 인스턴스와 소수의 리더 데이터베이스 인스턴스를 쌍으로 구성하면 높은 수준의 확장성을 얻을 수 있음

2.3.3 Replication

  • 속도와 가용성을 처리하기 위한 유효한 대안은 복제
  • 데이터 복제는 복제본이라고 하는 여러 데이터 복사본을 별도의 컴퓨터에 유지 관리하는 것으로 구성 됨
  • 복제의 여러 가지 목적
  1. 시스템 가용성
    • 복제는 여러 사이트에서 데이터 항목에 액세스할 수 있도록 하여 분산 DBMS에서 단일 장애 지점을 제거
    • 일부 클러스터 노드가 다운되더라도 데이터는 계속 사용할 수 있어야 함
  2. 성능
    • 복제를 통해 액세스 포인트에 더 가까운 데이터를 찾아 대기 시간을 줄일 수 있음
  3. 확장성
    • 복제를 통해 시스템은 지리적으로 그리고 액세스 요청 수 면에서 확장할 수 있으며 동시에 수용 가능한 응답 시간을 유지할 수 있음
  4. 응용 프로그램 요구 사항
    • 운영 사양의 일부로 응용 프로그램은 유지 관리할 데이터의 여러 복사본을 요구할 수 있음
  • 데이터 복제에는 분명한 이점이 있지만 서로 다른 복사본을 동기화된 상태로 유지하는 것은 어려움
  • 복제 프로토콜을 정의할 때 기본 설계 결정은 데이터베이스 업데이트가 처음 수행되는 위치이며 기술은 다음과 같이 특징지을 수 있음
    • 마스터 복사본에 대한 업데이트를 처음 수행하는 경우 중앙 집중식
    • 중앙 집중식 기술은 시스템의 모든 데이터 항목에 대해 마스터 데이터베이스 복사본이 하나만 있는 경우 단일 마스터로 더 식별할 수 있음
    • 각 데이터 항목 또는 데이터 항목 집합에 대해 단일 마스터 복사본이 있을 수 있는 경우 기본 복사본으로 식별할 수 있음
    • 모든 복제본에 대한 업데이트를 허용하는 경우 배포 됨
  • 그래프의 고도로 연결된 특성으로 인해 중앙 집중식 기본 복사 프로토콜 또는 분산 프로토콜을 구현하는 것은 성능과 데이터 일관성에 심각한 영향을 미치는 어려운 작업
  • 마스터/슬레이브 복제라고도 하는 단일 마스터를 사용하는 중앙 집중식 접근 방식에 중점
    • 이 접근 방식에서는 하나의 노드가 마스터, 리더 또는 기본으로 알려진 데이터의 신뢰할 수 있는 소스로 지정 됨
    • 이 노드는 일반적으로 해당 데이터에 대한 업데이트 처리를 담당
    • 슬레이브가 쓰기를 허용하더라도 이러한 작업은 마스터를 거쳐 수행되어야 함
    • 마스터/슬레이브 복제는 대부분의 데이터 액세스가 읽기인 경우 가장 유용
    • 더 많은 슬레이브 노드를 추가하고 모든 읽기 요청을 슬레이브로 라우팅하여 수평으로 확장할 수 있음
    • 마스터/슬레이브 복제는 읽기 복원력도 제공
    • 마스터가 실패하더라도 슬레이브는 요청을 계속 처리할 수 있음
  • 마스터/슬레이브 프로토콜의 대부분의 구현은 현재 마스터를 사용할 수 없게 되면 슬레이브가 다른 마스터에 참여할 수 있도록 함
  • 이 접근 방식은 아키텍처 스택의 가용성과 안정성을 높임
  • 머신 어닝 프로젝트에서 복제를 통해 학습 또는 예측 단계에서 모든 노드에 읽기 부하를 분산할 수 있음

2.3.4 Native vs. non-native graph databases

  • 다양한 데이터베이스 엔진에서 그래프를 인코딩하고 표현하는 방법에는 여러 가지가 있음
  • 쿼리 언어에서 데이터베이스 관리 엔진 및 파일 시스템, 클러스터링에서 백업 및 모니터링에 이르기까지 전체 컴퓨팅 스택에서 그래프 워크로드를 처리하도록 구축된 DBMS를 네이티브 그래프 데이터베이스라고 함
  • 네이티브 그래프 DBMS는 인덱스 없는 인접성(index-free adjacency)이라는 속성을 가지고 있는데, 이는 각 노드가 인접 노드에 대한 직접 참조를 유지한다는 것을 의미
  • 데이터베이스에서 관계를 가로지르는 순회는 그래프의 크기에 관계없이 일정한 비용이 듬
  • 쿼리 시간은 그래프의 전체 크기와 무관하며 대신 검색된 그래프의 양에 비례
  • non native 그래프 데이터베이스 시스템은 두 가지 범주로 나눌 수 있음
    • 키/값, 관계형, 문서 또는 열 기반 저장소와 같은 기존의 다른 데이터 구조 위에 그래프 API를 계층화하는 것
    • 하나의 시스템이 여러 데이터 모델을 지원할 수 있다고 주장하는 다중 모델 의미론을 주장하는 것
  • 비네이티브 그래프 엔진은 컬럼형, 관계형, 문서 또는 키/값 데이터와 같은 대체 스토리지 모델에 최적화되어 있으므로 그래프를 처리할 때 DBMS는 데이터베이스의 기본 모델에 대해 비용이 많이 드는 변환을 수행해야 함
  • 비정규화를 통해 이러한 변환을 최적화하려고 시도할 수 있지만 이 접근 방식은 일반적으로 그래프를 쿼리할 때 높은 대기 시간으로 이어지므로 네이티브 그래프 데이터베이스보다 성능이 좋지 않음
  • 첫 번째 노드가 있을 때 관계를 순회하는 비용은 O(1)이며 다음 노드를 직접 가리킴
  • 이전에 요구되었던 동일한 순회를 수행하는 데 비용은 O(m)
  • 그래프 엔진이 더 빠를 뿐만 아니라 비용은 총 관계 수(n)가 아니라 홉 수(m)에만 관련
  • 네이티브 그래프 아키텍처는 그래프 모델 관리에 대한 non native접근 방식보다 일반적으로 우수하게 만드는 많은 이점을 제공
  • 네이티브 그래프 장점
  1. "분에서 밀리초" 성능
    • 네이티브 그래프 데이터베이스는 non native그래프 데이터베이스보다 훨씬 빠르게 연결된 데이터 쿼리를 처리
    • 평범한 하드웨어에서도 네이티브 그래프 데이터베이스는 단일 시스템의 그래프 노드 간 초당 수백만 건의 순회와 초당 수천 건의 트랜잭션 쓰기를 쉽게 처리할 수 있음
  2. 읽기 효율성
    • 네이티브 그래프 데이터베이스는 복잡한 스키마 설계 및 쿼리 최적화 없이 인덱스가 없는 인접성을 통해 일정 시간 순회를 제공할 수 있음
    • 직관적인 속성 그래프 모델은 연결을 처리하기 위해 추가적이고 복잡한 애플리케이션 로직을 생성할 필요가 없음
  3. 디스크 공간 최적화
    • non native 그래프의 성능을 향상시키기 위해 인덱스를 비정규화하거나 새 인덱스를 생성하거나 이 두 가지를 조합하는 것이 동일한 양의 정보를 저장하는 데 필요한 공간의 양에 영향을 줌
  4. 쓰기 효율성
    • 인덱스 비정규화는 추가 인덱스 구조도 모두 업데이트해야 하기 때문에 쓰기 성능에도 영향을 미침

2.3.5 Label property graphs

  • 복잡한 네트워크를 나타내는 데 사용되는 그래프는 단순한 노드 및 관계 목록보다 더 많은 정보를 저장해야 함
  • 이러한 단순한 구조는 속성의 형태로 추가 정보를 포함하는 더 풍부한 모델로 쉽게 확장될 수 있으며 클래스의 노드를 그룹화하고 다양한 유형의 관계를 할당해야 함
  • 이 데이터 모델을 사용하면 프로젝션, 필터링, 그룹화 및 카운팅과 같은 모든 DBMS의 일반적인 쿼리 기능 집합을 더 복잡하게 만들 수 있음
  • 레이블 속성 그래프는 "가장자리가 고유한 자체 모서리가 있는 방향성, 꼭짓점 레이블, 모서리 레이블이 지정된 다중 그래프"로 정의
  • 속성 그래프의 속성
    • 그래프는 엔터티 집합으로 구성되며 엔터티는 노드 또는 관계를 나타냄
    • 각 엔터티에는 전체 그래프에서 고유하게 식별하는 식별자가 있음
    • 각 관계에는 방향, 관계의 유형을 식별하는 이름, 시작 노드 및 끝 노드가 있음
    • 엔터티는 일반적으로 키/값 쌍으로 표시되는 속성 집합을 가질 수 있음
    • 노드는 노드를 그룹화하고 데이터 세트 내에서 노드가 수행하는 역할을 나타내는 하나 이상의 레이블로 태그를 지정할 수 있음
  • 노드의 레이블은 특정 엔터티를 나타내기 때문에 단수여야 하지만 관계의 이름은 방향을 반영해야 함
  • 스키마는 액세스 패턴 및 기본 그래프 DBMS 측면에서 특정 요구에 따라 변경될 수 있음

Summary

  • 빅데이터의 4가지 V(볼륨, 속도, 다양성, 진실성)
    • 4V 모델은 데이터의 규모, 새로운 데이터가 생성되는 속도, 데이터가 나타내는 다양한 구조 및 소스의 불확실성과 관련하여 머신 러닝 프로젝트가 직면하는 여러 중요한 문제를 설명
  • 많은 양의 훈련 데이터를 처리하는 아키텍처를 설계하는 방법
    • 일반적으로 예측 분석 및 머신 러닝이 효과적이기 위해서는 교육 중에 많은 데이터가 필요
    • 더 많은 데이터를 갖는 것이 더 나은 모델을 갖는 것보다 나음
  • 데이터 view를 저장하기 위해 그래프를 사용하는 적절한 Lambda 아키텍처를 설계하는 방법
    • 그래프 기반 Lambda 아키텍처에서 그래프 모델은 배치 또는 실시간 보기를 저장하고 액세스하는 데 사용 됨
    • 이러한 보기는 원래 형식의 원시 데이터를 포함하는 마스터 데이터 세트의 미리 계산되고 쿼리하기 쉬운 보기를 나타냄
  • MDM 플랫폼을 계획하는 방법
    • MDM은 데이터를 식별, 정리, 저장 및 (가장 중요한) 관리하는 방식
    • 이러한 맥락에서 그래프는 검색 및 색인 기능과 함께 데이터 모델에서 더 많은 유연성과 확장성을 노출
  • 애플리케이션의 요구 사항에 적합한 복제 스키마를 결정하는 방법
    • 복제를 사용하면 그래프 데이터 클러스터의 여러 노드에 분석 로드를 분산할 수 있음
  • 네이티브 그래프 데이터베이스의 장점
    • 네이티브 그래프 DBMS는 기본 데이터 엔진과 모델(데이터를 표현하는 방식)을 일대일로 매핑하기 때문에 non native 보다 선호 됨
    • 이러한 일치는 더 나은 성능을 허용함

Reference

profile
graph data scientist

0개의 댓글