티스토리 뷰

반응형

대규모 제조 운영 조직에서 일하는 데이터 엔지니어라면 최신 데이터 웨어하우스를 구성하는 구성 요소에 대해 더 많이 알고 싶을 것입니다. 이 정보는 조직의 요구 사항에 가장 근접하게 부합하는 요소를 결정하는 데 도움이 됩니다. 이 부분에서는 Azure가 제공하는 데이터 서비스에 대해 자세히 알아봅니다. 이러한 서비스를 사용하면 여러 소스의 데이터를 결합하여 분석 모델로 다시 포맷하고 이러한 모델을 저장하여 후속 쿼리, 보고 및 시각화할 수 있습니다. Azure 데이터 팩토리부터 시작해 보겠습니다. Azure 데이터 팩토리는 데이터 통합 서비스로 설명됩니다. Azure Data Factory의 목적은 하나 이상의 데이터 원본에서 데이터를 검색하여 처리하는 형식으로 변환하는 것입니다. 데이터 원본은 다양한 방식으로 데이터를 표시할 수 있으며 필터링해야 하는 노이즈를 포함할 수 있습니다. Azure Data Factory를 사용하면 흥미로운 데이터를 추출하고 나머지는 버릴 수 있습니다. 흥미로운 데이터가 웨어하우스 솔루션의 다른 서비스에서 처리하기에 적합한 형식이 아닐 수 있으므로 변환할 수 있습니다. 예를 들어, 데이터에는 데이터 원본마다 다른 방식으로 형식이 지정된 날짜와 시간이 포함될 수 있습니다. Azure Data Factory를 사용하여 이러한 항목을 단일 균일한 구조로 변환할 수 있습니다. 그러면 Azure Data Factory는 수집된 데이터를 후속 처리를 위해 데이터 저장소에 쓸 수 있습니다. Azure 데이터 팩토리에서 수행하는 작업을 작업 파이프라인으로 정의합니다. 다양한 데이터 소스에서 데이터를 수신할 때 파이프라인을 계속 실행할 수 있습니다. Microsoft에서 제공하는 그래픽 사용자 인터페이스를 사용하거나 자체 코드를 작성하여 파이프라인을 만들 수 있습니다.Azure 포털의 Azure 데이터 팩토리에서 파이프라인 편집기에 액세스할 수 있습니다.이제 Azure 데이터 레이크 스토리지를 살펴보겠습니다. 데이터 레이크는 대량의 원시 데이터를 저장하는 저장소입니다. 데이터가 가공되지 않은 원시 데이터이기 때문에 로드 및 업데이트 속도가 매우 빠르지만 데이터가 효율적인 분석에 적합한 구조로 배치되지 않았습니다. 데이터 웨어하우스에는 대량의 데이터도 저장된다는 점에 유의해야 합니다. 하지만 웨어하우스의 데이터는 효율적인 분석을 위한 형식으로 변환되도록 처리되었습니다. 데이터 레이크에는 원시 데이터가 저장되지만 데이터 웨어하우스에는 정형 정보가 보관됩니다. 데이터 레이크는 수집된 데이터가 처리되어 분석을 수행하는 데 적합한 형식으로 변환되기 전의 스테이징 포인트로 생각할 수 있습니다. Azure Data Lake Storage는 기존 파일 시스템의 계층적 디렉터리 구조 및 파일 시스템 시맨틱을 Azure에서 제공하는 보안 및 확장성과 결합합니다. Azure 데이터 레이크 스토리지는 기본적으로 거의 무한에 가까운 파일 시스템으로 구성된 Azure Blob Storage의 확장입니다. 다음과 같은 특징이 있습니다. Data Lake Storage는 파일을 디렉터리와 하위 디렉터리로 구성하여 파일 구성을 개선합니다. Blob Storage는 디렉터리 구조를 모방하는 것만 가능합니다. Data Lake Storage는 이동식 운영 체제 인터페이스 또는 POSIX 파일 및 디렉터리 권한을 지원하여 데이터에 대한 세분화된 역할 기반 액세스 제어 또는 RBAC를 가능하게 합니다. Azure 데이터 레이크 스토리지는 하둡 분산 파일 시스템 또는 HDFS와 호환됩니다 . Hadoop은 많은 조직에서 대량의 데이터를 검사하는 데 사용하는 매우 유연하고 프로그래밍 가능한 분석 서비스입니다. 모든 아파치 하둡 환경은 Azure Data Lake Storage Gen2의 데이터에 액세스할 수 있습니다. Azure 데이터 서비스 데이터 웨어하우스 솔루션에서 데이터는 일반적으로 Azure Synapse Analytics에서 효율적인 분석을 지원하는 구조로 처리되기 전에 Azure Data Lake Storage에 로드됩니다. Azure Data Factory와 같은 서비스를 사용하여 다양한 소스의 데이터를 수집하고 Azure Data Lake Storage로 로드할 수 있습니다.이제 Azure 데이터브릭스를 살펴보겠습니다. Azure Databricks는 Azure에서 실행되는 Apache Spark 환경으로 빅 데이터 처리, 스트리밍 및 기계 학습을 제공합니다. Apache Spark는 대량의 데이터를 매우 빠르게 소비하고 처리할 수 있는 매우 효율적인 데이터 처리 엔진입니다. SQL 처리, 집계와 같은 작업을 수행하고 데이터를 사용하여 기계 학습 모델을 구축 및 학습시키는 데 사용할 수 있는 Spark 라이브러리는 상당히 많습니다. Azure Databricks는 일련의 일괄 작업으로 제출하기 전에 처리를 단계별로 정의하고 테스트할 수 있는 그래픽 사용자 인터페이스를 제공합니다. R, Python, Scala와 같은 언어를 사용하여 Databricks 스크립트와 쿼리 데이터를 만들 수 있습니다. 노트북을 사용하여 Spark 코드를 작성합니다. 노트북에는 셀이 들어 있으며 각 셀에는 별도의 코드 블록이 들어 있습니다. 노트북을 실행하면 각 셀의 코드가 Spark에 차례로 전달되어 실행됩니다. 예를 들어 통합 문서에 쿼리를 실행한 다음 그래프를 생성하는 셀이 있을 수 있습니다. Azure Databricks는 구조화된 스트림 처리도 지원합니다. 이 모델에서 Databricks는 계산을 점진적으로 수행하고 스트리밍 데이터가 발생할 때마다 결과를 지속적으로 업데이트합니다.

 

이 부분에서는 최신 데이터 웨어하우징을 위한 Azure 데이터 분석 구성 요소를 살펴봅니다. Azure 시냅스 애널리틱스부터 시작해 보겠습니다. Azure 시냅스 애널리틱스는 분석 엔진입니다. 대량의 데이터를 매우 빠르게 처리하도록 설계되었습니다. Synapse Analytics를 사용하면 플랫 파일, Azure Data Lake 또는 기타 데이터베이스 관리 시스템과 같은 외부 소스에서 데이터를 수집할 수 있습니다. 그런 다음 이 데이터를 분석 처리에 적합한 형식으로 변환하고 집계합니다. 이 데이터에 대해 복잡한 쿼리를 수행하고 보고서, 그래프 및 차트를 생성할 수 있습니다. 외부 소스에서 데이터를 읽고 변환하려면 상당한 리소스가 소모될 수 있습니다. Azure Synapse Analytics를 사용하면 읽은 데이터를 저장하고 서비스 내에서 로컬로 처리할 수 있습니다. 이에 대해서는 나중에 설명합니다. 이 방법을 사용하면 매번 데이터를 가져와서 변환하는 오버헤드 없이 동일한 데이터를 반복적으로 쿼리할 수 있습니다. 이 데이터를 Azure Analysis Services를 사용하여 추가 분석 처리를 위한 입력으로 사용할 수도 있습니다. Azure 시냅스 분석은 대규모 병렬 처리 또는 MPP 아키텍처를 활용합니다. 이 아키텍처에는 제어 노드와 컴퓨팅 노드 풀이 포함됩니다. 제어 노드는 아키텍처의 두뇌입니다. 모든 애플리케이션과 상호 작용하는 것은 프론트엔드입니다. MPP 엔진은 제어 노드에서 실행되어 병렬 쿼리를 최적화하고 조정합니다. 처리 요청을 제출하면 제어 노드가 이를 데이터의 개별 하위 집합에 대해 병렬로 실행되는 더 작은 요청으로 변환합니다. 컴퓨팅 노드는 컴퓨팅 성능을 제공합니다. 처리할 데이터는 노드 전체에 균등하게 분배됩니다. 사용자와 애플리케이션은 제어 노드에 처리 요청을 보냅니다. 제어 노드는 각각 보유하고 있는 데이터 부분에 대해 쿼리를 실행하는 컴퓨팅 노드에 쿼리를 보냅니다. 컴퓨팅 노드는 컴퓨팅 노드에 쿼리를 실행합니다. 각 노드의 처리가 완료되면 결과가 제어 노드로 다시 전송되어 전체 결과로 합쳐집니다. Azure Synapse Analytics는 SQL 풀과 Spark 풀이라는 두 가지 계산 모델을 지원합니다. SQL 풀에서 각 컴퓨팅 노드는 Azure SQL 데이터베이스와 Azure 스토리지를 사용하여 데이터의 일부를 처리합니다. 트랜잭션 SQL 문의 형태로 쿼리를 제출하면 Azure Synapse Analytics에서 쿼리를 실행합니다. 하지만 일반 SQL Server 데이터베이스 엔진과 달리 Azure Synapse Analytics는 다양한 소스로부터 데이터를 받을 수 있습니다. 이를 위해 Azure 시냅스 애널리틱스는 PolyBase라는 기술을 사용합니다. PolyBase를 사용하면 Azure Blob Storage 또는 Azure Data Lake Storage와 같은 관계형 및 비관계형 소스와 구분된 텍스트 파일에서 데이터를 검색할 수 있습니다. 읽은 데이터를 Synapse 분석 서비스 내에 SQL 테이블로 저장할 수 있습니다. 참고: 트랜잭션 SQL 쿼리를 실행하지 않는 경우에만 SQL 풀을 확장할 수 있습니다. SQL 풀을 생성할 때 노드 수를 지정합니다. 필요에 따라 SQL 풀을 수동으로 확장하여 컴퓨팅 노드를 추가하거나 제거할 수 있습니다. 트랜잭션 SQL 쿼리를 실행하지 않는 경우에만 SQL 풀을 확장할 수 있다는 점에 유의하세요. Spark 풀에서는 노드가 Spark 클러스터로 대체됩니다. Azure Databricks와 같은 방식으로 노트북에 작성된 코드로 구성된 Spark 작업을 실행합니다. 노트북용 코드는 C-sharp, Python, Scala 또는 Spark SQL로 작성할 수 있는데, 이는 트랜잭션 SQL과는 다른 SQL 언어입니다. SQL 풀과 마찬가지로 Spark 클러스터는 작업을 동시에 수행할 수 있는 일련의 병렬 작업으로 분할합니다. 노트북에서 생성된 데이터를 Azure 스토리지 또는 데이터 레이크 스토리지에 저장할 수 있습니다. 이제 인메모리 처리에 대한 중요한 참고 사항으로, Spark는 인메모리 처리에 최적화되어 있습니다. Spark 작업은 데이터를 메모리에 로드하고 캐시한 다음 반복적으로 쿼리할 수 있습니다. 인메모리 컴퓨팅은 디스크 기반 애플리케이션보다 훨씬 빠르지만 추가 메모리 리소스가 필요합니다. Spark 클러스터를 생성할 때 필요한 노드 수를 지정합니다. Spark 풀은 자동 크기 조정을 활성화하여 필요에 따라 노드를 추가하거나 제거하여 풀을 확장할 수 있습니다. 처리가 활성화되어 있는 동안 자동 크기 조정이 발생할 수 있습니다. Azure Synapse Analytics가 많은 리소스를 소비할 수 있다는 점도 중요합니다. 한동안 처리를 수행할 계획이 없는 경우 서비스를 일시 중지할 수 있습니다. 이렇게 하면 풀의 리소스가 다른 사용자에게 릴리스되어 비용이 절감됩니다. 이제 Azure 분석 서비스를 살펴보겠습니다. 이를 통해 온라인 분석 처리 또는 OLAP 쿼리를 지원하는 표 형식 모델을 만들 수 있습니다. Azure SQL 데이터베이스, Azure 시냅스 분석, Azure 데이터 레이크 스토어, Azure Cosmos DB 등 여러 소스의 데이터를 결합할 수 있습니다. 이러한 데이터 원본을 사용하여 비즈니스 지식을 통합하는 모델을 구축할 수 있습니다. 모델은 기본적으로 다양한 데이터 소스에서 데이터를 검색하고 결과를 생성하는 쿼리 및 표현식의 집합입니다. 결과는 나중에 사용하기 위해 메모리에 캐시하거나 기본 데이터 소스에서 직접 동적으로 계산할 수 있습니다. Analysis Services에는 데이터 원본을 서로 연결하고 필터 및 집계 데이터를 결합하는 쿼리를 정의하는 데 도움이 되는 그래픽 디자이너가 포함되어 있습니다. 분석 서비스 내에서 이 데이터를 탐색하거나 Microsoft Power BI와 같은 도구를 사용하여 이러한 모델이 제공하는 데이터를 시각화할 수 있습니다. Azure 분석 서비스는 Azure Synapse Analytics와 기능이 상당히 중복되지만 소규모 처리에는 더 적합합니다. 이러한 맥락을 설명하기 위해 일반적으로 Azure Synapse Analytics를 사용하여 매우 높은 용량의 데이터, 수 테라바이트에서 페타바이트 크기의 데이터 집합, 매우 복잡한 쿼리 및 집계, 데이터 마이닝 및 데이터 탐색, 복잡한 ETL 작업, ETL은 추출, 변환 및 로드의 약자이며, 여러 소스에서 원시 데이터를 검색하고 이 데이터를 표준 형식으로 변환하여 저장하는 방법, 낮은 수준 등의 작업에 사용합니다. 동시 실행 빈도가 낮은 사용자 수는 128명 이하입니다. 반면 Azure Analysis Services는 몇 테라바이트, 상호 연관될 수 있는 여러 소스, 높은 읽기 동시성, 수천 명의 사용자, Power BI의 함수를 사용한 세부 분석 및 데이터 심층 분석, 표 형식 데이터에서 빠른 대시보드 개발 등과 같은 작은 볼륨의 데이터에는 사용하십시오. Synapse 분석 및 분석 서비스를 함께 사용하면 많은 시나리오에서 이점을 얻을 수 있습니다. 사전 처리가 필요한 대량의 수집된 데이터가 있는 경우 Synapse Analytics를 사용하여 이 데이터를 읽고 대량의 원시 데이터 대신 비즈니스 정보가 포함된 모델로 조작할 수 있습니다. Synapse Analytics의 확장성 덕분에 테라바이트에 달하는 데이터를 대부분의 데이터를 요약하고 집계하는 작고 간결한 데이터 세트로 처리하고 줄일 수 있습니다. 그런 다음 Analysis Services를 사용하여 이 정보에 대한 자세한 조사를 수행하고 Power BI를 통해 이러한 문의 결과를 시각화할 수 있습니다. 이제 Azure HDInsight를 살펴보겠습니다. Azure HDInsight는 Azure 환경에서 Spark와 같은 기술을 위한 플랫폼을 제공하는 빅데이터 처리 서비스입니다. HDInsight는 여러 컴퓨터에 처리를 분산하는 클러스터형 모델을 구현합니다. 이 모델은 노드가 Azure SQL 데이터베이스가 아닌 Spark 처리 엔진을 실행한다는 점을 제외하면 Synapse Analytics에서 사용하는 모델과 유사합니다. Azure HDInsight는 Spark뿐만 아니라 Azure 시냅스 애널리틱스와 함께 또는 Azure 시냅스 애널리틱스와 함께 또는 대신 사용할 수 있습니다. HDInsight는 아파치 카프카 및 아파치 하둡 처리 모델과 같은 스트리밍 기술을 지원합니다. 다음은 데이터 웨어하우징 솔루션에서 HDInsight의 구성 요소를 사용할 수 있는 경우의 예제 시나리오입니다. 오픈 소스 프레임워크인 Apache Hadoop은 대규모 데이터 처리 문제를 작은 청크로 나누어 서버 클러스터 전체에 분산합니다. 이는 Synapse Analytics가 작동하는 방식과 비슷합니다. 그러면 SQL 쿼리 기능인 Hive를 HDInsight 클러스터와 함께 사용하여 다양한 형식으로 보관된 데이터를 검사할 수 있습니다. 이를 사용하여 Azure Synapse Analytics용 PolyBase와 유사한 방식으로 외부 테이블을 만들고, 로드하고, 쿼리할 수 있습니다. 이 강의에서는 데이터 웨어하우스 솔루션의 작동 방식을 설명하고 Azure에서 최신 데이터 웨어하우스를 구성하는 데 사용할 수 있는 서비스에 대한 개요를 제공했습니다. 이 강의에서는 데이터 웨어하우징 개념을 탐색하고, 최신 데이터 웨어하우징을 위한 Azure Data Services를 살펴보고, 워크로드의 최신 데이터 웨어하우징 아키텍처를 살펴보고, Azure Portal의 Azure 데이터 서비스를 탐색하는 방법을 살펴보았습니다.

 

반응형

'aws, ms-azure' 카테고리의 다른 글

Microsoft Azure에서의 데이터 저장 및 처리  (0) 2024.03.16
데이터 수집  (0) 2024.03.16
Azure Blob 스토리지 관리  (0) 2024.03.16
Azure Cosmos DB 관리  (0) 2024.03.16
Azure Cosmos DB  (1) 2024.03.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함