현대 기업은 비즈니스 전반에서 수백만 개의 데이터 소스와 신호를 수집하고 관리합니다. Snowflake는 내부적으로 Snowflake를 활용해 모든 쿼리와 웨어하우스, 클릭에서 발생하는 비즈니스 시스템 및 제품 텔레메트리를 대규모로 모니터링합니다. 하지만 공통된 이해가 없다면 페타바이트 규모의 가공 전 데이터는 실행의 기반이 아니라 서로 다른 답변을 낳는 원인이 됩니다.
Snowflake는 사람과 AI 에이전트 모두 데이터를 대규모로 활용할 수 있도록 내부 시맨틱 계층을 체계적으로 구축했습니다. 이 글에서는 시맨틱을 활용해 내부 컨텍스트 계층을 구축한 방법과 그 과정에서 얻은 모범 사례를 소개합니다.

자료 1: Snowflake 내부 환경에서는 시맨틱 계층을 통해 모든 엔터티가 일관되고 정확한 데이터를 쿼리할 수 있습니다.
병목 원인은 데이터가 아니라 컨텍스트
방대한 내부 텔레메트리는 강력한 자산이지만, 그 규모가 방대한 만큼 오류가 발생했을 때 문제를 해결하기도 어렵습니다. “활성 고객이란 무엇인가?”라는 단순해 보이는 질문을 예로 들어 보겠습니다. 테이블과 지표 정의에 따라 이 질문에 대한 답은 다음과 같이 달라질 수 있습니다.
login_counts 테이블에서는 WHERE days_since_last_login < 30 조건을 충족하면 활성 고객입니다.
customers 테이블에서는 WHERE credits_consumed > 0 and account_type != ‘TRIAL’ 조건을 충족하면 활성 고객입니다.
한편 customers_with_accounts 테이블에서는 리전 식별자 없이 COUNT(DISTINCT account_id)로 집계한 고객을 활성 고객으로 봅니다.
내부 사용 사례와 고객 사례에 따르면, 데이터의 의미를 명확히 하는 부담은 대개 데이터 사이언스 팀에 집중됩니다. 담당자가 쿼리를 설계한 뒤 신뢰할 수 있는 데이터 사이언티스트에게 검증을 요청하면, 데이터 사이언티스트가 오류와 함께 놓치기 쉬운 문제를 찾아냅니다.
AI가 개입하면 이러한 정합성 문제는 기하급수적으로 커집니다. 새로운 지표와 데이터 소스가 빠르게 늘어나면서 숙련된 분석가조차 파악하기 어려운 정보 격차가 발생합니다. Cortex Agent가 제시한 수치와 레거시 대시보드의 수치가 다르면 어느 소스를 신뢰해야 할지 판단하기 어렵습니다.
모든 AI 및 BI 인터페이스를 아우르는 하나의 정의
모든 인터페이스에는 데이터의 의미, 즉 일관된 컨텍스트가 필요하며, 시맨틱 계층으로 이를 구현할 수 있습니다. 시맨틱 뷰는 다운스트림 사용자와 가공 전 데이터 테이블 사이에 위치하는 최상위 오브젝트로, 거버넌스가 적용된 비즈니스 용어를 물리적 데이터베이스 스키마로 변환합니다.
가공 전 테이블을 대시보드나 AI 에이전트에 직접 노출하는 대신, 시맨틱 뷰는 물리적 테이블에서 팩트, 차원, 지표로 이어지는 데이터 흐름을 표준화합니다. 이를 통해 사용자와 도구는 데이터를 쿼리하기 전에 그 의미에 대한 일관된 컨텍스트를 확보할 수 있습니다.

자료 2: 시맨틱 뷰는 물리적 테이블 위에 논리적 이름, 지표, AI 메타데이터를 구성해 다운스트림 활용을 지원합니다.
AI 에이전트가 시맨틱 뷰를 사용해 데이터를 대규모로 쿼리하면 두 가지 이점을 얻을 수 있습니다.
더 빠른 실행: 가공 전 데이터를 쿼리하는 에이전트는 여러 데이터 소스를 찾고 이해하며 샘플링하는 데 많은 시간을 소비합니다. 대규모로 운영할 경우 이러한 프로세스가 런타임의 대부분을 차지할 수 있습니다. 반면 시맨틱 뷰를 사용하면 에이전트가 곧바로 SQL 실행 단계로 이동할 수 있습니다.
비용 절감: 에이전트는 시맨틱 뷰의 테이블 관계와 조인 데이터를 활용해 토큰 효율을 크게 높일 수 있습니다. 구체화 기능을 적용하면 시맨틱 SQL이 사전 집계된 데이터를 기본적으로 활용하므로 반복 계산이 줄어듭니다.
시맨틱 중심의 데이터 아키텍처를 구축하면 스택 전반에서 효과가 빠르게 누적됩니다.
정확도 향상: 모델에 정확한 비즈니스 컨텍스트를 제공합니다. AtScale의 벤치마크 테스트에서는 시맨틱 컨텍스트를 추가한 결과, TPC-DS 기반의 비즈니스 질문 40개에서 text-to-SQL 정확도가 20%에서 90% 이상으로 향상되었습니다.
단일 진실 공급원: 도구별로 분리된 시맨틱을 하나의 시맨틱 계층으로 통합합니다.
무료 거버넌스: 시맨틱 뷰와 지표 오브젝트에 적용되는 Snowflake의 액세스 제어를 기본 기능으로 활용합니다.
진정한 셀프서비스: 모든 사용자가 애드혹 자연어 질문을 스스로 처리할 수 있도록 지원합니다.
"시맨틱 뷰를 통해 우리는 데이터의 단일 신뢰 API(Single Trusted API), 즉 골든 계층을 구축할 수 있습니다. 또한 시맨틱 뷰 구체화를 활용하면 이 단일 시맨틱 API를 모든 다운스트림 데이터 활용 환경에서 사용할 수 있으며, 특히 쿼리 성능이 중요한 워크로드에서도 동일하게 활용할 수 있습니다. 이제 대시보드, AI, 애드혹 워크플로우의 모든 쿼리는 동일한 신뢰할 수 있는 데이터 API를 통해 실행됩니다."
Zachary Blackwood
Staff Data Scientist at Snowflake
Snowflake의 내부 제품 데이터 사이언스 팀은 사내 시맨틱 계층을 활용하는 에이전트로 전사에서 접수되는 제품 관련 질문을 처리합니다. 2025년 7월 한 달 동안에만 400명이 넘는 내부 사용자가 제품 데이터용 Data Science Agent와 시맨틱 계층을 통해 5,400건 이상의 쿼리를 실행했습니다. 같은 기간 영업, HR, 지원을 비롯한 여러 영역에서 Snowflake 전 팀의 내부 직원 5,600여 명과 에이전트가 광범위한 시맨틱 계층을 활용해 32만 건 이상의 쿼리를 실행했습니다.

자료 3: 통합 시맨틱 계층은 모든 도구와 인터페이스에 일관되고 거버넌스가 적용된 데이터 의미를 제공합니다.
시맨틱 계층 구축 모범 사례
시맨틱 뷰의 버전 관리, 테스트 및 평가
시맨틱 계층도 프로덕션 소프트웨어와 동일한 수준으로 엄격하게 관리해야 합니다. Snowflake의 네이티브 데이터 빌드 도구인 dbt와의 통합을 통해 지표에 완전한 버전 관리와 동료 검토를 적용하고, 지속적 통합 및 지속적 전달(CI/CD)을 구현할 수 있습니다. Snowflake에서는 주로 코드로 시맨틱 뷰를 구축하지만, UI를 활용해 테스트하고 코드에 반영할 개선 사항을 제안합니다. UI와 기반 코드가 완벽하게 동기화되므로 사용자는 Snowflake UI에서 뷰를 구성하고 필드를 리포지토리에 커밋하는 작업을 자유롭게 오갈 수 있습니다.
시맨틱 뷰를 평가하려면 사람들이 실제로 묻는 질문에 액세스할 수 있어야 합니다. 평가에 유용한 고품질 신호는 인기 있는 대시보드 타일입니다. 대시보드 타일은 특정 질문에 답하기 위해 만들어지고 사용되기 때문입니다. 자주 묻는 질문도 기록해 평가 세트를 지속적으로 개선합니다.
데이터 엔지니어링을 통한 성능 최적화
느린 쿼리와 비효율적으로 구성된 테이블 위에 시맨틱 계층을 구축하면 AI 에이전트의 속도도 느려집니다. 초기에는 수십억 건 규모의 가공 전 Event Table 여러 개를 시맨틱 뷰에 직접 연결했습니다. 사용자가 질문할 때마다 뷰가 테이블을 전체 탐색하고 조인하면서 지연 시간이 크게 늘어났습니다.
처음에는 Dynamic Table을 활용해 사전 집계된 데이터 슬라이스를 직접 구축하고 관리했습니다. 각 대시보드는 필요한 롤업 수준과 데이터 상세 수준에 맞춰 구성되었습니다. 하지만 새로운 질문과 도메인을 지원하도록 시맨틱 범위를 확장하면서 파이프라인과 테이블을 수동으로 추가해야 했고, 빠르게 늘어나는 데이터 자산의 관리 부담도 커졌습니다.
시맨틱 뷰 구체화를 활용하면 세부 수준의 소스 테이블을 기반으로 시맨틱 뷰를 직접 모델링하고, 빠른 처리가 필요한 차원과 지표 조합을 지정할 수 있습니다. Snowflake는 이러한 데이터 슬라이스를 백그라운드에서 지능적으로 관리해 응답 시간을 단축합니다.
또한 Snowflake CoCo의 내장형 시맨틱 뷰 기능은 이러한 사용 사례에 특화되어 있어, 시맨틱 및 데이터 프로세스의 초안을 작성하고 개선하는 데 활용했습니다.
철저한 큐레이션과 지능형 라우팅
복잡하고 일관성 없는 시맨틱 계층은 지표 표준화의 목적 자체를 무의미하게 만듭니다. Snowflake는 자주 조회되는 핵심 제품 영역에 대해서는 특정 질문에 정확히 답할 수 있도록 CoCo를 사용해 시맨틱 뷰를 세밀하게 큐레이션합니다. 또한 모든 쿼리는 반환된 결과와 함께 Snowflake에 기록됩니다. 이를 기반으로 새로운 시맨틱 뷰와 검증된 쿼리를 손쉽게 구축하고, 사용자의 실제 질문에 맞춰 지원 범위를 지속적으로 확장할 수 있습니다.
지능형 라우팅을 위해 Cortex Agents는 사용자 지정 라우팅 지침에 따라 모든 시맨틱 뷰를 자동으로 탐색하고, 주어진 쿼리에 가장 적합한 컨텍스트를 찾습니다. 또한 롱테일 데이터를 폭넓게 지원하기 위해 Cortex Sense를 활용합니다. Cortex Sense는 조직 전체의 데이터 자산을 평가해 각 질문을 가장 관련성이 높은 데이터 세트로 라우팅하도록 지원합니다.
지금 바로 시맨틱 계층 구축하기
원시 데이터만으로는 질문에 답할 수 없습니다. 답을 만드는 것은 컨텍스트입니다. 시맨틱 계층은 비즈니스 로직을 한 번 정의해 에이전틱 엔터프라이즈 전반의 모든 대시보드와 Streamlit 앱, Cortex Agent를 지원하는 ‘골든 계층’입니다.
파일 하나만으로도 유용한 시맨틱 뷰 구축을 시작할 수 있습니다. 아래 예제에서는 YAML을 사용하지만, SQL로 시맨틱 뷰를 정의하는 방식도 완벽하게 지원합니다.
name: account_activity_model
tables:
- name: daily_account_usage
base_table:
database: core
schema: metrics
table: daily_account_usage
dimensions:
- name: region
expr: region
data_type: VARCHAR
description: "The geographic region of the account." # AI metadata
synonyms: ["location", "geography", "area"] # AI metadata
metrics:
- name: compute_spend
expr: SUM(credits_used)
description: "The total number of Snowflake credits consumed." # AI metadata
synonyms: ["cost", "spend", "credits used", "usage"] # AI metadata
verified_queries: # AI metadata
- name: total_spend
question: "What is the total compute spend?"
use_as_onboarding_question: true
sql: |
SELECT
SUM(credits_used) AS compute_spend
FROM core.metrics.daily_account_usage
ORDER BY compute_spend DESC
이제는 기본 조인 구조나 가공 전 컬럼명을 일일이 고려할 필요 없이 표준 SQL을 사용해 시맨틱 뷰를 직접 쿼리할 수 있습니다.
SELECT
region,
AGG(compute_spend) as compute_spend
FROM account_activity_model
GROUP BY region
ORDER BY compute_spend DESC;
성능을 더욱 높이려면 시맨틱 뷰를 구체화해 차원(region)별 지표(compute_spend)를 미리 집계할 수도 있습니다.
ALTER SEMANTIC VIEW account_activity_model SET MAX_STALENESS = '1 hour';
ALTER SEMANTIC VIEW account_activity_model
ADD MATERIALIZATION spend_by_region
WAREHOUSE = semantic_wh
AS
DIMENSIONS
region
METRICS
compute_spend;
Snowflake 시맨틱 뷰는 Apache Ossie™(인큐베이팅 단계)와도 상호 운용됩니다. Ossie는 시맨틱 및 비즈니스 컨텍스트 모델을 위한 공급업체 중립적 개방형 표준입니다. 따라서 원하는 도구와 플랫폼에서 시맨틱을 자유롭게 활용할 수 있습니다. 또한 시맨틱 모델이 다른 위치에 저장되어 있더라도 단 한 번의 함수 호출만으로 언제든 Snowflake에서 불러와 사용할 수 있습니다.
SELECT SYSTEM$READ_OSSIE_YAML_FROM_SEMANTIC_VIEW('db.schema.account_activity');
시맨틱은 전체 AI 및 분석 환경 전체를 연결하는 공통 기반입니다. 지금 바로 Snowflake를 사용해 거버넌스가 적용된 단일 진실 공급원을 구축해 보세요. 후속 블로그에서는 실제 운영 환경에서 시맨틱을 활용하는 실제 고객 사례를 소개할 예정입니다.

