참고: 이 내용은 2022. 4. 25에 게시된 컨텐츠(Support Multiple Data Modeling Approaches with Snowflake)에서 번역되었습니다.

참고: 이 게시물은 2019년에 처음 게시되었습니다. 그 후 현재 사용 가능한 제품, 기능 및 성능을 반영하도록 내용이 업데이트되었습니다. 

저는 Snowflake에 입사한 이후 Snowflake가 가장 잘 지원하는 데이터 웨어하우스 모델링 접근 방식이 무엇인지 수차례 질문을 받았습니다. 멋진 점은 Snowflake가 여러 데이터 모델링 접근 방식을 동일하게 지원한다는 것입니다.

기존 데이터 웨어하우스를 Data Vault 모델링 접근 방식으로 구축한 고객이 몇 명 있는 것으로 확인되었으며, 그들은 Snowflake로 전환하기로 결정했습니다.

따라서 대부분 대화는 이렇게 진행됩니다.

고객님: “Snowflake에서 Data Vault를 실행할 수 있나요?”

필자: “네, 가능합니다! 왜 그러시나요?”

고객님: “음, 이름이 Snowflake여서 Snowflake 형식의 스키마만 지원하는 것으로 알았습니다.”

필자: “네, 그 점이 혼란스러운 것은 이해하지만, 사실 이름은 데이터 웨어하우스 설계와는 관련이 없습니다. 사실 저희는 Data Vault를 비롯한 모든 유형의 관계형 디자인을 지원합니다.”

Data Vault 모델링이란 무엇인가?

아직 비즈니스 인텔리전스의 Data Vault 시스템 또는 간단히 Data Vault(DV) 모델링에 대해 들어본 적이 없는 분들을 위해 이 솔루션은 (특히) 민첩하고 유연하며 확장 가능한 엔터프라이즈 데이터 웨어하우스(EDW)를 모델링하는 방법과 접근 방식을 제공합니다.

개발자인 Dan Linstedt에 따르면 이것은 공식적인 정의입니다.

DV는 하나 이상의 비즈니스 기능 영역을 지원하는 세부 지향적인 과거 추적이며 고유하게 연결된 정규화된 테이블 세트입니다.

이것은 제3 정규형(3NF)과 별모양 스키마 사이에서 동종 최고를 아우르는 하이브리드 접근 방식입니다. 이 설계는 유연하고, 확장 가능하며, 일관성이 있으며, 기업의 요구에 적응할 수 있습니다. 오늘날의 엔터프라이즈 데이터 웨어하우스의 요구사항을 충족하도록 특별히 설계된 데이터 모델입니다.

여기서 중요한 점은 DV가 데이터 웨어하우징 공간에서 사용되는 다른 주요 데이터 모델링 접근 방식에서 발견되는 민첩성, 유연성 및 확장성 문제를 해결하기 위해 특별히 개발되었다는 것입니다. 이것은 엔터프라이즈 데이터의 세분화된 비휘발성, 감사 가능한 기록 리포지토리로 구축되었습니다.

그 중심에는 다음 세 가지 주요 테이블 유형으로 구성된 반복 가능한 모델링 기법이 있습니다.

  • 허브: 비즈니스 객체를 나타내는 고유한 비즈니스 키 목록
  • 링크: 비즈니스 프로세스의 작업 단위를 나타내는 고유한 연결/거래 목록
  • 위성: 허브 및 링크에 대한 설명 데이터(과거가 있는 유형 2)

허브는 비즈니스 객체 식별자(비즈니스 키)의 리포지토리입니다. 따라서 비즈니스 객체 자체가 비즈니스 기능의 초점이기 때문에 허브는 비즈니스 중심이라고 할 수 있습니다. 

이제 소스 시스템은 비즈니스 프로세스의 자동화 엔진으로 간주될 수 있으며, 이는 비즈니스 객체의 관계와 데이터 상태(예: 켜기, 끄기, 활성, 비활성, 균형 등)를 추적합니다. 여러 소스 시스템을 보유하게 될 기업의 경우 비즈니스 키에 의한 의미론적 통합을 통해 이러한 비즈니스 객체와 해당 설명 데이터를 쉽게 추적할 수 있습니다. 이러한 기법을 ‘수동적 통합’이라고 합니다.

링크는 다대다 구조로 설계되어 있어 (데이터를 다시 로드하지 않고도) 카디널리티 및 비즈니스 규칙 변경을 유연하게 수용할 수 있습니다.

위성은 원하는 간격으로 과거를 기록할 수 있는 적응성과 더불어 소스 시스템에 대한 확실한 감사 및 추적 기능을 제공합니다. 

다음은 Data Vault 2.0 모델을 간단히 예를 들어 도식화한 것입니다.

Data Vault에서 사용할 Snowflake 기능

Snowflake는 소비 기반 가격 책정이 적용되는 ANSI SQL RDBMS이며, 현재 시장에 나와 있는 모든 관계형 솔루션과 같은 테이블과 보기를 지원합니다. 데이터 모델링의 관점에서 Data Vault(DV)는 데이터 웨어하우스의 테이블을 설계하는 특정 방법 및 패턴이기 때문에 Snowflake에서 테이블을 구현하는 데 문제가 없습니다.

사실, MPP 컴퓨팅 클러스터, 최적화된 열(columnar) 스토리지 형식 및 적응형 데이터 웨어하우스 기술이 결합된 Snowflake는 기존 데이터 웨어하우스 솔루션에서 현재보다 적은 노력으로 DV 로드와 쿼리를 통해 더 나은 결과를 얻을 수 있다고 생각합니다. Snowflake를 사용하면 뛰어난 성능을 얻기 위해 파티션 또는 배포 키를 미리 계획하거나 인덱스를 작성할 필요가 없습니다. 이 모든 것은 안전한 클라우드 기반 메타데이터 저장소와 정교한 피드백 루프를 사용하여 데이터 액세스 패턴과 리소스 가용성에 따라 쿼리를 모니터링하고 조정하는 Snowflakes의 동적 쿼리 최적화 기능의 일부로 처리됩니다.

Snowflake 고객은 쿼리 성능이 향상되고 있기 때문에(경우에 따라 최대 100배 향상), Snowflake가 BI 도구에 노출되는 정보 마트(예: 보고) 계층을 가상화할 수 있는 좋은 장소가 될 수 있다고 생각합니다.

Data Vault 2.0

DV 2.0 사양 구현에 관심이 있는 경우에도 Snowflake가 이것을 처리할 수 있습니다. 여기에는 MD5 해시 기능이 내장되어 있어 MD5 기반 키를 구현하고 DV 2.0 HASH_DIFF 개념을 사용하여 변경 데이터를 캡처할 수 있습니다.

Snowflake는 DV 2.0 해시 함수 사용을 지원할 뿐만 아니라 Data Vault의 로그 특정 시점(PIT) 테이블을 로드할 때 Snowflake의 MTI(Multi-Table Insert)를 활용할 수도 있습니다. 이 기능을 사용하면 Data Vault의 단일 조인 쿼리에서 여러 PIT 테이블을 병렬로 로드할 수 있습니다.

DV 리소스

DV에 대해 자세히 알아보려면 DV 전용 웹 사이트와 다음을 포함한 이 주제에 대한 몇 가지 책을 읽어보십시오.

  1. Introduction to Agile Data Engineering(민첩한 데이터 엔지니어링 소개), Kent Graziano(필자)
  2. Data Vault Guru(Data Vault 전문가), Patrick Cuba
  3. DV 소개 – 제 개인 블로그의 무료 백서
  4. 무료 DV 소개 영상 – 개발자 Dan Linstedt
  5. Building a Scalable Data Warehouse with DV 2.0(DV 2.0으로 확장 가능한 데이터 웨어하우스 구축), Dan Linstedt
  6. Dan Linstedt의 블로그

이 게시물이 Snowflake에서 DV를 수행할 때 기본적인 질문에 대한 답변이 되었으면 합니다. Snowflake를 사용해보고 싶다면 최대 400달러까지 사용료를 지원하는 온디맨드 서비스를 마음껏 이용해보십시오. 

Snowflake 블로그, 트위터 LinkedIn 계정에서 Snowflake의 모든 조치 및 활동에 대한 최신 정보를 확인할 수 있습니다.

추가 리소스