콘텐츠로 이동하기
데이터 분석

BigQuery 내부 구조 심층 분석: Google이 분석에 임베딩을 도입한 방법

2025년 11월 11일
Andong Li

Software Engineer

Joe Malone

Product Manager, Google

Try Gemini 3

Our most intelligent model is now available on Vertex AI and Gemini Enterprise

Try now

 * 본 아티클의 원문은 2025년 11월 12일 Google Cloud 블로그(영문)에 게재되었습니다.

임베딩은 데이터와 AI의 교차점에서 핵심적인 역할을 하는 구성요소입니다. 데이터 구조로서의 임베딩은 데이터가 가진 고유한 의미를 인코딩하며, 이들은 비교될 때 그 중요성이 분명해집니다. 벡터 검색은 공유 공간 내에서 임베딩 간의 거리를 평가하여 임베딩의 상대적 의미를 밝히는 기법입니다. 

2024년 초 Google Cloud는 BigQuery 데이터 플랫폼에 벡터 검색 기능을 출시하여 모든 BigQuery 사용자가 이 강력한 기능을 이용할 수 있도록 했습니다. 이를 통해 특수 데이터베이스나 복잡한 AI 워크플로를 구축할 필요가 없어졌습니다. 벡터 검색을 범용화하기 위한 Google Cloud의 지속적인 노력은 BigQuery 사용자가 기대하는 규모, 간편함, 비용 효율성을 갖춘 고유한 접근방식으로 이어졌습니다. 이 글에서는 지난 2년간의 여정을 되돌아보며 제품 개발과 고객 상호작용을 통해 얻은 인사이트를 공유하고자 합니다.

과거의 방식: 어렵고 복잡했던 벡터 검색 구축 

BigQuery에 벡터 검색에 대한 기본 지원이 추가되기 전에는 확장 가능한 벡터 검색 솔루션을 빌드하는 것이 복잡하고 여러 단계를 거쳐야 하는 프로세스였습니다. 데이터 전문가는 다음 작업을 수행해야 했습니다.

  1. 데이터 웨어하우스에서 데이터 추출

  2. 특수한 머신러닝 인프라를 사용하여 임베딩 생성

  3. 생성된 임베딩을 전용 벡터 데이터베이스에 로드

  4. 서버 프로비저닝, 확장, 색인 관리를 포함한 추가 인프라 유지보수

  5. 벡터 검색 결과를 핵심 비즈니스 데이터와 다시 연결하는 커스텀 파이프라인 개발

  6. 운영 시스템의 치명적 문제인 인덱스 재빌드 중 발생하는 다운타임 처리

이처럼 분산되고 비용이 많이 들며 유지보수 부담이 큰 아키텍처는 많은 팀의 진입 장벽이었습니다. 

초기 단계: 간편함에 집중하다

Google Cloud는 시장에서 가장 간단한 벡터 데이터베이스를 만드는 것을 목표로 BigQuery 벡터 검색을 시작했습니다. 이 프레임워크는 다음과 같은 몇 가지 핵심 설계 요구사항을 충족하기 위해 빌드되었습니다.

  • 완전한 서버리스: Google Cloud는 모든 BigQuery 고객에게 벡터 검색을 제공하는 가장 좋은 방법이 서버리스라는 것을 일찍이 깨달았습니다. 먼저 BigQuery 내에서 클러스터링과 인덱싱의 장점을 결합한 IVF 색인(Index)을 BigQuery 내부에 빌드했습니다. 따라서 BigQuery에서 벡터 검색을 사용하기 위해 새 서버를 프로비저닝할 필요가 전혀 없습니다. 즉, 벡터 데이터베이스의 기본 인프라를 관리할 필요가 없으므로 팀은 가장 중요한 데이터에만 집중할 수 있습니다. BigQuery는 확장, 유지보수, 안정성을 자동으로 처리하며 수십억 개의 임베딩을 처리할 수 있도록 쉽게 확장되므로 비즈니스 성장에 따라 솔루션을 확장할 수 있습니다.

  • 최대한 간편한 색인 유지 보수: BigQuery의 벡터 색인은 이러한 간소화의 핵심 요소입니다. 간단한 CREATE VECTOR INDEX SQL 문으로 색인을 생성하면 BigQuery가 나머지를 처리합니다. 새로운 데이터가 수집되면 색인이 자동으로 비동기식으로 새로고침되어 변경사항을 반영합니다. 데이터 수집으로 인해 데이터 분포가 변경되어 검색 정확도가 떨어지더라도 문제없습니다. 모델 재빌드 기능을 사용하면 색인 다운타임 없이 단 하나의 SQL 문으로 색인을 완전히 재빌드할 수 있습니다.

  • GoogleSQL 및 Python과의 통합: 간단한 VECTOR_SEARCH 함수를 사용하여 기존 SQL 워크플로 내에서 직접 벡터 검색을 수행할 수 있습니다. 따라서 시맨틱 검색을 기존 쿼리 및 조인과 쉽게 결합할 수 있습니다. 데이터 과학자에게는 Python 및 LangChain, BigQuery DataFrames와 같은 도구와의 통합이 고급 머신러닝 애플리케이션을 빌드하는 데 자연스럽게 적합합니다.

  • 보장된 일관성: 새로운 데이터는 수집 즉시 VECTOR_SEARCH 함수를 통해 검색할 수 있으므로 검색 결과의 정확성과 일관성이 보장됩니다.

  • 사용한 만큼만 지불: BigQuery 벡터 검색 가격 책정 모델은 유연성을 고려하여 설계되었습니다. 이 '종량제(pay as you go)' 모델은 임시 분석과 가격 대비 성능이 뛰어난 배치 쿼리 모두에 적합합니다. 이 모델은 막대한 초기 투자 없이도 기능을 쉽게 사용해 볼 수 있다는 장점이 있습니다.

  • 보안은 기본: BigQuery의 보안 인프라는 행 수준 보안(RLS) 및 열 수준 보안(CLS)을 통해 강력한 데이터 액세스 제어를 제공합니다. 이러한 다층적 접근방식은 사용자가 승인된 데이터에만 액세스할 수 있도록 보장하여 보호를 강화하고 규정 준수를 보장합니다.

성장기: 고객과 함께 발전하다

초기 프로젝트에서 성공을 거둔 고객들이 더 많은 데이터를 BigQuery로 이전하면서 새로운 임베딩 기반 접근방식을 사용하기 위해 '업데이트'하고 있는 다양한 데이터 과학 워크플로에 대해 알려주었습니다. 벡터 검색으로 개선할 수 있는 다양한 애플리케이션의 몇 가지 예는 다음과 같습니다.

  • 검색 증강 생성(RAG)을 사용하는 LLM 애플리케이션: 벡터 검색은 관련 비즈니스 데이터를 제공하여 대규모 언어 모델(LLM)의 정확하고 그라운딩된 응답을 보장하는 데 도움이 됩니다.

  • 비즈니스 데이터에 대한 시맨틱 검색: 내부 및 외부 사용자 모두를 위한 강력한 자연어 검색 기능을 지원합니다. 예를 들어 마케팅팀은 'Jane과 비슷한 구매 내역을 가진 고객'을 검색하여 의미상 유사한 고객 프로필 목록을 받을 수 있습니다.

  • Customer 360 및 중복 제거: 임베딩을 사용하여 이름이나 주소와 같은 세부정보가 약간 다르더라도 유사한 고객 레코드를 식별합니다. 이는 데이터를 정리하고 통합하여 고객에 대한 정확한 단일 뷰(Single view)를 확보하는 효과적인 방법입니다.

  • 로그 분석 및 이상 징후 탐지: 로그 데이터를 임베딩으로 수집하고 벡터 검색을 사용하여 텍스트가 정확히 일치하지 않더라도 유사한 로그 항목을 빠르게 찾습니다. 이를 통해 보안팀은 잠재적인 위협과 이상 징후를 훨씬 더 빠르게 식별할 수 있습니다.

  • 제품 추천 강화: 시각적으로나 텍스트로 유사한 항목(예: 의류) 또는 의미상 관련된 보완 제품을 추천합니다.

현재: 규모 및 비용 효율성 개선

고객 사용량이 증가함에 따라 Google Cloud는 RAG 및 생성형 AI 워크로드를 넘어 배치 처리에 대한 상당한 수요를 관찰하면서 제품을 개선했습니다. 기존 벡터 데이터베이스와 달리 BigQuery의 향상된 배치 벡터 검색은 대규모 데이터 세트에 대한 고처리량 분석적 유사성 검색에 탁월합니다. 이를 통해 데이터 과학자는 기존 데이터 환경 내에서 수십억 개의 레코드를 동시에 분석하여 이전에는 불가능했던 다음과 같은 대규모 작업을 수행할 수 있습니다.

  • 대규모 클러스터링: 행동 임베딩을 기반으로 데이터베이스의 모든 고객을 그룹화

  • 포괄적인 이상 징후 탐지: 금융 원장의 모든 계정에 대해 가장 비정상적인 거래를 찾기

  • 대량 항목 분류: 수백만 개의 텍스트 문서 또는 제품 이미지를 동시에 분류

개발의 두 번째 단계에서는 벡터 검색 환경을 더욱 개선하기 위해 다음과 같은 새로운 가능을 출시했습니다.

  • ScaNN 색인을 사용하여 빌드된 TreeAH는 가격/성능 면에서 상당한 제품 차별화를 제공합니다. 고객의 데이터 과학팀은 더 많은 추천, 클러스터링, 데이터 파이프라인을 벡터 검색에 전환하고 있습니다. TreeAH를 사용한 결과 큰 개선이 있었습니다.

  • 학습 및 색인 성능과 사용성을 높이기 위한 다양한 내부 개선사항이 적용되었습니다. 예를 들어 대규모 색인 학습 작업을 백그라운드로 이동시켜 사용성과 확장성을 높이는 비동기 색인 학습을 추가했습니다. 또한 사용자에게 추가 비용을 부과하지 않으면서 인덱싱 성능을 개선하고 지연 시간을 줄이는 다양한 내부 최적화를 수행했습니다.

  • 저장된 컬럼을 통해 벡터 검색 성능을 개선할 수 있습니다.

    • 사용자는 벡터 검색 쿼리에서 저장된 컬럼에 사전 필터(Prefilters)를 적용하여 검색 정확도를 저하시키지 않으면서 검색 성능을 크게 최적화할 수 있습니다.

    • 사용자가 벡터 검색 쿼리에서 저장된 컬럼만 쿼리하는 경우 기본 테이블과의 비용이 많이 드는 조인을 피하여 검색 성능을 더욱 향상시킬 수 있습니다.

  • 파티션된 색인을 사용해 관련 없는 파티션을 건너뛰어 I/O 비용을 획기적으로 줄이고 쿼리 성능을 가속화합니다. 이는 날짜나 리전과 같은 파티션 컬럼을 자주 필터링하는 고객에게 특히 유용합니다.

  • 인덱스 모델 재빌드를 통해 시간이 지나도 벡터 검색 결과가 정확하고 관련성을 유지하도록 지원합니다. 기본 데이터가 진화함에 따라 이제 모델 드리프트를 선제적으로 수정하여 색인 다운타임 없이 벡터 검색 애플리케이션의 높은 성능을 유지할 수 있습니다.

미래를 향하여: 모든 것의 인덱싱

에이전트형 AI를 도입하려는 기업이 늘면서 데이터 플랫폼의 중요성이 그 어느 때보다 커졌습니다. 모든 비즈니스에 생산성을 위한 자체 AI 모드를 보유하는 세상을 상상하며, 관련 데이터를 검색(Retreiving)하는 것이 생산성의 핵심입니다. 여기에는 정형 및 비정형의 모든 관련 엔터프라이즈 데이터의 지능형 인덱싱이 포함되어 AI와 분석을 자동화합니다. 인덱싱과 검색은 Google의 핵심입니다. 앞으로도 관련 기술 혁신을 공유해 드리겠습니다.

게시 위치