Data Engineering/Governance

SnowFlake Data Flow Analysis

"Everything about infra" 2025. 11. 10. 18:13

 

안녕하세요,

저번 시간에는 SnowFlake on Azure Cloud에 대한 아키텍처를 간단히 알아보는 시간이었습니다.

 

아키텍처는 현업에서 어떻게 사용할것인지 목적성에 따라 많이 달라지는데요,

제가 포스팅 할 내용은 "데이터 분석 플랫폼 구축" 아키텍처 입니다.

 

01. 현재 아키텍처의 목적성

📌 데이터 분석 플랫폼 구축

출처 : LinkdIn (Koushik Das 님) Snowflake: Architecture, Examples, and Integration with Cloud Platforms

오늘 소개할 아키텍처와 가장 유사한 다이어그램이 있어서 예시로 가져왔습니다.

 

현재 아키텍처의 목적성

  • (데이터 분석 및 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에 저장됩니다.

 

감사합니다 :)