재귀 매핑 쌍 테이블을 이용한 RDF 자기조인 효율화
초록
본 논문은 RDF 데이터의 복잡한 자기조인 쿼리 성능을 개선하기 위해 “재귀 매핑 트윈 테이블(RMTT)” 기법을 제안한다. RDF 트리플을 두 개의 동일 구조 테이블에 재귀적으로 분산 저장함으로써 기존 수직 파티셔닝 방식과 RDF‑3X 대비 조인 횟수를 크게 감소시키고, 대규모 DBLP·DBpedia 데이터셋에서 뛰어난 확장성을 입증한다.
상세 분석
RDF(리소스 설명 프레임워크)는 주어‑술어‑목적어 형태의 트리플로 데이터를 표현한다. 기존 인덱싱 기법인 Property Table과 Vertical Partitioning은 트리플 접근성을 높였지만, 특히 동일 테이블 내에서 다중 자기조인이 발생하는 복합 쿼리에서는 조인 비용이 급증한다. 논문은 이러한 병목을 해소하기 위해 “Recursive Mapping of Twin Tables”(RMTT)라는 새로운 스키마 설계를 제안한다. RMTT는 원본 RDF 트리플을 두 개의 테이블(T1, T2)로 나누어 저장한다. 각 테이블은 (subject, predicate, object) 컬럼을 그대로 유지하지만, 삽입 시 트리플을 재귀적으로 매핑한다. 구체적으로, 첫 번째 트리플은 T1에, 그 트리플의 객체가 다른 트리플의 주어가 될 경우 해당 트리플은 T2에 저장한다. 이후 T2에 저장된 레코드가 또 다른 트리플의 객체와 연결되면 다시 T1에 매핑하는 식으로 교대로 진행한다. 이 과정은 트리플 간 연결 관계를 두 테이블에 교차 배치함으로써 동일 테이블 내 자기조인을 최소화한다.
조인 실행 시, 기존 수직 파티셔닝은 동일 파티션 내에서 다중 조인을 수행해야 했지만, RMTT는 T1‑T2 간 교차 조인만으로 대부분의 경로 탐색을 가능하게 한다. 따라서 조인 연산 수가 3~4배 감소하고, 메모리 캐시 효율이 향상된다. 실험에서는 DBLP와 DBpedia와 같은 수백 GB 규모 데이터셋에 대해 10여 개의 복합 SPARQL 쿼리를 실행했으며, RDF‑3X 대비 평균 응답 시간이 30% 이상 단축되고, 수직 파티셔닝 대비도 유사하거나 더 나은 성능을 보였다. 또한 데이터 삽입 시에도 재귀 매핑 로직이 단순히 두 테이블에 순차적으로 기록되므로 삽입 오버헤드가 크게 증가하지 않는다.
하지만 RMTT는 트리플 간 연결 구조가 매우 불균형하거나, 특정 패턴(예: 깊은 체인형 연결)에서는 두 테이블 간 조인 비용이 오히려 증가할 가능성이 있다. 또한 스키마 설계 단계에서 트리플의 방향성을 판단하는 규칙이 명확히 정의되지 않으면 데이터 분포가 비대칭적으로 치우쳐 성능 저하를 초래할 수 있다. 이러한 한계점을 보완하기 위해서는 동적 파티셔닝 전략이나 히스토그램 기반의 데이터 분포 분석이 필요하다. 전반적으로 RMTT는 자기조인 중심의 복합 쿼리에서 뛰어난 확장성을 제공하지만, 적용 전 데이터 특성 분석이 필수적이다.