SnowFlake on Azure Cloud Architecture

안녕하세요,
제 분야인 클라우드가 아닌, 데이터를 다루다 보니
공부하면서 조금 기초적인 내용을 다룰 예정입니다 :)
대용량 정형 / 비정형 데이터를 통합적으로 관리하고 분석하기 위해 파이프라인 아키텍처를 구축하는데요,
현업에서 사용되는 Azure Cloud + SnowFlake 아키텍처 및 기능, 데이터 처리 방식을 알아보겠습니다.

01. Data pipe line Architecture
✅ 전체 흐름 개요
[Data Source] → [Azure Data Factory / Synapse] → [Azure Blob Storage] → [SnowFlake] →
[Power BI / AI 분석]
✅ 주요 구성 요소
- Azure Data Factory / Synapse Analytics
- ETL/ELT 파이프라인을 구성하여 다양한 소스에서 데이터를 수집, 변환, 적재
- Snowflake V2 커넥터를 통해 직접 연결 가능
- Azure Blob Storage / Data Lake Gen2
- 정형/비정형 데이터를 저장하는 중간 스테이지 역할
- Snowflake는 외부 스테이지로 Blob Storage를 참조하여 데이터를 로딩/언로딩 가능
- SnowFlake
- 클라우드 기반 데이터 웨어하우스
- 정형 데이터는 테이블로, 비정형 데이터는 FILE 타입으로 저장 가능
- Snowpipe를 통해 실시간 스트리밍 데이터 로딩 지원
- Snowpark를 통해 Python/Java/Scala 기반 데이터 처리 가능
- Power BI / AI 분석 플랫폼
- Snowflake에서 처리된 데이터를 시각화하거나 AI 모델 학습에 활용
- Cortex AI를 통해 비정형 데이터 분석 및 LLM 기반 검색 증강 생성(RAG)도 가능
1-1. 생소한 언어 알아보기.
좀 더 알아보기 이전에, 생소한 언어에 대해서 공부해보고자 합니다.
📌 ETL/ELT 파이프라인 이란?
데이터 처리 프로세스를 일컫는다고 하는데, 두 방식의 주요 차이점은 변환 작업의 위치 차이라고 합니다.
- ETL (추출, 변환, 로드)
- 추출(Extract) : 여러 소스 시스템(Database, API 등)에서 데이터를 가져온다.
- 변환(Transform) : 데이터가 대상 시스템에서 사용될 수 있도록 특정 형식으로 변환, 정리, 통합
- 로드 (Load) : 데이터 변환을 먼저 거치므로 데이터 품질을 높이고 보안성 확보에 유리하다.
- ELT (추출, 로드, 변환)
- Extract : 원본 데이터를 가져온다.
- Load : 원본 데이터를 변환하지 않고 그대로 Data Lake, Data warehouse에 적재한다.
- Transform : 적재된 데이터를 필요에 따라 변환한다.
ELT 프로세스의 특징은 원본 데이터의 모든 정보를 유지하면서 필요에 따라 유연하게 변환할 수 있어
빅데이터 환경에서 널리 사용됩니다.
📌 LLM 기반 검색 증강 생성 (RAG)이란?
대규모 언어 모델(LLM)이 답변을 생성하기 이전에 외부 데이터 베이스에서 관련 정보를 검색하여,
이를 바탕으로 더 정확하고 최신 정보를 반영한 답변을 만드는 기술이라고 합니다.
RAG : LLM의 답변 정확성을 높이고 최신 정보나 특정 기업의 내부 지식에 기반한 답변을 제공하는데 유용함.
- 검색 (Retrieval) : 사용자의 질문이 입력되면 외부 데이터 소스에서 질문과 가장 관련성이 높은 정보를 검색함. 이 데이터는 최신 정보나 사내 문서 등 다양할 수 있다.
- 증강 (Augmented) : 검색된 정보를 원래의 사용자 질문에 추가하여, 모델이 답변을 생성하는데 충분한 컨텍스트를 제공한다.
- 생성 (Generation) : 검색된 정보와 원래 질문을 결합한 내용을 기반으로 LLM이 최종 답변을 생성함.
02. 정형 vs 비정형 데이터 처리 방식
✅ 정형 데이터
- CSV, Parquet, JSON 등 구조화된 데이터
- Azure Data Factory → Blob → Snowflake COPY INTO 명령으로 적재
- Snowflake 내에서 SQL 기반 변환 및 분석
✅ 비정형 데이터
- 이미지, 오디오, PDF, 로그, 문서 등
- Azure Blob에 저장 후 Snowflake 외부 스테이지로 연결
- Snowflake Cortex AI + Snowpark로 처리 및 분석
- 벡터 임베딩 생성
- LLM 기반 질의 응답
- RAG 아키텍처 구축
📌 요약
정형화된 데이터 → SnowFlake 테이블에 직접 저장되어 내부에서 처리됨.
비정형 데이터 → 외부 스토리지 (Azure Blob 등)에 저장 후 참조되어 처리.
📌 구조
| 구분 | 저장 위치 | 처리 방식 | SnowFlake 에서 직접 처리? |
| 정형 데이터 | SnowFlake 내부 테이블 | SQL, dbt, Snowpark | 가능. |
| 비정형 데이터 | 외부 스테이지 (Azure Blob Storage) | Python, Snowpark, Cortex AI | 일부만 가능 (분석 O, 저장 X) |
03. Architecture의 실용성
가장 궁극적인 목적은 데이터를 모아서 저장하고, 분석해서 Insight를 얻는 것!
예를 들어, 기업이 다양한 시스템에서 발생하는 데이터를 수집한다고 가정해보자.
- ERP, CRM, WEB log, IoT 센서, SNS, 고객 설문 등.
이 데이터는 정형화(표 형태)된 데이터 일수도 있고, 비정형 데이터(문서, 이미지, 로그 등) 일수도 있다.
이걸 그냥 저장만 해두면 무슨 의미가 있을까? 활용을 해보자.
수집: Azure Data Factory 같은 도구로 다양한 소스에서 데이터를 가져옴
저장: Azure Blob Storage에 임시 저장하거나 Snowflake에 직접 저장 (데이터 방식에 따라 다름)
처리/분석:
- SQL로 정형 데이터를 분석
- Python/AI 모델로 비정형 데이터를 분석 (예: 이미지 분류, 문서 요약)
- Snowflake의 Snowpark나 Cortex AI를 통해 AI 분석 가능
활용:
- Power BI로 시각화
- 예측 모델로 미래 트렌드 분석
- 챗봇이나 자동화 시스템에 적용
🔍 예시 시나리오
고객 이탈 가능성을 예측해볼까?
1. 데이터 수집 : 고객 행동 로그, 구매 이력, 상담 기록 등.
2. 저장 : Azure Blob → Snowflake
3. AI 분석 :
- Python 모델로 고객 이탈 가능성 예측
- Snowflake에서 직접 모델 실행 가능 (Snowpark)
4. 활용 : 이탈 가능성이 높은 고객에게 마케팅 자동 발송, Power BI로 이탈 트렌드 시각화 등.