데이터 레이크의 불가능한 삼각형을 깨는 게임 체인저

발행: (2026년 2월 4일 오후 05:11 GMT+9)
21 분 소요
원문: Dev.to

I’m happy to translate the article for you, but I’ll need the full text you’d like translated. Could you please paste the content (excluding the source line you already provided) here? Once I have the text, I’ll translate it into Korean while preserving the original formatting, markdown, and any code blocks or URLs.

Source:

데이터 레이크에 대한 간략한 소개

1. 데이터 웨어하우스 요약

데이터 웨어하우스는 다양한 비즈니스 시스템에서 데이터를 집계하여 질의와 분석을 수행하는 주제‑지향 데이터 관리 시스템입니다.

  • 데이터 양이 증가하고 소스 시스템 수가 늘어남에 따라 데이터 웨어하우스는 필수가 됩니다.
  • 비즈니스 요구를 충족시키기 위해서는 원시 데이터를 정제·변환·깊이 있게 준비한 뒤 웨어하우스에 적재해야 합니다.
  • 데이터 웨어하우스의 핵심 작업은 미리 정의된 비즈니스 질문에 답하는 것입니다. 이러한 질문은 모델을 구축하기 전에 존재해야 합니다.

문제: 아직 정의되지 않은 중요한 비즈니스 질문이 있다면 어떻게 할까요?
전통적인 웨어하우스에서는 워크플로우가 다음과 같습니다:

  1. 비즈니스 질문을 식별한다.
  2. 질문에 답하기 위한 모델을 만든다.

이 과정은 길어질 수 있으며, 웨어하우스가 고도로 준비된 데이터를 저장하고 있기 때문에 새로운 질문에 답하려면 원시 데이터를 다시 처리해 더 세밀한 수준으로 만들 필요가 있습니다. 이는 특히 새로운 질문이 많이 발생할 때 비용이 많이 들고 비효율적인 작업이 됩니다.

2. 데이터 레이크가 탄생한 이유

데이터 레이크는 방대한 원시 데이터를 저장하고 분석하도록 설계된 기술(또는 전략)입니다. 목표는 다음과 같습니다:

  1. 가능한 한 많은 원시 데이터를 가장 높은 충실도로 저장한다.
  2. 전체 데이터 세트에서 잠재적인 모든 가치를 추출한다.

따라서 데이터 레이크는 두 가지 뚜렷한 역할을 가집니다:

역할설명
데이터 저장모든 원시 데이터(구조화, 반구조화, 비구조화)를 원래 상태 그대로 보관한다.
데이터 분석저장된 데이터에 대해 컴퓨팅·가치 추출을 수행한다.

3. 데이터 레이크 성능의 두 측면

저장

  • 레이크는 전체 원시 데이터(구조화, 반구조화, 비구조화)를 원본 형태로 저장합니다.
  • 이처럼 방대하고 다양한 저장 능력은 일반적으로 구조화된 데이터만 데이터베이스에 저장하는 데이터 웨어하우스와 차별화됩니다.
  • 데이터를 가능한 한 빨리 적재함으로써 다음을 가능하게 합니다:
    • 도메인 간 연관성을 최대한 활용.
    • 데이터 보안 및 무결성 향상.

구현 참고: 현대의 스토리지 및 클라우드 기술 덕분에 방대한 원시 데이터 저장이 현실화되었습니다. 기업은 자체 구축 스토리지 클러스터와 클라우드 제공업체의 스토리지 서비스를 선택할 수 있습니다.

처리

가장 큰 과제는 데이터 처리입니다:

  • 레이크에는 다양한 데이터 유형이 존재하며, 각각에 맞는 처리 방법이 필요합니다.
  • 구조화 데이터는 과거와 현재 생성되는 비즈니스 데이터가 대부분 구조화되어 있기 때문에 가장 중심적이고 복잡한 처리 대상이 됩니다.
  • 실제로 반구조화 및 비구조화 데이터는 계산을 위해 구조화 형식으로 변환되는 경우가 많습니다.

현재 상황

  • SQL 기반 데이터베이스(데이터 웨어하우스와 동일한 기술)가 구조화 데이터 처리에서 주도적 역할을 합니다.
  • 따라서 대부분의 데이터 레이크 솔루션은 **데이터 웨어하우스(또는 데이터베이스)**에 의존해 구조화 데이터를 계산합니다.
  • 일반적인 워크플로우:
    1. 레이크에 원시 데이터를 저장한다.
    2. 필요한 데이터를 ETL(또는 ELT)하여 웨어하우스로 옮겨 처리한다.

고급 접근 방식은 이 파이프라인의 일부를 자동화합니다. 즉, 레이크 데이터 중 웨어하우스로 로드해야 할 데이터를 식별하고, 비활성 시간에 로드를 수행합니다. 이것이 바로 최신 Lakehouse 개념의 핵심 아이디어입니다.

핵심 요약: 오늘날 데이터 레이크는 사실상 세 가지 구성 요소로 이루어져 있습니다:

  1. 방대한 데이터 저장소.
  2. 구조화 데이터 처리를 위한 데이터‑웨어하우스 레이어.
  3. 반구조화/비구조화 데이터를 위한 특화 엔진.

4. 데이터 레이크의 핵심 요구 사항

요구 사항설명
원본 상태 저장최고 품질의 데이터를 레이크에 로드하여 최대 가치를 보존합니다.
충분한 컴퓨팅 용량가능한 최대 데이터 가치를 추출합니다.
비용 효율적인 개발구현 및 운영 비용을 합리적인 수준으로 유지합니다.

현실 점검: 현재 기술 스택은 세 가지 모두를 동시에 만족시킬 수 없습니다.

5. 원본 형태로 데이터 저장하기 접근법

일대일 저장 매핑

  • 충실도를 유지하는 가장 간단한 방법은 각 소스의 데이터를 소스와 동일한 유형의 저장 매체에 저장하는 것이다.
    • 예시: MySQL 데이터 → 레이크 내 MySQL 저장소, MongoDB 데이터 → MongoDB 저장소 등.
  • 장점:
    • 거의 완벽한 충실도(hi‑fi).
    • 해당 소스만을 대상으로 하는 쿼리에 대해 소스 고유의 컴퓨팅 기능을 활용할 수 있다.
  • 단점:
    • 개발 비용이 높음 – 다양한 저장 시스템을 프로비저닝하고 유지해야 한다.
    • 방대한 데이터 마이그레이션 작업(수년간 축적된 데이터 복사) 필요.
    • 소스가 상용 소프트웨어를 사용할 경우 라이선스 비용이 추가로 발생한다.

보다 저렴한 변형으로 다르지만 유사한 시스템에 데이터를 저장할 수 있다(예: Oracle 데이터를 MySQL에 저장). 이는 비용을 절감하지만 일부 계산을 불가능하거나 매우 어렵게 만들 수 있다.

기준 낮추기

“이제 기준을 낮춰 보자. 우리는 로딩 시 데이터가 복제되는 것을 요구하지 않고 단지 …”

(원문이 여기서 끊겼다. 이어지는 내용은 아마도 원시 파일을 통합 객체 저장소에 보관하고 스키마‑온‑리드 기법을 적용하는 등 보다 실용적인 접근법을 논의할 것으로 예상된다.)

6. 요점

  1. 데이터 웨어하우스잘 준비된 데이터에 대한 미리 정의된 질문에 답하는 데 뛰어납니다.
  2. 데이터 레이크모든 원시 데이터향후 어떤 질문에도 사용할 수 있도록 유지하여 정확성을 보존하고 보다 폭넓은 분석을 가능하게 합니다.
  3. 처리 격차—특히 구조화된 데이터의 경우—는 대부분의 레이크 구현이 웨어하우스나 레이크하우스 계층에 의존하도록 만듭니다.
  4. 높은 정확성, 강력한 컴퓨팅, 낮은 비용을 동시에 달성하는 것은 여전히 해결되지 않은 과제로, 레이크하우스 아키텍처와 통합 스토리지/컴퓨팅 플랫폼에서 지속적인 혁신을 촉진합니다.

데이터 레이크의 “불가능한 삼각형”

관계형 데이터베이스에 데이터를 로드하려고 할 때, 우리는 데이터베이스의 연산 능력을 활용하고 저비용 개발이라는 요구사항을 충족시킬 수 있습니다(그림의 파트 II에 표시된 대로).
하지만 이 접근 방식은 모든 데이터를 하나의 관계형 데이터베이스에 넣어야 하기 때문에 종종 실현 불가능합니다.

직접 로드가 실패하는 이유

  • 로드 과정에서 정보 손실이 발생할 수 있으며, 이는 데이터 레이크의 첫 번째 요구사항인 고충실도 데이터 로드를 위반합니다.
  • MongoDB → MySQL/Hive 전환은 전형적인 어려움입니다: 많은 MongoDB 데이터 타입과 관계(중첩 구조, 배열, 해시, 다대다 링크) 등이 MySQL에는 존재하지 않습니다.
  • 마이그레이션을 위해서는 데이터를 재구조화해야 하며, 이는 일련의 복잡한 재조정 단계를 포함합니다. 이는 비효율적이고, 시간도 많이 소요되며, 숨겨진 오류가 발생하기 쉽습니다.

파일 기반 저장: 부분적인 해결책

일반적인 우회 방법은 데이터를 그대로 큰 파일에 저장하거나(또는 데이터베이스의 큰 필드에 저장)하는 것입니다.

장점

  • 정보 손실이 최소화되어 데이터가 본질적으로 온전하게 유지됩니다.
  • 더 큰 유연성, 개방성, 그리고 높은 I/O 효율성.
  • 저렴한 저장 비용(파일 시스템은 비용이 저렴합니다).

단점

  • 파일(또는 큰 필드)은 연산 능력이 부족하여 편리하고 충분한 연산 성능이라는 요구사항을 충족시킬 수 없습니다.
  • “불가능한 삼각형”(비용 절감, 고충실도 로드, 편리한 연산) 은 깨지지 않는 것처럼 보입니다.

근본 원인

이 갈등은 전통적인 데이터베이스의 폐쇄성과 엄격한 제약에서 비롯됩니다:

  1. 데이터를 로드하기 전에 스키마 규칙을 만족하도록 정제 및 변환해야 합니다.
  2. 이 변환 과정에서 필연적으로 정보 손실이 발생합니다.

순수 파일 저장으로 전환하면 충실도 문제는 해결되지만 연산 엔진이 사라집니다, 하드코딩에 의존하지 않는 한—이는 결코 편리하지 않습니다.

오픈 컴퓨팅 엔진이 삼각형을 깨다

오픈 컴퓨팅 엔진은 누락된 조각을 제공할 수 있습니다: 충분하고 편리한 컴퓨팅 파워를 실시간으로 다양한 소스에 저장된 원시 데이터에 직접 작동시킵니다.

SPL – Structured Data Computing Engine

  • 오픈‑소스이며 데이터 레이크를 위해 설계되었습니다.
  • 다중 소스 혼합 컴퓨팅을 제공: 사전 변환 없이 원시 데이터를 직접 원래 저장소(데이터베이스, 파일, NoSQL, RESTful API)에서 계산할 수 있습니다.
  • 레이크가 사용하는 어떤 저장 매체와도 작동합니다 – 동일한 소스 유형이든 일반 파일이든 관계없습니다.

주요 혜택

혜택설명
민첩성레이크가 구축된 직후 데이터 서비스가 즉시 제공되어, 준비, 로드, 모델링이라는 긴 사이클을 건너뛸 수 있습니다.
실시간 응답유연한 레이크 서비스가 비즈니스 요구에 즉시 대응할 수 있습니다.
파일 지원SPL은 파일에 강력한 컴퓨팅 기능을 부여하여 파일 기반 레이크를 데이터베이스만큼 빠르거나 그보다 더 빠르게 만들 수 있습니다.
계층형 데이터JSON 및 기타 계층형 포맷을 네이티브로 처리하며, NoSQL 및 RESTful 데이터도 변환 없이 사용할 수 있습니다.

Source:

전방위 컴퓨팅 용량

원본 데이터에 대한 직접 접근

  • SPL의 조인은 전통적인 데이터 웨어하우스를 선택 사항으로 만든다.
  • SPL은 고성능 파일 저장 전략을 제공하며, 유연하고 병렬화가 쉽다.

고성능 저장 포맷

포맷특징
Bin 파일• 압축됨 (작은 용량, 빠른 검색)
• 데이터 타입을 그대로 저장 (파싱 불필요)
이중 증가 세그멘테이션을 지원해 손쉬운 병렬 처리 가능
Composite 테이블• 컬럼 단위 저장 – 필요한 컬럼이 몇 개뿐일 때 이상적
최소‑최대 인덱스 포함
• 또한 이중 증가 세그멘테이션을 지원해 병렬 처리 가능

간편한 병렬 처리

많은 SPL 함수(파일 검색, 필터링, 정렬 등)가 병렬 실행을 지원한다.
멀티스레딩을 활성화하려면 함수 호출에 @m 옵션만 추가하면 된다:

// 예시: 병렬 정렬
sort @m input_file output_file

자동 멀티스레딩은 최소한의 노력으로 여러 CPU를 최대한 활용할 수 있게 해준다.

핵심 요약

SPL과 같은 오픈·소스에 구애받지 않는 컴퓨팅 엔진을 활용하면 다음을 할 수 있습니다:

  1. 고충실도 데이터를 빠르게 로드 (비용 절감).
  2. 데이터를 원본 형태로 유지 (개방성).
  3. 충분하고 편리한 컴퓨팅 파워 제공 (성능).

다시 말해, SPL은 불가능한 삼각형을 깨고 진정으로 개방적이고 효율적인 데이터 레이크 구축을 가능하게 합니다.

병렬 실행

  • SPL (Structured Processing Language)는 개발자들이 병렬 프로그램을 명시적으로 작성하도록 허용하여, 컴퓨팅 성능을 향상시킵니다.

고성능 알고리즘

  • SPL은 SQL이 효율적으로 수행할 수 없는 많은 알고리즘을 포함합니다.

  • 일반적인 예로 Top‑N 연산이 있습니다:

    • SPL은 Top‑N을 집계 연산으로 처리하여 비용이 많이 드는 정렬을 낮은 복잡도의 집계로 변환합니다.
    • 동일한 문장은 전체 집합에서 상위 N을 가져오거나 그룹화된 하위 집합에서 가져올 때 모두 고성능을 제공합니다.
  • SPL 문장에는 정렬 관련 키워드가 전혀 나타나지 않으므로 전체 정렬이 절대 발생하지 않습니다.

성능 이점

  • 이 메커니즘을 사용하면 SPL은 기존 데이터 웨어하우스보다 orders‑of‑magnitude 높은 성능을 제공할 수 있습니다.
  • 데이터 변환 후 발생하는 저장 및 계산 문제를 해결하여 별도의 데이터 레이크가 필요 없게 됩니다.

혼합‑데이터 연산

  • SPL은 변환된 데이터와 원시 데이터 모두에 직접 연산을 수행할 수 있으며, 사전 준비 없이 이질적인 데이터 소스의 값을 활용합니다.
  • 이 기능은 고도로 민첩한 데이터 레이크를 가능하게 합니다.

Simultaneous Lake‑Building Phases

  • Traditional pipelines require sequential steps: loading → transformation → computation.

  • SPL allows these phases to run concurrently:

    • Data preparation and computation can be performed side‑by‑side.
    • Any type of raw, irregular data can be processed directly.
  • Handling transformation and computation together—rather than in a serial order—is the key to building an ideal data lake.

Back to Blog

관련 글

더 보기 »