Snowflake Connect: AI - 1월 27일 일정 안내

Snowflake의 최신 혁신 기술로 데이터와 AI의 모든 잠재력을 활용하세요.

데이터 레이크:아키텍처 및 사용 사례

데이터 레이크는 오늘날 데이터가 갖는 규모, 다양성, 속도에 대응하도록 설계된 현대 데이터 인프라의 핵심 요소로 자리 잡았습니다.

  • 개요
  • 데이터 레이크란?
  • 비교: 데이터 레이크 vs. 데이터 웨어하우스
  • 데이터 레이크의 이점
  • 보안 데이터 레이크 아키텍처
  • 지원되는 데이터 유형
  • 데이터 수명 주기
  • 데이터 레이크가 중요한 이유
  • 데이터 레이크의 과제 및 사용 사례
  • 데이터 레이크 FAQ
  • Snowflake 고객의 데이터 레이크 사용 사례
  • 리소스

개요

점점 더 데이터 중심의 세상으로 재편되는 세상에서 유연하고 확장 가능하며 비용 효율적인 데이터 스토리지 및 분석 솔루션의 필요성은 그 어느 때보다 높아졌습니다. 데이터 레이크는 오늘날 데이터가 갖는 규모, 다양성, 속도에 대응하도록 설계된 현대 데이터 인프라의 핵심 요소로 자리 잡았습니다.

이 페이지에서는 데이터 레이크의 정의뿐만 아니라, 데이터 레이크가 대규모 환경에서 효과적으로 작동하도록 하는 기본 아키텍처에 대해서 자세히 살펴봅니다.

데이터 레이크란?

데이터 레이크는 조직이 정형, 반정형, 비정형 등 모든 유형의 데이터를 가공 전 형식으로 저장할 수 있는 중앙 집중식 리포지토리입니다. 기존의 데이터베이스나 데이터 웨어하우스와 달리, 데이터 레이크는 데이터를 저장하기 전에 별도의 스키마나 형식 정의가 요구되지 않아 매우 유연하고 빠르게 작동합니다.

주요 특징

  • 읽기 스키마: 데이터는 수집 시점이 아닌 액세스 시점에 해석됩니다.
  • 다양한 데이터 유형 지원: CSV 파일 및 JSON 로그부터 이미지, 비디오까지 지원합니다.
  • 다양한 언어 지원: SQL, Spark를 포함한 다양한 언어를 지원합니다.
  • 확장성 및 비용 효율성: 주로 클라우드 기반의 저렴한 오브젝트 스토리지에 구축됩니다.
  • 다양한 사용자를 위한 설계: 데이터 분석가부터 데이터 사이언티스트, 엔지니어까지 지원합니다.
  • 전체 데이터 수명 주기를 포괄하는 설계: 수집 및 저장, 처리 및 변환부터 고급 분석, AI까지 지원합니다.

비교: 데이터 레이크 vs. 데이터 웨어하우스

데이터 레이크와 데이터 웨어하우스는 모두 데이터를 저장하고 분석하는 데 사용되지만, 중요한 부분에서 차이가 있습니다.
 

  • 데이터 구조: 데이터 레이크는 미리 정의된 구조 없이 가공 전 및 처리되지 않은 데이터를 저장합니다. 또한, 데이터에 접근하여 분석할 때에만 해당 스키마를 정의하는 ‘읽기 스키마’ 접근 방식을 활용합니다. 데이터 웨어하우스는 데이터를 저장하기 전에 미리 정해진 스키마에 맞도록 데이터를 정리하고 변환해야 하는데, 이를 ‘쓰기 스키마’라고 합니다.

  • 데이터 유형: 데이터 레이크는 비정형, 반정형, 정형 데이터를 포함한 모든 데이터 유형을 수용할 수 있습니다. 전통적인 데이터 웨어하우스는 주로 분석 준비가 완료된 정형 데이터를 저장합니다.

  • 사용자 및 목적: 데이터 웨어하우스는 주로 비즈니스 인텔리전스(BI) 및 보고 용도에 최적화되어 있으며, 비즈니스 분석가들이 사용합니다. 데이터 레이크는 종종 데이터 사이언티스트와 데이터 엔지니어가 더 폭넓은 데이터 유형에 대한 고급 분석 및 머신러닝을 위해 사용합니다.

  • 하이브리드 접근 방식: 많은 조직들이 데이터 레이크의 유연성과 데이터 웨어하우스의 성능을 모두 얻기 위해 이 두 시스템을 결합한 ‘레이크하우스’ 아키텍처를 채택하고 있습니다.

데이터 레이크의 이점

데이터 레이크는 현대적인 데이터를 대규모로 관리하고 분석하려는 조직들에게 많은 이점을 제공합니다.
 

  • 비용 효율적인 스토리지: 데이터 레이크는 종종 클라우드에 있는 저렴한 오브젝트 스토리지를 기반으로 구축되어, 전통적인 시스템에 비해 저장 비용을 절감할 수 있습니다. 이로 인해 미리 정의된 구조 없이도 방대한 양의 데이터를 저장하는 것이 비용 효율적입니다.

  • 빅 데이터에 대한 확장성: 데이터 레이크는 오늘날의 방대한 양과 다양한 유형의 데이터를 처리하도록 설계되었으며, 페타바이트 규모의 데이터도 손쉽게 지원할 수 있습니다. 또한, 확장성이 매우 뛰어나며, 비즈니스 요구사항에 맞춰 성장을 이룰 수 있습니다.

  • 다양한 데이터 유형에 대한 유연성: 데이터 레이크는 정형, 반정형 또는 비정형 데이터에 상관없이 모든 소스로부터 모든 유형의 데이터를 어떤 속도로든 수집할 수 있습니다. 이 ‘읽기 스키마’ 접근 방식은 데이터 탐색에 있어 최대한의 유연성을 허용합니다.

  • 고급 분석 및 AI 준비성: 데이터 레이크는 광범위한 분석 워크로드를 위한 유연한 기반 역할을 수행하며, 고급 분석, 머신러닝 및 실시간 분석을 지원합니다. 또한, 대규모의 가공 전 데이터를 제공할 수 있어 AI 및 머신러닝 모델을 훈련시키는 데 필수적입니다.

보안 데이터 레이크 아키텍처

데이터 레이크가 ‘개념’이라면, 데이터 레이크 아키텍처는 데이터 레이크가 효율적으로 기능하도록 뒷받침하는 근본적인 구조와 구성 요소를 의미합니다. 이는 대규모 데이터 세트의 수집, 저장, 처리, 탐색, 거버넌스 및 소비를 관리하도록 설계된 계층화된 시스템입니다.

데이터 레이크 아키텍처의 핵심 구성 요소

계층

기능

수집 계층

스트리밍, 배치, IoT, API 등 다양한 소스에서 데이터를 가져옵니다.

스토리지 계층

확장 가능한 오브젝트 스토리지에 가공 전 데이터를 저장합니다.

메타데이터 및 카탈로그 계층

데이터를 인덱싱하고 태그 지정하거나 정리하여 검색 가능성을 높입니다.

처리 계층

배치 및 실시간 처리 도구를 통해 데이터 변환을 처리합니다.

액세스 계층

쿼리, 탐색 및 분석 기능을 제공합니다.

거버넌스 및 보안 계층

데이터 개인정보 보호, 액세스 제어, 감사 및 규정 준수를 관리합니다.

지원되는 데이터 유형

데이터 레이크는 방대한 양의 데이터를 가공 전 네이티브 형식으로 저장하도록 설계되어 다양한 데이터 유형을 지원합니다. 이러한 데이터는 크게 세 가지 주요 유형으로 분류할 수 있습니다.

정형 데이터

정형 데이터는 관계형 데이터베이스나 스프레드시트처럼 매우 체계적으로 구성되어 행과 컬럼으로 깔끔하게 정리됩니다. 사전 정의된 스키마가 있어 검색, 분석 및 관리가 용이합니다. 정형 데이터 유형의 예는 다음과 같습니다.

  • 관계형 데이터베이스 테이블: 고정된 열과 컬럼으로 구성된 데이터
  • 스프레드시트(예: CSV 파일): 정의된 컬럼이 있는 표 기반 데이터
  • 수치 데이터: 정수, 부동 소수점 숫자, 소수
  • 카테고리형 데이터: 제한된 수의 값이 있는 레이블 또는 카테고리
  • 날짜 및 시간 데이터: 타임스탬프, 날짜 및 시간 값

반정형 데이터

반정형 데이터는 엄격한 표 형식 구조를 따르지 않지만, 몇 가지 체계적 속성을 지니고 있어 비정형 데이터보다 분석이 용이합니다. 시맨틱 요소를 구분하고 계층 구조를 적용하는 태그나 마커를 포함하는 경우가 많습니다. 반정형 데이터의 예는 다음과 같습니다.

  • JSON(JavaScript Object Notation): 키-값 쌍과 중첩된 오브젝트를 사용하는 경량 데이터 형식
  • XML(eXtensible Markup Language): 사람과 기계가 모두 읽을 수 있는 형식으로 문서를 인코딩하기 위한 규칙 집합을 정의하는 마크업 언어
  • 구조가 복잡한 CSV(Comma Separated Values): 기본적으로 CSV는 정형 데이터지만, 컬럼 수가 다양하거나 필드 내에 중첩된 데이터가 있는 경우 반정형 데이터가 될 수 있음
  • 로그 파일: 타임스탬프, 이벤트 유형 및 메시지를 포함하는 경우가 많으며, 구문 분석이 가능함
  • NoSQL 데이터베이스: 항목마다 스키마가 달라질 수 있는 문서 또는 키-값 저장소
  • HTML(HyperText Markup Language): 주로 웹 페이지에 사용되지만 정형 요소와 데이터를 포함함
  • YAML(YAML Ain't Markup Language™): 모든 프로그래밍 언어를 위한 인간 친화적인 데이터 직렬화 표준

비정형 데이터

이 데이터는 사전 정의된 형식이나 구성이 없어 기존 방식으로는 분석하기 어렵습니다. 인사이트를 추출하려면 자연어 처리나 머신러닝과 같은 전문 도구와 기술이 필요한 경우가 많습니다. 비정형 데이터 유형의 예는 다음과 같습니다.

  • 텍스트 파일: 문서(.txt, .doc, .pdf), 이메일, 소셜 미디어 게시물
  • 이미지 파일: JPEG, PNG, GIF
  • 오디오 파일: MP3, WAV
  • 비디오 파일: MP4, AVI, MOV
  • 센서 데이터: IoT 디바이스의 데이터 스트림으로, 구조가 일관되지 않을 수 있음
  • 바이너리 파일: 실행 파일, 독점 데이터 형식

이처럼 여러 데이터 유형을 네이티브 형식으로 저장하고 처리할 수 있는 능력은 데이터 레이크의 핵심 특징이자 장점입니다. 이 ‘읽기 스키마’ 접근 방식 덕분에 더 유연하게 작업할 수 있으며, 데이터 사이언티스트와 분석가는 사전 정의된 구조의 제약 없이 다양한 방식으로 데이터를 탐색하고 분석할 수 있습니다.

데이터 수명 주기

데이터 레이크 내에서 데이터 수명 주기는 데이터가 생성 또는 수집되는 초기 단계부터 최종 보관 또는 삭제에 이르기까지 거치는 모든 단계를 포괄합니다. 이는 데이터가 레이크 내에서 존재하는 동안 효과적으로 관리 및 활용되고 거버넌스가 적용되도록 보장하는 지속적인 프로세스입니다. 데이터 레이크에서 데이터 수명 주기는 다음과 같이 요약할 수 있으며, 구체적인 구현 방식은 경우에 따라 다를 수 있습니다.

1. 데이터 수집: 다양한 소스 시스템의 데이터를 데이터 레이크로 가져오는 초기 단계입니다. 이러한 소스는 정형 데이터베이스, 반정형 로그, 비정형 문서, IoT 디바이스의 스트리밍 데이터, 소셜 미디어 피드 등 다양합니다. 데이터 레이크 수집의 주요 특징은 '있는 그대로 수집'하는 것입니다. 즉, 데이터는 일반적으로 중요한 사전 변환이나 스키마 정의 없이 가공 전 네이티브 형식으로 로드되므로, 향후 분석 시 매우 유연하게 작업할 수 있습니다. 이 단계에서 사용되는 도구와 프로세스에는 배치 로딩, 실시간 스트리밍 수집, 데이터 커넥터 등이 있습니다.

2. 데이터 스토리지 및 영속성: 가공 전 데이터가 수집되면 데이터 레이크에 저장됩니다. 아키텍처는 Hadoop 분산 파일 시스템(HDFS)이나 클라우드 기반 오브젝트 스토리지(예: Amazon S3, Azure Data Lake Storage, Google Cloud Storage)와 같은 분산 스토리지 시스템을 활용하는 경우가 많습니다. 데이터는 원래 형식으로 유지되므로 이후 다양한 분석 접근 방식을 사용할 수 있습니다. 스토리지 계층의 확장성과 비용 효율성은 데이터 레이크에 저장된 방대한 양의 데이터를 처리하는 데 매우 중요합니다. 데이터 액세스 빈도와 보존 정책에 따라 여러 스토리지 계층을 활용할 수 있습니다.

3. 데이터 처리 및 변환: 이 단계에서는 가공 전 데이터를 분석 및 소비에 맞게 준비합니다. 구체적인 분석 사용 사례에 따라 데이터는 정제, 필터링, 조인, 집계 및 보강 등 여러 변환을 거칠 수 있습니다. 바로 여기서 '읽기 스키마'가 중요한 역할을 합니다. 이 스키마는 데이터 수집 시점이 아니라 특정 목적으로 데이터가 처리되는 시점에 적용됩니다. 이 단계에서는 Spark, Hadoop MapReduce, 레이크에 연결된 데이터 웨어하우징 도구, 서버리스 컴퓨팅 서비스 등 다양한 처리 엔진과 프레임워크가 사용됩니다.

4. 데이터 탐색 및 분석: 이 단계에서는 데이터 사이언티스트, 분석가, 비즈니스 사용자가 처리된 데이터를 탐색하여 패턴을 찾아내고, 인사이트를 도출하며, 비즈니스 관련 질문에 대한 답변을 얻습니다. 또한, SQL 유사 쿼리, 데이터 시각화 도구, 통계 분석 패키지 및 머신러닝 알고리즘 등 여러 도구와 기술을 사용할 수 있습니다. 데이터 레이크의 이러한 유연성 덕분에, 특정 요구 사항에 맞춰 동일한 데이터에 다양한 분석 접근 방식을 적용할 수 있습니다.

5. 데이터 소비 및 활동: 이후 다양한 다운스트림 애플리케이션과 사용자가 인사이트와 처리된 데이터를 소비합니다. 여기에는 보고서 및 대시보드 생성, 운영 시스템 데이터 투입, 실시간 애플리케이션 구동, 비즈니스 의사 결정을 위한 정보 제공 등이 포함될 수 있습니다. 소비된 데이터는 사용하는 애플리케이션에 따라 여러 형식으로 제공되며 서로 다른 인터페이스를 통해 액세스가 가능합니다.

6. 데이터 거버넌스 및 보안: 데이터 거버넌스와 보안은 전체 수명 주기에 걸쳐 매우 중요합니다. 여기에는 데이터 품질, 메타데이터 관리, 데이터 계보, 액세스 제어, 데이터 마스킹 및 규정 준수에 관한 정책의 정의 및 시행이 포함됩니다. 효과적인 거버넌스를 통해 데이터 레이크 내 데이터의 신뢰성과 안전성을 높이고 적절한 데이터 관리를 지원할 수 있습니다.

7. 데이터 아카이브 및 삭제: 데이터가 오래되고 비즈니스 가치가 감소하면, 규정 준수 또는 스토리지 비용 최적화를 이유로 아카이브가 필요할 수 있습니다. 그리고 더 이상 필요하지 않은 데이터는 결국 정의된 보존 정책에 따라 삭제될 수 있습니다. 이 최종 단계를 통해 데이터 레이크는 장기적으로 효율성을 유지하고 규정 준수를 보장합니다.

기본적으로 유연성과 적응력을 갖춘 데이터 레이크의 데이터 수명 주기를 바탕으로, 조직은 여러 데이터를 방대한 양으로 수집하고, 특정 분석 사용 사례에 따라 데이터를 처리하며, 적절한 거버넌스와 보안을 유지하면서 가치 있는 인사이트를 도출할 수 있습니다. ‘읽기 스키마’ 원칙과 스토리지 및 컴퓨팅의 분리는 기존의 데이터 웨어하우징 방식과 차별화되는 주요 특징입니다.

데이터 레이크가 중요한 이유

개념적으로 보든 아키텍처 관점에서 보든, 데이터 레이크의 가치는 현대의 데이터 요구 사항을 충족하는 기능에 있습니다. 데이터 레이크의 주요 이점은 다음과 같습니다. 
 

  • 확장성: 페타바이트 규모의 데이터도 수월하게 처리합니다.
  • 유연성: 속도, 소스에 관계없이 모든 데이터를 수집합니다.
  • 비용 절감: 기존 시스템 대비 낮은 스토리지 비용을 제공합니다.
  • 고급 분석: AI, 머신러닝 및 실시간 분석을 위한 기반을 마련합니다.
  • 데이터 민주화: 기술 팀은 물론 비기술 팀을 모두 아우르는 데이터 접근성 향상을 실현합니다.

최신 데이터 레이크로의 진화

기존의 데이터 레이크는 흔히 ‘레이크하우스’라고 하는 최신 데이터 레이크 아키텍처로 진화하고 있습니다. 레이크하우스는 데이터 레이크의 유연한 스토리지와 데이터 웨어하우스의 정형 쿼리 기능 및 성능을 결합한 하이브리드 시스템입니다.

최신 데이터 레이크 아키텍처 동향
 

  • 클라우드 네이티브 배포
  • 내장형 처리 엔진
  • 통합 거버넌스 프레임워크
  • 레이크와 웨어하우스를 연결하는 통합 플랫폼

데이터 레이크의 과제 및 사용 사례

데이터 레이크의 과제

  • 데이터 검색 기능: 적절한 카탈로그화 및 메타데이터 관리가 부족하여 사용자가 필요한 데이터를 찾고 이해하기 어렵습니다.
  • 보안 및 거버넌스: 데이터 레이크에서 규정 준수를 보장하고 민감 정보를 보호하려면 강력한 보안 및 거버넌스 조치가 필요하지만, 레이크의 방대한 규모와 다양한 데이터 소스로 인해 어려움에 직면할 수 있습니다.
  • 통합의 복잡성: 데이터 소스의 다양성과 비정형적인 특성에 레이크의 규모가 더해지면, 관리 및 접근이 어려운 ‘데이터 늪(data swamp)’이 생길 수 있습니다. 이를 방지하려면 정교한 최신 도구가 필요합니다.

사용 사례

  • 머신러닝 및 AI 학습 파이프라인
  • 실시간 데이터 처리 및 분석
  • 장기 스토리지 및 데이터 아카이브
  • 엔터프라이즈 데이터 통합
  • 비즈니스 인텔리전스 및 보고
  • 고급 분석 및 AI
  • 예측 분석
  • 데이터 탐색 및 추세 분석
  • 고객 및 마케팅 경험: Customer 360

데이터 레이크 FAQ

데이터 레이크는 모든 유형의 원본 데이터를 저장하기 위한 중앙 집중식 리포지토리입니다. 데이터 레이크하우스는 전통적인 데이터 레이크의 진화된 형태로, 데이터 레이크의 유연한 저장 능력과 데이터 웨어하우스의 구조화된 쿼리 기능 및 성능을 결합한 하이브리드 시스템입니다.

아니요, SQL은 데이터 레이크가 아닙니다. 데이터 레이크는 데이터 저장 리포지토리입니다. SQL(구조적 쿼리 언어)은 Spark와 같은 다른 언어들과 함께 데이터 레이크에 저장된 데이터를 쿼리하고 분석하는 데 사용되는 언어입니다.

데이터 레이크에서 ELT(추출, 로드, 변환)는 데이터를 가져와 분석을 위해 준비하는 방식을 말합니다. 데이터는 먼저 다양한 소스에서 추출되어 원본 형태 그대로 데이터 레이크에 로드됩니다. 데이터의 정제, 구조화 또는 보강과 같은 변환 작업은 데이터 레이크 내부에서 이루어지며, 이를 통해 해당 정보는 보고서 작성, 머신러닝 또는 기타 분석에 사용될 수 있습니다.