그래프 데이터베이스를 사용하면 데이터 항목 및 항목 간의 관계를 모델링하여 유용한 정보를 발견할 수 있습니다. JanusGraph는 대용량 데이터를 다룰 수 있는 그래프 데이터베이스입니다. 이 페이지에서는 Google Kubernetes Engine을 조정 플랫폼으로, Bigtable을 스토리지 백엔드로 사용하여 Google Cloud 에서 JanusGraph를 실행하는 데 도움이 되는 개념을 설명합니다.
이 문서는 Bigtable을 스토리지 백엔드로 사용하여Google Cloud 에서 JanusGraph 그래프 데이터베이스를 실행하는 데 관심이 있는 시스템 설계자, 데이터베이스 관리자, DevOps 전문가를 대상으로 합니다. 여기서는 사용자가 Google Kubernetes Engine (GKE), Kubernetes 포드, Bigtable, Elasticsearch에 익숙하다고 가정합니다.
개요
그래프 관련 용어에서는 항목을 노드 또는 꼭짓점이라고 하고, 관계를 에지라고 합니다. JanusGraph에서 꼭지점과 에지에는 속성을 통해 제공되는 추가 관련 데이터가 있을 수 있습니다.
위의 이미지는 속성 그래프의 예시입니다.
그래프 데이터베이스를 사용하면 다양한 분야와 활동을 모델링할 수 있습니다.
- 소셜 네트워크
- 금융 거래(사기 분석용)
- 물리적 또는 가상 시스템 네트워크
그래프 데이터베이스를 만들 때는 경우에 따라 꼭지점과 에지 수가 수백만 내지 수십억에 이르기도 합니다. JanusGraph와 Bigtable을 내부 스토리지 계층으로 함께 사용하면 필요한 크기 및 처리량에 따라 독립적으로 빠른 쿼리(그래프 순회라고 부름)를 실행하고 스토리지 레이어를 확장할 수 있습니다. JanusGraph는 또한 플러그인 가능한 색인 생성 백엔드를 사용해서 꼭지점 및 에지 속성에 대한 전체 텍스트 색인 생성을 제공합니다.
Elasticsearch를 StatefulSet의 포드에서 실행되는 색인 생성 백엔드로 사용하고 Bigtable을 스토리지 백엔드로 사용하여 GKE에 확장 가능한 JanusGraph 인프라를 배포할 수 있습니다. 완료되면 그래프 데이터에 존재하는 관계를 순회할 수 있습니다.
다음 다이어그램은 이러한 요소들이 어떻게 연결되는지 보여줍니다.
위의 다이어그램은 Elasticsearch 및 Bigtable을 사용하는 GKE의 JanusGraph 배포를 보여줍니다.
Bigtable의 JanusGraph 데이터
그래프 데이터는 JanusGraph에서 인접 목록으로 저장됩니다. 각 행은 꼭짓점, 인접한 꼭짓점(에지), 꼭짓점 및 에지의 속성 메타데이터를 나타냅니다. row key는 꼭짓점의 고유 식별자입니다. 꼭짓점과 다른 꼭짓점 및 관계를 추가로 정의하는 모든 속성의 각 관계는 에지 또는 에지 속성 열로 저장됩니다. 커스텀 한정자 및 열 값 모두 Bigtable 권장사항에 따라 에지를 정의하는 데이터가 저장됩니다. 각 꼭지점 속성은 개별 열로 저장되고, column qualifier 및 열 값을 사용해서 속성을 정의합니다.
다음 다이어그램은 스토리지 구조를 보여줍니다.
이 다이어그램은 두 꼭짓점 행에 대한 논리적 세부정보가 있는 작은 그래프 조각의 논리적 스토리지 구조를 보여줍니다. 다이어그램에서 두 예시 행은 두 개의 꼭짓점을 나타냅니다. 첫 번째 꼭짓점은 단일 꼭짓점 속성으로 라벨이 지정되며 별도의 에지 두 개로 다른 두 꼭짓점과 연결됩니다. 두 번째 꼭짓점에는 두 속성과 하나의 에지가 포함된 열이 있습니다.
다음 꼭짓점 에지 논리 데이터 모델의 이미지는 에지 또는 에지 속성 열의 column qualifier와 값에 대한 세부정보를 제공합니다.
각 인접한 꼭지점에 대해 열에 해당 에지에 대한 메타데이터가 저장됩니다. column qualifier에는 에지 관계 및 에지 방향에 대한 메타데이터와 인접한 꼭지점에 대한 포인터가 포함됩니다. 열 값에는 에지 라벨 및 모든 추가 에지 속성이 포함됩니다. 순회는 어느 방향으로든 진행될 수 있으므로, 에지 관계의 각 끝단에서 한 번씩 에지가 두 번 저장됩니다. 양방향 에지 스토리지는 순회 성능을 크게 늘려주지만 추가적인 저장공간의 중복성 및 비원자적 에지 변형으로 인해 몇 가지 단점이 수반됩니다.
다음 다이어그램은 꼭지점 속성 열의 논리적 데이터 모델입니다.
이전 그림은 column qualifier의 세부정보 및 에지 열의 값을 보여줍니다.
각 꼭지점 속성은 개별 열로 저장됩니다. column qualifier는 속성 키에 대한 고유 식별자입니다. 열 값에는 속성의 식별자와 속성의 값이 모두 포함됩니다.
또한 JanusGraph에서 Bigtable의 사전식 행 순서 및 column qualifier를 사용하여 쿼리 성능을 향상시킵니다.
다음 단계
- JanusGraph 및 그래프 데이터베이스 자세히 알아보기
- Apache TinkerPop 그래프 컴퓨팅 프레임워크에 대해 자세히 알아보기 및 Gremlin 그래프 순회 언어 탐색하기
- JanusGraph에서 Bigtable에 데이터를 저장하는 방법 자세히 알아보기
- JanusGraph 예시 애플리케이션을 배포하여 그래프 사용 사례 자세히 알아보기