본문 바로가기

JanusGraph

(13)
4대 그래프 DB 플랫폼 비교 분석 🔄 NebulaGraph Neo4j, JanusGraph, HugeGraph와 비교 📊 4대 그래프 DB 비교 분석표 항목 NebulaGraph Neo4j JanusGraph HugeGraph 🏢 개발사Vesoft (중국/미국)Neo4j Inc. (미국)Linux Foundation (오픈소스 커뮤니티)Baidu (중국)💻 언어C++JavaJavaJava🌐 쿼리 언어nGQL (Cypher 유사)CypherGremlin (TinkerPop)Gremlin (TinkerPop)📦 백엔드 스토리지RocksDB자체 저장소Cassandra, HBase, BerkeleyDBRocksDB, Cassandra🧠 특징초고속, 분산, 멀티태그 정점가장 유명함, 생태계 풍부분산 처리, 확장성빠른 구축, ..
[실습] Gremlin vs Cypher 상황별 성능 비교 실험 설계 ✅ 1. 실험 목표 정의 실험 목적 비교 기준 그래프 쿼리 언어의 실행 성능 비교Latency, Memory usage표현력/추상화 수준 비교쿼리 길이, 가독성자동화 및 파이프라인 통합성스크립트화/LLM 연계 가능성확장성노드/엣지 수 증가에 따른 처리 시간 변화📁 2. 실험 구성 요소📌 데이터셋사용 데이터: ogbl-wikikg2 (2.5M nodes, 16M triples)형식: JSON → Triple(subject, predicate, object) → Gremlin/Cypher 삽입구성: 관계(Pxxx) + 엔티티(Qxxx) 기반 그래프🧪 실험 시나리오 분류 (작업 유형별)상황 유형 설명목적단일 홉 조회예: Q1 → P31 → Q2기본 트래버설 속도 측정다중 홉 경로 추적예: Q1 → P..
JanusGraph 실습 4 / import & export 🧩 JanusGraph Import / Export 구조✅ 설명JanusGraph DB는 외부에서 데이터를 불러오거나 내보낼 때 두 가지 포맷을 지원합니다:GraphSONJSON 기반사람과 기계 모두 읽기 쉬운 형식GraphMLXML 기반W3C에서 정의한 표준 그래프 표현 언어, 도구 간 호환성 높음Import: 외부 JSON(GraphSON) 또는 XML(GraphML) 파일을 JanusGraph에 삽입Export: JanusGraph에 있는 그래프를 JSON 또는 XML 형식으로 내보낼 수 있음🧩 GraphSON 구조 예시 (JSON 기반){ "id": "2", "label": "person", "inE": { "knows": [ { "id": 7, "..
JanusGraph 실습 3 / Hbase 설치 및 활용 가이드 ✅ 1단계: 이미지 다운로드 및 세팅이미지가 정상적으로 다운로드됐는지 확인명령어docker images 결과 예시REPOSITORY TAG IMAGE ID CREATED SIZEdajobe/hbase latest daa36a6d90b1 6 years ago 827MB설명REPOSITORY 열에서 dajobe/hbase가 보이면 다운로드 성공IMAGE ID, CREATED, SIZE를 통해 이미지 정보를 확인할 수 있음위 예시에서는 827MB, 생성된 지는 6년 된 오래된 이미지입니다. (그래서 더 가볍고 빠르게 시작되기도 함)🧠 TAG가 latest인 것은 별도로 버전을 지정하지 않았기 때문입니다.🗂️ 데이터 디렉토리 생성 (선택)명령..
JanusGraph 실습 2 / Cassandra 설치 및 활용 가이드 이번 글에서는 Docker를 이용하여 Cassandra를 설치하고 활용하는 전 과정을 단계별로 정리해보겠습니다. Cassandra는 대용량 데이터를 빠르게 처리할 수 있는 고성능 NoSQL 데이터베이스로, 분산형 구조와 높은 확장성이 특징입니다.📌 전체 설치 및 실습 워크플로우Cassandra를 Docker로 설치하고 데이터를 조회하기까지의 흐름은 다음과 같습니다:Cassandra 이미지 다운로드이미지 확인컨테이너 실행컨테이너 실행 여부 확인컨테이너 내부 진입Cassandra Shell 실행Keyspace 및 테이블 생성데이터 삽입 및 조회1️⃣ Cassandra 이미지 다운로드가장 먼저 DockerHub에서 Cassandra 이미지를 가져옵니다.=> 먼저 Docker Desktop 실행시킬 것, 그래..
JanusGraph 실습 1 / 스키마와 데이터 모델링 ✅ 스키마 구성 3요소정점 라벨 (Vertex Label)간선 라벨 (Edge Label)속성 키 (Property Key)이들을 정의해야만 정점, 간선, 속성을 삽입할 수 있습니다. 🧩 1. 간선 라벨 정의 (Edge Label)knows = management.makeEdgeLabel('knows').multiplicity(MULTI).make();management: 스키마를 다루는 객체makeEdgeLabel('knows'): knows라는 간선 라벨 생성multiplicity(MULTI): 다중 연결 허용make(): 라벨 생성 완료📌 Multiplicity(다중도)의 의미두 정점 사이에서 특정 간선 라벨이 몇 개까지 허용되는지를 설정하는 제약 조건🎯 Multiplicity 종류 유형 설..
JanusGraph 기초 개념 ⑤ / 스토리지 백엔드 구성과 아키텍처 설계 JanusGraph는 단순한 그래프 저장소가 아니며, 복잡한 실시간 시스템, 분산 환경, 대규모 분석 시스템에서도 유연하게 적용될 수 있는 구조를 갖추고 있습니다. 이번 편에서는 JanusGraph의 스토리지 백엔드(Storage Backend)와 이를 활용한 실무 아키텍처 설계를 알아보겠습니다. / 보다가 지루하시면 이번 장은 넘겨도 될 듯 합니다. ✅ 1. JanusGraph는 스토리지 계층을 분리한다JanusGraph는 자체적으로 데이터를 저장하지 않습니다.대신, 외부 스토리지 시스템을 백엔드로 구성하여 저장합니다.📦 즉, JanusGraph는 그래프 처리 레이어이고,데이터를 저장·관리하는 역할은 스토리지 백엔드에 위임합니다. ✅ 2. 지원되는 주요 백엔드 시스템 스토리지 백엔드 설명 및 특징 ..
JanusGraph 기초 개념 ④ / Hadoop과 Spark 지금까지 JanusGraph의 구조와 탐색 방식에 대해 살펴봤다면,이번에는 대규모 그래프 데이터에서 어떻게 분석을 수행하는지 알아보도록 하겠습니다.JanusGraph는 단순히 데이터를 저장하는 수준을 넘어, Hadoop·Spark와 통합하여 수백만 개 정점의 그래프 분석도 가능하도록 설계되어 있습니다. ✅ 왜 대규모 분석이 필요한가?그래프 데이터는 작을 땐 눈으로도 확인할 수 있지만, 규모가 커지면 문제가 달라집니다:정점: 1,000,000개 이상간선: 수백만 개복잡한 연산: 예) 평균 나이, 커뮤니티 탐색, 추천 시스템, 최단 경로이때는 단일 머신으로 처리할 수 없고, 분산 처리 프레임워크의 도움이 필요합니다. ✅ JanusGraph + Hadoop/Spark 아키텍처JanusGraph는 내부적으로 T..