연합 인덱스
연합 인덱싱(Federated Indexing)은 단일 검색 인터페이스나 쿼리가 여러 개의 독립적이고 지리적으로 분산된 데이터 저장소 또는 인덱스에 접근하고 검색할 수 있도록 하는 아키텍처 패턴입니다. 모든 데이터를 하나의 거대한 인덱스로 통합하는 대신, 시스템은 이러한 개별 인덱스들 간에 쿼리를 조정하고 결과를 동적으로 집계합니다.
현대 기업 환경에서 데이터는 중앙 집중화되는 경우가 거의 없습니다. 데이터는 로컬 데이터베이스, 클라우드 스토리지 버킷, 전문화된 마이크로서비스, 지역 서버 등 다양한 시스템에 존재합니다. 연합 인덱싱은 데이터 사일로(data silos) 문제를 해결하여, 모든 것을 한곳으로 옮기기 위해 복잡하고 리소스 집약적인 ETL(추출, 변환, 로드) 프로세스를 거치지 않고도 사용자가 전체 데이터 환경에 걸쳐 포괄적인 검색을 수행할 수 있도록 합니다.
이 과정은 사용자가 연합 계층(federated layer)에 쿼리를 제출할 때 시작됩니다. 이 계층은 스마트 라우터 역할을 합니다. 쿼리를 구문 분석하고 어떤 기본 데이터 소스가 관련이 있는지 판단합니다. 그런 다음 각 소스에 필요한 특정 언어나 API(예: 한 데이터베이스에는 SQL, 다른 데이터베이스에는 Lucene 쿼리)로 쿼리를 변환합니다. 각 소스는 쿼리를 로컬에서 실행하고 관련 결과의 하위 집합만 연합 계층으로 반환하며, 연합 계층은 이를 병합하고 순위를 매긴 다음 통합된 결과 집합을 최종 사용자에게 제시합니다.
연합 인덱싱은 다음과 같은 대규모 운영에 매우 중요합니다.
이 개념은 분산 데이터베이스(Distributed Databases), 데이터 가상화(Data Virtualization), 분산 검색 엔진(Distributed Search Engines)과 밀접하게 관련되어 있습니다.