SnowFlake Data Flow Analysis

안녕하세요,
저번 시간에는 SnowFlake on Azure Cloud에 대한 아키텍처를 간단히 알아보는 시간이었습니다.
아키텍처는 현업에서 어떻게 사용할것인지 목적성에 따라 많이 달라지는데요,
제가 포스팅 할 내용은 "데이터 분석 플랫폼 구축" 아키텍처 입니다.
01. 현재 아키텍처의 목적성
📌 데이터 분석 플랫폼 구축

오늘 소개할 아키텍처와 가장 유사한 다이어그램이 있어서 예시로 가져왔습니다.
✅ 현재 아키텍처의 목적성
- (데이터 분석 및 BI 시각화 중심) : 기업 데이터 분석 플랫폼에서 흔하게 사용중.
- SnowFlake를 Data warehouse로 사용, Power BI로 시각화 구조
- 운영 + 분석 이중 목적
- VM에서 웹앱 운영, SQL DB로 트랜잭션 관리, 동시에 Data Factory / Databricks로 파이프라인 구축.
- 확장성
- Databricks에서 비정형 데이터 처리 및 추후에 ML 확장 가능성 확보.
✅ 다른 아키텍처의 목적성
1. PaaS 기반 아키텍처
- 웹앱을 VM 대신에 Azure App Service 에서 배포
- Data Factory 대신 Synapse Analytics로 ETL 파이프라인 구축
- Snowflake 대신 Azure Synapse Data Warehouse 사용 등.
2. Serverless 기반 아키텍처
- 웹앱을 Azure Functions로 운영
- Event-driven 데이터 처리
- Cosmos DB + Data Lake + Power BI
02. Data Flow
위와 같은 샘플 아키텍처를 기반으로 살을 덧붙혀서, Data Flow를 Layer별로 정리해보자.
📌 Application Layer
- 웹앱은 VM에서 직접 호스팅하거나, Azure App Service로 배포 (IaaS, PaaS 방식이 존재)
- 웹앱은 SQL Server + SQL Database에 연결하여 운영 데이터를 저장한다.
- 연결 문자열은 어플리케이션 설정에 있으며 인증 정보는 Key Vault에서 관리가 가능함.
📌 Data pipeline
1. 정형 데이터 흐름
- SQL Database에 저장된 운영 데이터를 ADF (Azure Data Factory)가 추출한다.
- SnowFlake로 적재 (ODBC 커넥터 및 IR을 통해 연결)
- SnowFlake는 BI 분석용 데이터 웨어하우스 역할을 수행한다.
2. 비정형 데이터 흐름
- 웹앱 로그, 파일 등 비정형 데이터는 ADF를 통해 Blob Storage에 스테이징.
- Azure Databricks가 Blob에서 데이터를 읽어 Spark 기반으로 변환 및 정형화
- 변환된 데이터 (정형화된) 는 Snowflake로 적재
3. 실시간 데이터 흐름
- 웹앱 또는 IoT에서 발생하는 이벤트는 Event Hubs로 수집
- Databricks에서 처리 후 Snowflake로 적재
4. 데이터 파이프라인 오케스트레이션 서비스
- Logic apps를 활용해 트리거 기반 워크플로 자동화, 외부시스템 연동, 파이프라인 실행 순서 제어 등.
- 트리거 기반 워크플로 자동화 (예: SharePoint에 파일 업로드 → ADF 실행)
- 외부 시스템 연동 (Office 365, SharePoint, Teams API Connection)
- 파이프라인 실행 순서 제어 (ADF → Blob → Databricks → Snowflake)
📌 분석 및 시각화
- Snowflake에 적재된 데이터는 Power BI를 통해 시각화 및 리포팅
- BI는 Snowflake에서 직접 데이터를 조회하여 사용자에게 제공
📌 보안 및 관리
- Key Vault는 Snowflake, SQL Server, ADF, Databricks 연결에 필요한 인증 정보 관리
- Virtual Network와 Private Endpoint를 통해 네트워크 보안 강화
이쯤되면 궁금해 하실거라고 생각해서 아래와 같이 정리해봅니다.
그렇다면 정형, 비정형 데이터 처리에 둘다 쓰이는 ADF의 역할은 뭘까?
2-1. 역할에 대한 궁금증 해소
✅ ADF (Azure Data Factory) 역할은?
저번 시간에서 ETL/ELT 파이프라인을 구성하여 데이터 수집, 변환, 적재를 도와준다고 소개하였으니
이번에는 데이터 흐름에 관련하여 설명을 드리고자 합니다.
1. 정형 데이터 ADF 처리 방식
- SQL Database → ADF → Snowflake
- ADF가 SQL DB에서 데이터를 추출(Extract), 변환(Transform), 적재(Load)합니다.
- 변환은 주로 스키마 매핑, 포맷 변경 등 간단한 작업.
2. 비정형 데이터 ADF 처리 방식
- 웹앱 로그/파일 → Logic App → Blob Storage → Databricks → Snowflake
- ADF가 비정형 데이터를 Blob Storage에 스테이징하는 역할을 합니다.
- Databricks가 ETL의 Transform 단계를 담당
- Spark 기반으로 비정형 데이터를 정형화(예: JSON → 테이블, 이미지 메타데이터 추출)
- 이후 Load 단계에서 Snowflake로 적재.
즉, 비정형 데이터도 ADF에서 ETL 파이프라인을 거치지만 ADF + Databricks가 협업하여 처리한다.
✅ 비정형 데이터 흐름에는 SQL Database가 없다!!
SQL Database는 정형 데이터(테이블 구조)를 저장하는 관계형 DB입니다.
따라서, 비정형 데이터(Log, Image, JSON 등)는 SQL DB에 넣을 수 없다.
이유는 스키마가 없거나 매우 다양하며 크기가 크고 구조가 복잡하기 때문이에요!
즉, 비정형 데이터는 스키마 없이 파일을 저장할 수 있는 Blob Storage에 저장됩니다.

감사합니다 :)