Azure

[DP-203] Azure에서 데이터 엔지니어링 시작하기 : Azure Data Lake Storage Gen2 소개

야채곱창의축복 2024. 11. 13. 17:14

https://learn.microsoft.com/ko-kr/training/modules/introduction-to-azure-data-lake-storage/

 

Azure Data Lake Storage Gen2 소개 - Training

Data Lake Storage가 비정형 데이터를 업로드 및 저장할 수 있는 리포지토리를 제공하여 빅 데이터 분석 처리에 새로운 효율성을 제공하는 방법을 알아봅니다.

learn.microsoft.com

 

학습 목표

  • Azure Data Lake Storage Gen2 주요 기능 및 이점 설명
  • Azure Storage 계정에서 Azure Data Lake Storage Gen2 사용
  • Azure Data Lake Store Gen2 및 Azure Blob 스토리지 비교
  • 분석 처리 단계에서 Azure Data Lake Storage Gen2의 적합한 위치 설명
  • 일반적인 분석 워크로드에서 Azure Data Lake Storage Gen2를 사용하는 방법 설명

 


 

소개

- 배경 : 비정형 데이터 저장 필요

- 데이터 레이크 : 대량의 데이터에 대해 높은 확장성을 지원하는 분산 파일 시스템에 파일 기반 스토리지를 제공

구조화, 반구조화 및 비정형 파일을 데이터 레이크에 저장한 다음 Apache Spark와 같은 빅데이터 처리 기술에서 사용할 수 있다.

 - Azure Data Lake Storage Gen2 : MS Azure의 데이터 레이크 스토리지에 대한 클라우드 기반 솔루션을 제공하고 Azure에서 빌드된 많은 대규모 분석 솔루션을 뒷받침한다.

 

 

Azure Data Lake Storage Gen2 이해

- 데이터 레이크는 일반적으로 Blob 또는 파일로 저장된 해당 기본 형식의 데이터 리포지토리.

- 고성능 분석을 위해 Azure에 구축된 빅데이터 분석을 위한 포괄적이고 확장성있는 비용 효율적인 데이터 레이크 솔루션

- Azure Data Lake Storage는 파일 시스템과 스토리지 플랫폼을 결합하여 데이터에 대한 인사이트를 빠르게 파악할 수 있도록 지원한다.

- Data Lake Storage는 Azure Blob 스토리지 기능을 기반으로 하여 특히 분석 워크로드에 맞게 최적화한다. 이러한 통합을 통해 분석 성능, Blob 스토리지의 계층화 및 데이터 수명 주기 관리 기능, Azure Storage의 고가용성, 보안 및 내구성 기능을 사용할 수 있다.

 

이점

 - Data Lake Storage는 수백 기가바이트의 처리량을 안전하게 처리하면서 엑사바이트 규모의 데이터의 양과 다양성을 처리하도록 설계되었다. 이를 통해 Data Lake Storage Gen2를 실시간 및 일괄 처리 솔루션의 기초로 사용할 수 있다.

 

1. Hadoop 호환 액세스

 - HDFS(하둡 파일 시스템)에 저장된 것처럼 처리할 수 있다. 이 기능을 사용하면 환경간에 데이터를 이동하지 않고도 Azure Databricks, Azure HDInsight 및 Azure Synapse Analytics를 포함한 컴퓨팅 기술을 통해 한곳에 데이터를 저장하고 액세스할 수 있다. 또한 데이터 엔지니어는 내부 열 형식 스토리지를 사용하여 여러 플랫폼에서 고도로 압축되고 잘 수행되는 parquet 형식과 같은 스토리지 메커니즘을 사용할 수 있다.

 

2. 보안

 - 부모 디렉터리의 사용 권한을 상속하지 않는 ACL(액세스 제어 목록) 및 POSIX(이식 가능한 운영체제 인터페이스)권한을 지원한다.

 - 실제로 데이터 레이크 내에 저장된 데이터에 대한 디렉터리 수준 또는 파일 수준에서 권한을 설정하여 훨씬 더 안전한 스토리지 시스템을 제공할 수 있다.

 - 보안은 Hive 및 Spark와 같은 기술 또는 Azure Storage Explorer와 같은 유틸리티를 통해 구성할 수 있다. 이는 Windows, macOS, Linux에서 실행된다. 저장된 모든 데이터는 미사용 시 MS또는 고객 관리 키를 사용하여 암호화된다.

 

3. 성능

 - 저장된 데이터를 파일 시스템처럼 디렉터리와 하위 디렉터리의 계층 구조로 구성하여 더 쉽게 탐색할 수 있다. 결과적으로 데이터 처리에는 계산 리소스가 덜 필요하며 이로 인해 시간과 비용도 모두 절감된다.

 

4. 데이터 중복

 - LRS (로컬 중복 스토리지)를 사용하여 단일 데이터 센터에 또는 GRS(지역 중복 스토리지)옵션을 사용하여 보조 지역에 데이터 중복성을 제공하는 Azure Blob 복제 모델을 활용한다. 이 기능을 사용하면 재해가 발생하는 경우에도 데이터를 항상 사용할 수 있고 보호할 수 있다. 

 

Tip

데이터 레이크를 계획할 때마다 데이터 엔지니어는 구조, 데이터 거버넌스 및 보안을 신중하게 고려해야 한다. 여기에는 다음과 같은 레이크 구조 및 조직에 영향을 줄 수 있는 요인을 고려해야 한다.

  • 저장할 데이터 형식
  • 데이터를 변환하는 방법
  • 데이터에 액세스해야 하는 사용자
  • 일반적인 액세스 패턴

이 방법은 레이크 전체에서 액세스 제어 거버넌스를 계획하는 방법을 결정하는데 도움이 된다. 데이터 엔지니어는 데이터 거버넌스 및 데이터 품질 측정값이 부족하여 사용자에게 액세스할 수 없고 유용하지 않은 데이터 늪이 되지 않도록 사전에 대처해야 한다.

 

 

Azure Storage에서 Azure Data Lake Storage Gen2 사용

- Azure Data Lake Storage Gen2는 독립 실행형 Azure 서비스가 아니라 StorageV2(범용 V2) Azure Storage의 구성 가능한 기능

- Azure Storage 계정에서 Azure Data Lake Storage Gen2 사용하도록 설정하려면 Azure Portal 스토리지 계정을 만들 때 고급 페이지에서 "계층 구조 네임스페이스 사용" 옵션을 선택할 수 있다.

 - 또는 Azure Storage 계정이 이미 있고 Azure Data Lake Storage Gen2 기능을 사용하도록 설정하려는 경우 스토리지 계정 리소스에 대한 Azure Portal 페이지에서 Data Lake Gen2 업그레이드 마법사를 사용할 수 있다.

 

 

Azure Data Lake Store와 Azure Blob Storage 비교

- Azure Blob Storage에서는 대량의 비정형(개체) 데이터를 Blob컨테이너 내의 단일 구조 네임스페이스에 저장할 수 있다.

- Blob 이름에는 Blob을 가상 "폴더"로 구성하는 "/" 문자가 포함될 수 있지만 Blob 관리 효율성 측면에서 Blob은 단일 구조 네임스페이스에 단일 수준 계층 구조로 저장된다.

- HTTP 또는 HTTPs를 사용하여 이 데이터에 액세스할 수 있다.

- Azure Data Lake Storage Gen2는 Blob Storage를 기반으로 하며 Blob 데이터를 디렉터리로 구성하고 각 디렉터리와 그 안에 있는 파일에 대한 메타데이터를 저장하는 계층 구조 네임스페이스를 사용하여 대용량 데이터의 I/O를 최적화한다. 이 구조를 사용하면 디렉터리 이름 바꾸기 및 삭제와 같은 작업을 단일 원자성 작업으로 수행할 수 있다. 

 - 반면, 단일 구조 네임스페이스에는 구조의 개체수에 비례한 몇가지 작업이 필요하다.

 - 계층 구조 네임스페이스는 데이터를 체계적으로 유지하므로 분석 사용 사례의 스토리지 및 검색 성능이 향상되고 분석 비용이 절감된다.

 

팁)

데이터 분석을 수행하지 않고 데이터를 저장하려면 계층 구조 네임스페이스 옵션을 사용 안함으로 설정하여 스토리지 계정을 Azure Blob 스토리지 계정으로 설정한다. 또한 Blob 스토리지를 사용하여 거의 사용하지 않는 데이터를 보관하거나 이미지 및 미디어와 같은 웹사이트 자산을 저장할 수도 있다.

데이터 분석을 수행하는 경우 계층 구조 네임스페이스 옵션을 사용으로 설정하여 스토리지 계정을 Azure Data Lake Storage Gen2 계정으로 설정한다. Azure Data Lake Storage Gen2는 Azure Storgae 플랫폼에 통합되므로 애플리케이션에서 Blob API 또는 Azure Data Lake Storage Gen2 파일 시스템 API를 사용하여 데이터에 액세스할 수 있다.

 

 

빅데이터 처리를 위한 단계 이해

 - 데이터 레이크는 광범위한 빅데이터 아키텍처에서 기본 역할을 수행한다. 이러한 아키텍처에서는 다음을 만들 수 있다.

  • 엔터프라이즈 데이터 웨어하우스
  • 빅데이터에 대한 고급 분석
  • 실시간 분석 솔루션

- 아키텍처에 공통된 빅데이터 솔루션을 처리하는 4가지 단계는 다음과 같다.

  • 수집 - 수집 단계에서는 원본 데이터를 가져오는데 사용되는 기술과 프로세스를 식별한다. 이 데이터는 데이터 레이크에 저장해야 하는 파일, 로그 및 다른 형식의 비정형 데이터에서 가져올 수 있다. 사용되는 기술은 데이터가 전송되는 빈도에 따라 달라진다. 예를 들어, 일괄 처리 이동의 경우 Azure Synapse Analytics 또는 Azure Data Factory 의 파이프라인이 사용하기에 가장 적합한 기술일 수 있다. 실시간 데이터 수집의 경우 HDInsight용 Apache Kafka 또는 Stream Analytics가 적절한 선택일 수 있다.
  • 저장 - 저장 단계에서는 수집된 데이터를 배치할 위치를 식별한다. Azure Data Lake Storage Gen2는 일반적으로 사용되는 빅데이터 처리 기술과 호환되는 안전하고 확장 가능한 스토리지 솔루션을 제공한다.
  • 준비 및 학습 - 데이터 준비와 기계 학습 솔루션에 대한 모델 학습 및 채점을 수행하는데 사용되는 기술을 식별한다. 이 단계에서 사용되는 일반적인 기술은 Azure Synapse Analytics, Azure Databricks, Azure HDInsight, Azure Machine Learning Services이다.
  • 모델 및 제공 - 사용자에게 데이터를 제공하는 기술이 사용된다. 이러한 기술에는 Microsoft Power BI와 같은 시각화 도구 또는 Azure Synapse Analytics와 같은 분석 데이터 저장소가 포함될 수 있다. 비즈니스 요구사항에 따라 다수의 기술을 조합하여 사용하는 경우가 많다.

 

데이터 분석 워크로드에서 Azure Data Lake Storage Gen2 사용

 - Azure Data Lake Store Gen2는 여러 데이터 분석 사용 사례에 사용할 수 있는 기술. 몇가지 일반적인 유형의 분석 워크로드를 살펴보고 Azure Data Lake Storage Gen2가 다른 Azure 서비스와 함께 작동하여 이를 지원하는 방법을 알아본다.

 

[빅데이터 처리 및 분석]

-빅데이터 시나리오는 일반적으로 빠른 속도로 처리해야 하는 다양한 형식의 대규모 데이터를 포함하는 분석 워크로드를 참조한다.

- Azure Data Lake Storage Gen2는 Azure Synapse Analytics, Azure Databricks, Azure HDInsight와 같은 빅데이터 서비스가 Apache Spark, Hive, Hadoop과 같은 데이터 처리 프레임워크를 적용할 수 있는 확장 가능하고 안전한 분산 데이터 저장소를 제공한다.

 - 스토리지 및 처리 컴퓨팅의 분산 특성을 통해 작업을 병렬로 수행할 수 있으므로 대량의 데이터를 처리하는 경우에도 고성능 및 확장성이 향상된다.

 

[데이터 웨어하우징]

 - 데이터 레이크에 파일로 저장된 대량의 데이터를 데이터 웨어하우스의 관계형 테이블과 통합하기 위해 최근 몇년동안 발전해 왔다.

 - 데이터 웨어하우징 솔루션의 일반적인 예에서 데이터는 Azure SQL 데이터베이스 또는 Azure Cosmos DB와 같은 운영 데이터 저장소에서 추출되고 분석 워크로드에 더 적합한 구조로 변환된다.

 - 관계형 데이터 웨어하우스에 로드되기 전에 분산 처리를 용이하게 하기 위해 데이터가 데이터 레이크에서 스테이징되는 경우가 많다.

 - 경우에 따라 데이터 웨어하우스는 외부테이블을 사용하여 데이터 레이크의 파일에 대한 관계형 메타데이터 계층을 정의하고 하이브리드 "데이터 레이크하우스" 또는 "레이크 데이터베이스" 아키텍처를 만든다. 그런 다음 데이터 웨어하우스는 보고 및 시각화에 대한 분석 쿼리를 지원할 수 있다.

 - 이러한 종류의 데이터 웨어하우징 아키텍처를 구현하는 방법에는 여러가지가 있다. 다이어그램은 Azure Synapse Analytics가 Azure Data Factory 기술을 사용하여 ETL프로세스를 수행하기 위해 파이프라인을 호스트하는 솔루션을 보여준다. 이러한 프로세스는 운영 데이터 원본에서 데이터를 추출하고 Azure Data Lake Storage Gen2 컨테이너에 호스트되는 데이터 레이크에 로드한다. 그런 다음 데이터는 처리되고 Microsoft Power BI를 사용하여 데이터 시각화 및 보고를 지원할 수 있는 Azure Synapse Analytics 전용 SQL 풀의 관계형 데이터 웨어하우스에 로드된다.

 

 

[실시간 데이터 분석]

 - 데이터 스트림은 연결된 디바이스, 소셜 미디어 플랫폼, 기타 애플리케이션의 사용자가 생성한 데이터에서 생성할 수 있다. 기존 일괄 처리 워크로드와 달리 스트리밍 데이터에는 데이터 이벤트가 발생할 때 무한한 데이터 스트림을 캡처하고 처리할 수 있는 솔루션이 필요.

 - 스트리밍 이벤트는 처리를 위해 큐에서 캡처되는 경우가 많다. Azure Events Hubs를 포함하여 이 작업을 수행하는데 사용할 수 있는 여러 기술이 있다. 여기에서 데이터는 종종 임시 창을 통해 데이터를 집계하기 위해 처리된다. (예: 지정된 태그가 있는 소셜 미디어 메시지 수를 5분마다 계산하거나 분당 인터넷에 연결된 센서의 평균 읽기를 계산하는 경우)

 - Azure Stream Analytics를 사용하면 이벤트 데이터가 도착할 때 쿼리 및 집계하는 작업을 만들고 결과를 출력 싱크에 쓸 수 있다. 이러한 싱크 중 하나는 캡처된 실시간 데이터를 분석하고 시각화할 수 있는 Azure Data Lake Strorage Gen2이다.

 

 

[데이터 과학 및 기계 학습]

 - 데이터 과학에는 대용량 데이터의 통계 분석이 포함되며 종종 Apache Spark와 같은 도구 및 Pyton과 같은 스크립팅 언어를 사용한다. Azure Data Lake Storage Gen2는 데이터 과학 워크로드에 필요한 대량의 데이터에 대해 확장성이 뛰어난 클라우드 기반 데이터 저장소를 제공한다.

 - 기계 학습은 데이터 과학의 하위 집합으로 예측 모델링을 다룬다. 모델 학습에는 엄청난 양의 데이터와 해당 데이터를 효율적으로 처리할 수 있는 기능이 필요하다. Azure Machine Learning은 데이터 과학자가 동적으로 할당된 분산 컴퓨팅 리소스를 사용하여 Notebook에서 Pyton코드를 실행할 수 있는 클라우드 서비스. 컴퓨팅은 Azure Data Lake Storage Gen2 컨테이너의 데이터를 처리하여 모델을 학습시킨 다음, 예측 분석 워크로드를 지원하기 위해 프로덕션 웹 서비스로 배포할 수 있다.