데이터 레이크 영역 및 컨테이너

데이터 레이크에 데이터를 저장하기 전에 데이터 구조를 계획하는 것이 중요합니다. 계획이 있는 경우 보안, 분할 및 처리를 효과적으로 사용할 수 있습니다.

데이터 레이크에 대한 개요는 클라우드 규모 분석을 위한 Azure Data Lake Storage 개요를 참조 하세요.

개요

세 가지 데이터 레이크 계정은 일반적인 데이터 레이크 계층에 맞춰야 합니다.

레이크 번호 레이어 컨테이너 번호 컨테이너 이름
1 원시 1 방문
1 원시 2 규칙
2 보강 1 표준화됨
2 큐레이팅됨 2 데이터 제품
3 개발 1 분석 샌드박스
3 개발 # Synapse 기본 스토리지 번호

이전 표에서는 데이터 랜딩 존당 권장되는 표준 컨테이너 수를 보여 줍니다. 이 권장 사항에 대한 예외는 컨테이너에 있는 데이터에 대해 다른 일시 삭제 정책이 필요한 경우입니다. 이러한 요구 사항은 추가 컨테이너에 대한 필요성을 결정합니다.

참고 항목

각 데이터 랜딩 존에는 세 개의 데이터 레이크가 나와 있습니다. 데이터 레이크는 세 개의 데이터 레이크 계정, 여러 컨테이너 및 폴더에 걸쳐 있지만 데이터 방문 영역에 대한 하나의 논리적 데이터 레이크를 나타냅니다.

요구 사항에 따라 원시, 보강 및 큐레이팅된 계층을 하나의 스토리지 계정으로 통합할 수 있습니다. 데이터 소비자가 다른 유용한 데이터 제품을 가져올 수 있도록 "개발"이라는 다른 스토리지 계정을 유지합니다.

데이터 레이크 계정을 분리하는 방법에 대한 자세한 내용은 논리 데이터 레이크의 Storage 계정을 참조하세요.

계층적 이름 공간 기능을 사용하여 Azure Storage를 사용하도록 설정하면 파일을 효율적으로 관리할 수 있습니다. 계층적 이름 공간 기능은 계정 내의 개체와 파일을 디렉터리 및 중첩된 하위 디렉터리의 계층 구조로 구성합니다. 이 계층 구조는 컴퓨터의 파일 시스템과 동일한 방식으로 구성됩니다.

데이터 독립적 수집 엔진 또는 온보딩 애플리케이션이 새 레코드 시스템을 등록하는 경우 원시, 보강, 표준화된 데이터 계층의 컨테이너에 필요한 폴더를 만듭니다. 원본 정렬 데이터 애플리케이션이 데이터를 수집하는 경우 데이터 애플리케이션 팀은 데이터 랜딩 존 팀이 폴더 및 보안 그룹을 만들어야 합니다. 서비스 주체 이름 또는 관리 ID를 올바른 그룹에 배치하고 사용 권한 수준을 할당합니다. 데이터 랜딩 존 및 데이터 애플리케이션 팀을 위해 이 프로세스를 문서화합니다.

팀에 대한 자세한 내용은 Azure의 클라우드 규모 분석에 대한 역할과 팀 이해를 참조하세요.

각 데이터 제품에는 데이터 제품 팀이 소유한 데이터 제품 컨테이너에 두 개의 폴더가 있어야 합니다.

표준화된 컨테이너의 보강 계층에는 원본 시스템당 두 개의 폴더가 있으며 분류 기준으로 나뉩니다. 이 구조를 사용하면 팀은 서로 다른 보안 및 데이터 분류가 있는 데이터를 별도로 저장하고 서로 다른 보안 액세스를 할당할 수 있습니다.

표준화된 컨테이너에는 기밀 또는 아래 데이터의 일반 폴더와 개인 데이터의 중요한 폴더가 필요합니다. ACL(액세스 제어 목록)을 사용하여 이러한 폴더에 대한 액세스를 제어합니다. 모든 개인 데이터가 제거된 데이터 세트를 만들고 일반 폴더에 저장할 수 있습니다. 중요한 개인 데이터 폴더에 모든 개인 데이터를 포함하는 다른 데이터 세트를 가질 수 있습니다.

ACL과 Microsoft Entra 그룹의 조합은 데이터 액세스를 제한합니다. 이러한 목록과 그룹은 다른 그룹이 액세스할 수 있는 것과 액세스할 수 없는 것을 제어합니다. 데이터 소유자와 애플리케이션 팀은 해당 데이터 자산에 대한 액세스를 승인하거나 거부할 수 있습니다.

자세한 내용은 데이터 액세스 관리제한된 데이터를 참조하세요.

Warning

일부 소프트웨어 제품은 데이터 레이크 컨테이너의 루트 탑재를 지원하지 않습니다. 이러한 제한으로 인해 원시, 큐레이팅, 보강 및 개발 계층의 각 데이터 레이크 컨테이너에는 여러 폴더로 분기되는 단일 폴더가 포함되어야 합니다. 폴더 사용 권한을 신중하게 설정합니다. 루트에서 새 폴더를 만들 때 부모 디렉터리의 기본 ACL은 자식 디렉터리의 기본 ACL을 결정하고 ACL에 액세스합니다. 자식 파일의 ACL에는 기본 ACL이 없습니다.

자세한 내용은 Azure Data Lake Storage Gen2의 ACL(액세스 제어 목록)을 참조하세요.

원시 계층 또는 데이터 레이크 1

원시 계층은 자연스러운 원래 상태로 데이터를 저장하는 저수지라고 생각할 수 있습니다. 여과되지 않고 정화되지 않은 상태입니다. 데이터를 원래 형식(예: JSON 또는 CSV)으로 저장할 수 있습니다. 또는 Avro, Parquet 또는 Databricks Delta Lake와 같은 압축된 파일 형식으로 파일 콘텐츠를 열로 저장하는 것이 비용 효율적일 수 있습니다.

이 원시 데이터는 변경할 수 없습니다. 원시 데이터를 잠근 상태로 유지하고, 자동화된 소비자 또는 인간에게 권한을 부여하는 경우 읽기 전용인지 확인합니다. 원본 시스템당 하나의 폴더를 사용하여 이 계층을 구성할 수 있습니다. 각 수집 프로세스는 연결된 폴더에만 쓰기 권한을 부여합니다.

원본 시스템에서 원시 영역으로 데이터를 로드하는 경우 다음을 수행할 수 있습니다.

  • 전체 데이터 집합을 추출하기 위한 전체 로드입니다.
  • 델타는 변경된 데이터만 로드하도록 로드합니다.

데이터 소비자의 사용을 간소화하기 위해 폴더 구조에서 선택한 로딩 패턴을 나타냅니다.

원본 정렬 데이터 애플리케이션 또는 자동화된 수집 엔진 원본에 대한 원본 시스템의 원시 데이터는 전체 폴더 또는 델타 폴더에 배치됩니다. 각 수집 프로세스는 연결된 폴더에만 쓰기 권한을 부여해야 합니다.

전체 로드와 델타 로드 간의 차이점은 다음과 같습니다.

  • 전체 로드 - 다음과 같은 경우 원본의 전체 데이터를 온보딩할 수 있습니다.

    • 원본의 데이터 볼륨이 작습니다.
    • 원본 시스템은 데이터가 추가, 업데이트 또는 삭제되었는지 여부를 식별하는 타임스탬프 필드를 기본 않습니다.
    • 원본 시스템은 매번 전체 데이터를 덮어씁니다.
  • 델타 로드 - 다음과 같은 경우 원본의 증분 데이터를 온보딩할 수 있습니다.

    • 원본의 데이터 볼륨이 큽다.
    • 원본 시스템은 데이터가 추가, 업데이트 또는 삭제되었는지 여부를 식별하는 타임스탬프 필드를 기본.
    • 원본 시스템은 데이터 변경 내용에 대한 파일을 만들고 업데이트합니다.

원시 데이터 레이크는 랜딩 및 규칙 컨테이너로 구성됩니다. 각 컨테이너는 용도에 따라 100% 필수 폴더 구조를 사용합니다.

랜딩 컨테이너 레이아웃

랜딩 컨테이너는 인식된 원본 시스템의 원시 데이터용으로 예약됩니다. 데이터 독립적 수집 엔진 또는 원본 정렬 데이터 애플리케이션은 데이터를 로드하며, 이 데이터는 원래 지원되는 형식으로 변환되지 않습니다.

.
|-Landing
|--Log
|---{Application Name}
|--Master and Reference
|---{Source System}
|--Telemetry
|---{Source System}
|----{Application}
|--Transactional
|---{Source System}
|----{Entity}
|-----{Version}
|------Delta
|-------{date (ex. rundate=2019-08-22)}
|------Full

원시 계층 규칙 컨테이너

원시 계층에는 데이터 품질 준수 데이터가 포함됩니다. 데이터가 랜딩 컨테이너에 복사되면 데이터 처리 및 컴퓨팅이 트리거되어 랜딩 컨테이너에서 규칙 컨테이너로 데이터를 복사합니다. 이 첫 번째 단계에서 데이터는 델타 레이크 형식으로 변환되고 입력 폴더에 배치됩니다. 데이터 품질이 실행되면 전달된 레코드가 출력 폴더에 복사됩니다. 오류 폴더에 오류가 발생하는 레코드입니다.

.
|-Conformance
|--Log
|---{Application Name}
|--Master and Reference
|---{Source System}
|--Telemetry
|---{Source System}
|----{Application}
|--Transactional
|---{Source System}
|----{Entity}
|-----{Version}
|------Delta
|-------Input
|--------{date (ex. rundate=2019-08-22)}
|-------Output
|--------{date (ex. rundate=2019-08-22)}
|-------Error
|--------{date (ex. rundate=2019-08-22)}
|------Full
|-------Input
|--------{date (ex. rundate=2019-08-22)}
|-------Output
|--------{date (ex. rundate=2019-08-22)}
|-------Error
|--------{date (ex. rundate=2019-08-22)}

분석 플랫폼을 처음부터 다시 빌드해야 하는 시나리오를 생각해 보세요. 다운스트림 읽기 데이터 저장소를 다시 빌드하는 데 필요한 가장 세분화된 데이터를 고려합니다. 주요 구성 요소에 대한 비즈니스 연속성 및 재해 복구 계획이 마련되어 있는지 확인합니다.

보강 계층 또는 데이터 레이크 2

보강 계층은 여과 계층으로 간주합니다. 불순물을 제거하고 보강을 포함할 수도 있습니다.

표준화 컨테이너는 레코드 및 마스터 시스템을 보유합니다. 폴더는 먼저 주체 영역별로 분할된 다음, 엔터티별로 분할됩니다. 데이터는 분석 소비에 최적화된 병합된 분할된 테이블에서 사용할 수 있습니다.

표준화된 컨테이너

.
|-Standardized
|--Log
|---{Application Name}
|--Master and Reference
|---{Source System}
|--Telemetry
|---{Source System}
|----{Application}
|--Transactional
|---{Source System}
|----{Entity}
|-----{Version}
|------General
|--------{date (ex. rundate=2019-08-22)}
|-------Sensitive
|--------{date (ex. rundate=2019-08-22)}

참고 항목

이 데이터 계층은 실버 계층 또는 읽기 데이터 원본으로 간주됩니다. 이 계층 내의 데이터에는 데이터 품질, 델타 레이크 변환 및 데이터 형식 맞춤 이외의 변환이 적용되지 않았습니다.

다음 다이어그램에서는 원본 데이터에서 표준화된 컨테이너로 데이터 레이크 및 컨테이너의 흐름을 보여 줍니다.

Diagram that shows a high level data flow.

큐레이팅된 계층 또는 데이터 레이크 2

큐레이팅된 계층은 소비 계층입니다. 데이터 수집 또는 처리보다는 분석에 최적화되어 있습니다. 큐레이팅된 계층은 비정규화된 데이터 마트 또는 스타 스키마에 데이터를 저장할 수 있습니다.

표준화된 컨테이너의 데이터는 데이터 소비자에게 제공되는 고부가가치 데이터 제품으로 변환됩니다. 이 데이터에는 구조가 있습니다. 데이터 과학 Notebook과 같은 소비자에게 있는 그대로 또는 Azure SQL Database와 같은 다른 읽기 데이터 저장소를 통해 제공될 수 있습니다.

Spark 또는 Data Factory와 같은 도구를 사용하여 데이터베이스 엔진 내에서 수행하는 대신 차원 모델링을 수행합니다. 레이크를 단일 데이터 원본으로 만들려면 이러한 도구 사용이 핵심 포인트가 됩니다.

레이크 외부에서 차원 모델링을 수행하는 경우 일관성을 위해 모델을 레이크에 다시 게시할 수 있습니다. 이 계층은 데이터 웨어하우스를 대체하지 않습니다. 일반적으로 성능은 반응형 대시보드 또는 최종 사용자 및 소비자 대화형 분석에 적합하지 않습니다. 이 계층은 대규모의 즉석 쿼리 또는 분석을 실행하는 내부 분석가 및 데이터 과학자 또는 시간에 민감한 보고 요구 사항이 없는 고급 분석가에게 가장 적합합니다. 데이터 레이크의 스토리지 비용은 데이터 웨어하우스보다 낮기 때문에 레이크에 세분화된 하위 수준 데이터를 유지하는 것이 비용 효율적일 수 있습니다. 집계된 데이터를 웨어하우스에 저장합니다. Spark 또는 Azure Data Factory를 사용하여 이러한 집계를 생성합니다. 데이터 웨어하우스에 로드하기 전에 데이터 레이크에 보관합니다.

이 영역의 데이터 자산은 일반적으로 고도로 관리되며 잘 문서화됩니다. 부서 또는 기능별로 사용 권한을 할당하고 소비자 그룹 또는 데이터 마트별로 권한을 구성합니다.

데이터 제품 컨테이너

.
|-{Data Product}
|---{Entity}
|----{Version}
|-----General
|-------{date (ex. rundate=2019-08-22)}
|------Sensitive
|-------{date (ex. rundate=2019-08-22)}

Azure SQL Database와 같은 다른 읽기 데이터 저장소에 데이터를 배치하는 경우 큐레이팅된 데이터에 해당 데이터의 복사본이 있는지 확인합니다. 데이터 제품 사용자는 기본 읽기 데이터 저장소 또는 Azure SQL Database 인스턴스로 안내되지만 데이터 레이크에서 데이터를 사용할 수 있도록 하는 경우 추가 도구를 사용하여 데이터를 탐색할 수도 있습니다.

개발 계층 또는 데이터 레이크 3

데이터 소비자는 표준화된 컨테이너에 수집된 데이터와 함께 다른 유용한 데이터 제품을 가져올 수 있습니다.

이 시나리오에서 데이터 플랫폼은 이러한 소비자에 대한 분석 샌드박스 영역을 할당할 수 있습니다. 샌드박스에서 가져온 큐레이팅된 데이터 및 데이터 제품을 사용하여 중요한 인사이트를 생성할 수 있습니다. 예를 들어 데이터 과학 팀이 새 지역에 가장 적합한 제품 배치 전략을 결정하려는 경우 해당 지역의 유사한 제품에서 고객 인구 통계 및 사용량 현황 데이터와 같은 다른 데이터 제품을 가져올 수 있습니다. 팀은 이 데이터의 고부가가치 판매 인사이트를 사용하여 제품 시장 적합성 및 제품 제공 전략을 분석할 수 있습니다.

참고 항목

분석 샌드박스 영역은 개별 또는 소규모 공동 작업자 그룹을 위한 작업 영역입니다. 샌드박스 영역의 폴더에는 프로덕션 솔루션의 일부로 이 영역을 사용하려는 시도를 방지하는 특별한 정책 집합이 있습니다. 이러한 정책은 사용 가능한 총 스토리지와 데이터를 저장할 수 있는 기간을 제한합니다.

이러한 데이터 세트는 일반적으로 품질과 정확성을 알 수 없습니다. 여전히 데이터 제품으로 분류되지만 일시적이고 데이터를 사용하는 사용자 그룹과만 관련이 있습니다.

이러한 데이터 제품이 완성되면 기업은 이러한 데이터 제품을 큐레이팅된 데이터 계층으로 승격할 수 있습니다. 데이터 제품 팀이 새 데이터 제품을 책임지려면 해당 팀에 큐레이팅된 데이터 영역에 대한 전용 폴더를 제공합니다. 새 결과를 폴더에 저장하고 조직 전체의 다른 팀과 공유할 수 있습니다.

참고 항목

만드는 모든 Azure Synapse 작업 영역에 대해 Data Lake 3을 사용하여 기본 스토리지로 사용할 컨테이너를 만듭니다. 이 컨테이너는 Azure Synapse 작업 영역이 큐레이팅되고 보강된 영역의 처리량 제한을 방해하지 않도록 합니다.

제품 및 분석 샌드박스로의 데이터 흐름 예제

다음 다이어그램은 이 문서의 정보를 컴파일하고 데이터가 데이터 제품 및 분석 샌드박스로 이동하는 방법을 보여 줍니다.

Diagram showing a data flow into product container and analytics sandbox.

다음 단계