빅 데이터 아키텍처는 기존 데이터베이스 시스템에 비해 너무 크거나 복잡한 데이터의 수집, 처리 및 분석을 처리하도록 설계되었습니다.
빅 데이터 아키텍처 스타일
빅 데이터 솔루션에는 일반적으로 다음 유형의 워크로드 중 하나 이상이 포함됩니다.
- 미사용 빅 데이터 원본의 일괄 처리입니다.
- 동작 중인 빅 데이터의 실시간 처리
- 빅 데이터의 대화형 탐색
- 예측 분석 및 기계 학습.
대부분의 빅 데이터 아키텍처에는 다음 구성 요소 중 일부 또는 전부가 포함됩니다.
데이터 원본: 모든 빅 데이터 솔루션은 하나 이상의 데이터 원본으로 시작합니다. 예를 들면 다음과 같습니다.
- 관계형 데이터베이스와 같은 애플리케이션 데이터 저장소
- 웹 서버 로그 파일과 같은 애플리케이션에서 생성된 정적 파일입니다.
- IoT 디바이스와 같은 실시간 데이터 원본
데이터 스토리지: 일괄 처리 작업을 위한 데이터는 대용량 대용량 파일을 다양한 형식으로 저장할 수 있는 분산 파일 저장소에 일반적으로 저장됩니다. 이러한 종류의 저장소는 종종 데이터 레이크. 이 스토리지를 구현하기 위한 옵션에는 Azure Storage의 Azure Data Lake Store 또는 Blob 컨테이너가 포함됩니다.
Batch 처리: 데이터 집합이 너무 크기 때문에 빅 데이터 솔루션은 장기 실행 일괄 처리 작업을 사용하여 데이터 파일을 처리하여 데이터를 필터링, 집계 및 준비해야 합니다. 일반적으로 이러한 작업에는 원본 파일을 읽고, 처리하고, 출력을 새 파일에 쓰는 작업이 포함됩니다. 옵션에는 Microsoft Fabric의 데이터 흐름, 데이터 파이프라인 사용이 포함됩니다.
실시간 메시지 수집
: 솔루션에 실시간 원본이 포함된 경우 아키텍처에 스트림 처리를 위한 실시간 메시지를 캡처하고 저장하는 방법이 포함되어야 합니다. 들어오는 메시지가 처리를 위해 폴더에 삭제되는 간단한 데이터 저장소일 수 있습니다. 그러나 많은 솔루션은 메시지의 버퍼 역할을 하고 스케일 아웃 처리, 신뢰할 수 있는 배달 및 기타 메시지 큐 의미 체계를 지원하기 위해 메시지 수집 저장소가 필요합니다. 옵션에는 Azure Event Hubs, Azure IoT Hubs 및 Kafka가 포함됩니다. 스트림 처리: 실시간 메시지를 캡처한 후 솔루션은 필터링, 집계 및 분석을 위해 데이터를 준비하여 처리해야 합니다. 그러면 처리된 스트림 데이터가 출력 싱크에 기록됩니다. Azure Stream Analytics는 무제한 스트림에서 작동하는 영구적으로 실행되는 SQL 쿼리를 기반으로 관리되는 스트림 처리 서비스를 제공합니다. 또 다른 옵션은 데이터를 수집할 때 KQL 쿼리를 실행할 수 있는 Microsoft Fabric에서 실시간 인텔리전스를 사용하는 것입니다.
분석 데이터 저장소: 많은 빅 데이터 솔루션은 분석을 위해 데이터를 준비한 다음 분석 도구를 사용하여 쿼리할 수 있는 구조화된 형식으로 처리된 데이터를 제공합니다. 이러한 쿼리를 처리하는 데 사용되는 분석 데이터 저장소는 대부분의 전통적인 BI(비즈니스 인텔리전스) 솔루션에서 볼 수 있듯이 Kimball 스타일의 관계형 데이터 웨어하우스이거나 medallion 아키텍처(Bronze, Silver 및 Gold)가 있는 레이크하우스일 수 있습니다. Azure Synapse Analytics는 대규모 클라우드 기반 데이터 웨어하우징을 위한 관리형 서비스를 제공합니다. 또는 Microsoft Fabric은 각각 SQL 및 Spark를 사용하여 쿼리할 수 있는 웨어하우스 및 레이크하우스 옵션을 모두 제공합니다.
분석 및 보고: 대부분의 빅 데이터 솔루션의 목표는 분석 및 보고를 통해 데이터에 대한 인사이트를 제공하는 것입니다. 사용자가 데이터를 분석할 수 있도록 아키텍처에는 다차원 OLAP 큐브 또는 Azure Analysis Services의 테이블 형식 데이터 모델과 같은 데이터 모델링 계층이 포함될 수 있습니다. Microsoft Power BI 또는 Microsoft Excel의 모델링 및 시각화 기술을 사용하여 셀프 서비스 BI를 지원할 수도 있습니다. 분석 및 보고는 데이터 과학자 또는 데이터 분석가가 대화형 데이터 탐색의 형태를 취할 수도 있습니다. 이러한 시나리오의 경우 Microsoft Fabric은 사용자가 SQL 또는 선택한 프로그래밍 언어를 선택할 수 있는 Notebook과 같은 도구를 제공합니다.
오케스트레이션: 대부분의 빅 데이터 솔루션은 반복되는 데이터 처리 작업으로 구성되며, 워크플로에 캡슐화되어 원본 데이터를 변환하거나, 여러 원본과 싱크 간에 데이터를 이동하거나, 처리된 데이터를 분석 데이터 저장소에 로드하거나, 결과를 보고서 또는 대시보드로 바로 푸시합니다. 이러한 워크플로를 자동화하려면 Azure Data Factory 또는 Microsoft Fabric 파이프라인과 같은 오케스트레이션 기술을 사용할 수 있습니다.
Azure에는 빅 데이터 아키텍처에서 사용할 수 있는 많은 서비스가 포함되어 있습니다. 대략 두 가지 범주로 분류됩니다.
- Microsoft Fabric, Azure Data Lake Store, Azure Synapse Analytics, Azure Stream Analytics, Azure Event Hubs, Azure IoT Hub 및 Azure Data Factory를 포함한 관리되는 서비스.
- HDFS, HBase, Hive, Spark 및 Kafka를 비롯한 Apache Hadoop 플랫폼을 기반으로 하는 오픈 소스 기술 이러한 기술은 Azure HDInsight 서비스의 Azure에서 사용할 수 있습니다.
이러한 옵션은 상호 배타적이지 않으며 많은 솔루션이 오픈 소스 기술과 Azure 서비스를 결합합니다.
이 아키텍처를 사용하는 경우
다음을 수행해야 하는 경우 이 아키텍처 스타일을 고려합니다.
- 기존 데이터베이스에 비해 너무 큰 볼륨에 데이터를 저장하고 처리합니다.
- 분석 및 보고를 위해 구조화되지 않은 데이터를 변환합니다.
- 바인딩되지 않은 데이터 스트림을 실시간으로 캡처, 처리 및 분석하거나 대기 시간이 짧습니다.
- Azure Machine Learning 또는 Azure Cognitive Services를 사용합니다.
혜택
- 기술 선택. HDInsight 클러스터의 Azure 관리 서비스 및 Apache 기술을 혼합하고 일치하여 기존 기술 또는 기술 투자를 활용할 수 있습니다.
- 병렬 처리통해 성능
. 빅 데이터 솔루션은 병렬 처리를 활용하여 대량의 데이터로 확장되는 고성능 솔루션을 가능하게 합니다. - 탄력적 확장
. 빅 데이터 아키텍처의 모든 구성 요소는 스케일 아웃 프로비저닝을 지원하므로 솔루션을 작거나 큰 워크로드에 맞게 조정하고 사용하는 리소스에 대해서만 비용을 지불할 수 있습니다. - 기존 솔루션과의 상호 운용성 . 빅 데이터 아키텍처의 구성 요소는 IoT 처리 및 엔터프라이즈 BI 솔루션에도 사용되므로 데이터 워크로드 간에 통합 솔루션을 만들 수 있습니다.
도전
- 복잡성. 빅 데이터 솔루션은 매우 복잡할 수 있으며 여러 데이터 원본에서 데이터 수집을 처리하는 다양한 구성 요소가 있습니다. 빅 데이터 프로세스를 빌드, 테스트 및 해결하는 것은 어려울 수 있습니다. 또한 성능을 최적화하기 위해 사용해야 하는 여러 시스템에서 많은 수의 구성 설정이 있을 수 있습니다.
- 기술 세트. 많은 빅 데이터 기술은 고도로 전문화되어 있으며 일반적인 애플리케이션 아키텍처가 아닌 프레임워크 및 언어를 사용합니다. 반면, 빅 데이터 기술은 더 확립된 언어를 기반으로 하는 새로운 API를 발전하고 있습니다.
- 기술 완성도. 빅 데이터에 사용되는 많은 기술이 진화하고 있습니다. Hive 및 Spark와 같은 핵심 Hadoop 기술이 안정화되는 동안 델타 또는 빙산과 같은 새로운 기술은 광범위한 변화와 향상된 기능을 도입합니다. Microsoft Fabric과 같은 관리되는 서비스는 다른 Azure 서비스와 비교하여 비교적 젊으며 시간이 지남에 따라 발전할 가능성이 높습니다.
- 보안. 빅 데이터 솔루션은 일반적으로 모든 정적 데이터를 중앙 집중식 데이터 레이크에 저장하는 데 의존합니다. 특히 여러 애플리케이션 및 플랫폼에서 데이터를 수집하고 사용해야 하는 경우 이 데이터에 대한 액세스를 보호하는 것이 어려울 수 있습니다.
모범 사례
병렬 처리활용합니다. 대부분의 빅 데이터 처리 기술은 여러 처리 단위에 워크로드를 분산합니다. 이렇게 하려면 정적 데이터 파일을 만들고 분할 가능한 형식으로 저장해야 합니다. HDFS와 같은 분산 파일 시스템은 읽기 및 쓰기 성능을 최적화할 수 있으며, 실제 처리는 여러 클러스터 노드에서 병렬로 수행되므로 전체 작업 시간이 줄어듭니다. Parquet과 같이 분할 가능한 데이터 형식을 사용하는 것이 좋습니다.
데이터파티션을
. 일괄 처리는 일반적으로 되풀이 일정(예: 매주 또는 매월)에 발생합니다. 처리 일정과 일치하는 임시 기간에 따라 데이터 파일 및 테이블과 같은 데이터 구조를 분할합니다. 이렇게 하면 데이터 수집 및 작업 예약이 간소화되고 오류를 보다 쉽게 해결할 수 있습니다. 또한 Hive, Spark 또는 SQL 쿼리에 사용되는 테이블을 분할하면 쿼리 성능이 크게 향상될 수 있습니다. 읽기 시 스키마 의미 체계적용합니다. 데이터 레이크를 사용하면 구조적, 반구조적 또는 비구조적이든 관계없이 여러 형식의 파일에 대한 스토리지를 결합할 수 있습니다. 데이터가 저장될 때가 아니라 데이터를 처리할 때 스키마를 데이터에 프로젝터하는 스키마 온 읽기 의미 체계를 사용합니다. 이렇게 하면 솔루션에 유연성이 구축되고 데이터 유효성 검사 및 형식 검사로 인한 데이터 수집 중에 병목 현상이 발생하지 않습니다.
현재 위치데이터를 처리합니다. 기존 BI 솔루션은 종종 ETL(추출, 변환 및 로드) 프로세스를 사용하여 데이터를 데이터 웨어하우스로 이동합니다. 대용량 데이터와 다양한 형식을 사용하는 빅 데이터 솔루션은 일반적으로 TEL(변환, 추출 및 로드)과 같은 ETL의 변형을 사용합니다. 이 방법을 사용하면 변환된 데이터를 분석 데이터 저장소로 이동하기 전에 분산 데이터 저장소 내에서 데이터를 처리하여 필요한 구조로 변환합니다.
사용률 및 시간 비용분산합니다. 일괄 처리 작업의 경우 컴퓨팅 노드의 단위당 비용과 해당 노드를 사용하여 작업을 완료하는 분당 비용이라는 두 가지 요소를 고려해야 합니다. 예를 들어 일괄 처리 작업은 4개의 클러스터 노드로 8시간이 걸릴 수 있습니다. 그러나 작업이 처음 2시간 동안에만 4개의 노드를 모두 사용하는 것으로 판명될 수 있으며, 그 후에는 두 개의 노드만 필요합니다. 이 경우 두 노드에서 전체 작업을 실행하면 총 작업 시간이 늘어나지만 두 배가 되지 않으므로 총 비용이 줄어듭니다. 일부 비즈니스 시나리오에서는 사용량이 부족한 클러스터 리소스를 사용하는 비용보다 처리 시간이 길어질 수 있습니다.
리소스구분합니다. 가능하면 워크로드에 따라 리소스를 분리하여 다른 리소스가 대기하는 동안 모든 리소스를 사용하는 하나의 워크로드와 같은 시나리오를 방지하는 것을 목표로 합니다.
데이터 수집오케스트레이션합니다. 경우에 따라 기존 비즈니스 애플리케이션은 Microsoft Fabric과 같은 다운스트림 서비스에서 사용할 수 있는 Azure Storage Blob 컨테이너에 직접 일괄 처리를 위한 데이터 파일을 작성할 수 있습니다. 그러나 온-프레미스 또는 외부 데이터 원본에서 데이터 레이크로의 데이터 수집을 오케스트레이션해야 하는 경우가 많습니다. Azure Data Factory 또는 Microsoft Fabric에서 지원하는 것과 같은 오케스트레이션 워크플로 또는 파이프라인을 사용하여 예측 가능하고 중앙에서 관리하기 쉬운 방식으로 이를 달성할 수 있습니다.
중요한 데이터를 초기스크러빙합니다. 데이터 수집 워크플로는 데이터 레이크에 저장하지 않도록 프로세스 초기에 중요한 데이터를 스크러빙해야 합니다.
IoT 아키텍처
IoT(사물 인터넷)는 빅 데이터 솔루션의 특수 하위 집합입니다. 다음 다이어그램은 IoT에 대한 가능한 논리 아키텍처를 보여줍니다. 다이어그램은 아키텍처의 이벤트 스트리밍 구성 요소를 강조합니다.
IoT 아키텍처
클라우드 게이트웨이는 신뢰할 수 있고 짧은 대기 시간 메시징 시스템을 사용하여 클라우드 경계에서 디바이스 이벤트를 수집할 있습니다.
디바이스는 클라우드 게이트웨이로 직접 또는 필드 게이트웨이통해 이벤트를 보낼 수 있습니다. 필드 게이트웨이는 일반적으로 디바이스와 함께 배치된 특수 디바이스 또는 소프트웨어로, 이벤트를 수신하고 클라우드 게이트웨이로 전달합니다. 필드 게이트웨이는 원시 디바이스 이벤트를 전처리하여 필터링, 집계 또는 프로토콜 변환과 같은 함수를 수행할 수도 있습니다.
수집 후 이벤트는 데이터를 스토리지로 라우팅하거나 분석 및 기타 처리를 수행할 수 있는 하나 이상의 스트림 프로세서 통과합니다.
다음은 몇 가지 일반적인 처리 유형입니다. (이 목록은 확실히 완전하지 않습니다.)
보관 또는 일괄 처리를 위해 콜드 스토리지에 이벤트 데이터를 작성합니다.
핫 경로 분석, 이벤트 스트림을 실시간으로 분석하여 변칙을 검색하거나, 롤링 시간 기간 동안 패턴을 인식하거나, 스트림에서 특정 조건이 발생할 때 경고를 트리거합니다.
알림 및 경보와 같은 디바이스에서 특수한 유형의 비 원격 분석 메시지 처리
기계 학습.
회색으로 음영 처리된 상자는 이벤트 스트리밍과 직접 관련이 없지만 완전성을 위해 여기에 포함된 IoT 시스템의 구성 요소를 표시합니다.
디바이스 레지스트리 디바이스 ID 및 일반적으로 디바이스 메타데이터(예: 위치)를 포함하여 프로비전된 디바이스의 데이터베이스입니다.
프로비전 API 새 디바이스를 프로비전하고 등록하기 위한 일반적인 외부 인터페이스입니다.
일부 IoT 솔루션을 사용하면 명령 및 제어 메시지 디바이스로 보낼 수 있습니다.
이 섹션에서는 IoT에 대한 매우 높은 수준의 보기를 제공했으며 고려해야 할 많은 미묘한 문제와 과제가 있습니다. 자세한 내용은 IoT 아키텍처참조하세요.
다음 단계
빅 데이터 아키텍처에 대해 자세히 알아봅니다. - IoT 아키텍처대해 자세히 알아봅니다.