기존에 업무에서 많이 사용하던 RDB외에도 비정형 데이터 처리가 더 늘어나고 있습니다. MongoDB같은 제품이 대표적인 NO SQL진영의 기술입니다. Azure에도 많은 오픈 소스들이 통합되서 사용됩니다.
Azure는 일반적인 데이터 유형의 요구 사항에 맞게 다양한 데이터 플랫폼 기술을 제공합니다. 정형 데이터 및 비정형 데이터라는 두 가지 데이터 형식을 떠올려볼 필요가 있습니다.
Microsoft SQL Server, Azure SQL Database 및 Azure SQL Data Warehouse와 같은 관계형 데이터베이스 시스템에서는 디자인 타임에 데이터 구조가 정의됩니다. 데이터 구조는 테이블 형태로 설계됩니다. 즉, 시스템에 정보가 로드되기 전에 설계됩니다. 데이터 구조에는 관계형 모델, 테이블 구조, 열 너비 및 데이터 형식이 포함됩니다.
구조적 데이터베이스는 데이터 요구 사항이 변경될 때마다 변경되어야 하므로 관계형 시스템은 데이터 요구 사항 변화에 대응하는 속도가 느립니다. 새 열이 추가되면 테이블 전체에 새 열을 채우기 위해 기존의 모든 레코드를 대량으로 업데이트해야 할 수 있습니다.
관계형 시스템은 일반적으로 Transact-SQL(T-SQL)과 같은 쿼리 언어를 사용합니다.
비정형 데이터의 예로 이진, 오디오 및 이미지 파일이 있습니다. 비정형 데이터는 일반적으로 비정형 또는 NoSQL 시스템이라고 하는 비관계형 시스템에 저장됩니다. 비관계형 시스템에서는 디자인 타임에 데이터 구조가 정의되지 않으며, 데이터는 일반적으로 원시 형식으로 로드됩니다. 데이터 구조는 데이터를 읽을 때만 정의됩니다. 정의 시점의 차이는 다양한 출력에 동일한 원본 데이터를 사용할 수 있는 유연성을 제공합니다. 비관계형 시스템은 JSON 파일 형식과 같은 정형 데이터를 지원할 수도 있습니다.
오픈 소스 환경은 네 가지 유형의 비 SQL 데이터베이스를 제공합니다.
키-값 저장소: 테이블 구조에 데이터의 키-값 쌍을 저장합니다.
문서 데이터베이스: 문서 검색을 지원하기 위해 메타데이터를 사용하여 태그가 지정된 문서를 저장합니다.
그래프 데이터베이스: 꼭짓점과 가장자리로 구성된 구조를 사용하여 데이터 요소 간의 관계를 찾습니다.
열 데이터베이스: 행이 아닌 열을 기준으로 데이터를 저장합니다. 쿼리의 런타임에 열을 정의할 수 있으므로 데이터에 유연성이 생겨 효율적으로 반환됩니다.
지금까지 데이터 형식을 살펴보았으므로 이러한 데이터 형식의 저장, 처리 및 쿼리를 지원하는 일반적인 데이터 플랫폼 기술을 살펴보겠습니다.
Azure Storage 계정은 Azure 내에서 사용되는 기본 스토리지 유형입니다. Azure Storage는 데이터 개체용으로 대폭 확장 가능한 개체 저장소, 클라우드의 파일 시스템 서비스를 제공합니다. 또한 안정적인 메시징을 위한 메시징 저장소를 제공하거나 NoSQL 저장소로 사용될 수 있습니다.
Azure Blob: 텍스트 및 이진 데이터를 위한 확장 가능한 개체 저장소
Azure Files: 클라우드 또는 온-프레미스 배포에 대한 관리형 파일 공유
Azure 큐: 애플리케이션 구성 요소 간에 안정적인 메시징을 위한 메시지 저장소
Azure 테이블: 정형 데이터의 스키마 없는 스토리지를 위한 NoSQL 저장소
Azure Data Lake Storage 및 HDInsight와 같은 데이터 플랫폼 기술을 프로비저닝할 때 Azure Storage를 스토리지 기반으로 사용할 수 있습니다. 하지만 독립 실행형으로 사용할 Azure Storage를 프로비저닝할 수도 있습니다. 예를 들어 자기 디스크 스토리지 형태의 표준 스토리지 또는 SSD(반도체 드라이브) 형태의 프리미엄 스토리지로 Azure Blob 저장소를 프로비저닝할 수 있습니다.
무제한 확장성
Hadoop 호환성
ACL(액세스 제어 목록)에 보안 지원
POSIX 규정 준수
빅 데이터 분석용으로 최적화된 Azure Blob File System(ABFS) 드라이버
영역 중복 스토리지
지역 중복 스토리지
Azure Cosmos DB는 전역적으로 배포된 다중 모델 데이터베이스입니다. 여러 API 모델을 사용하여 배포할 수 있습니다.
SQL API
MongoDB API
Cassandra API
Gremlin API
Table API
Azure Cosmos DB의 다중 모델 아키텍처로 인해 각 모델의 고유한 기능을 활용할 수 있습니다. 예를 들어 반정형 데이터에는 MongoDB를 사용하고, 광범위 열에는 Cassandra를 사용하고, 그래프 데이터베이스에는 Gremlin을 사용할 수 있습니다. Gremlin을 사용하면 꼭짓점과 가장자리를 트래버스하는 그래프 엔터티 및 그래프 쿼리를 만들 수 있습니다. 이 방법을 사용하면 자연어 처리(NLP) 및 소셜 네트워킹 연결과 같은 복잡한 시나리오에서 1초 미만의 응답 시간을 구현할 수 있습니다.
SQL, MongoDB 또는 Cassandra에서 Azure Cosmos DB로 데이터베이스 서버를 이동하면 SQL, MongoDB 또는 Cassandra에서 작성된 애플리케이션이 계속 작동합니다.
Azure Cosmos DB를 사용하는 경우
지원되는 API 모델의 NoSQL 데이터베이스가 전역적으로 필요할 경우, 그리고 저지연 성능이 필요할 경우 Azure Cosmos DB를 배포하세요. 현재 Azure Cosmos DB는 99.999%의 가동 시간을 지원합니다. 올바르게 프로비저닝된 경우 10ms 미만의 응답 시간을 지원할 수 있습니다.
Azure Cosmos DB가 비즈니스 문제를 해결하는 데 도움이 되는 이 예를 고려해 보세요. Contoso는 영국 맨체스터에 본사를 둔 전자상거래 소매점입니다. 이 회사는 아동용 장난감을 판매합니다. Contoso의 관리자는 Power BI 보고서를 살펴본 후 오스트레일리아의 매출이 큰 폭으로 상승한 것을 발견했습니다. 관리자는 Dynamics 365에서 고객 서비스 사례를 살펴보고, 오스트레일리아 고객으로부터 사이트의 장바구니가 만료된다는 불만이 자주 접수된다는 사실을 발견했습니다.
Contoso의 네트워크 운영 관리자가 근본적인 문제를 확인했습니다. 회사의 유일한 데이터 센터가 런던에 있다는 것이 문제였습니다. 오스트레일리아와의 물리적 거리로 인해 지연 시간이 발생한 것입니다. Contoso는 Microsoft 오스트레일리아 동부 데이터 센터를 사용하여 오스트레일리아의 사용자에게 로컬 버전의 데이터를 제공하는 새로운 솔루션을 적용합니다. Contoso는 SQL API를 사용하여 온-프레미스 SQL Database를 Azure Cosmos DB로 마이그레이션합니다. 이 솔루션은 오스트레일리아 사용자를 위해 성능을 개선합니다. 데이터를 영국에 저장하고 오스트레일리아에 복제하여 처리 시간을 단축할 수 있습니다.
주요 특징
Azure Cosmos DB는 99.999%의 작동 시간을 지원합니다. 프로그래밍 또는 Azure Portal을 사용하여 지역 장애 조치를 호출할 수 있습니다. 지역 재해가 발생하면 Azure Cosmos DB 데이터베이스가 자동으로 장애 조치됩니다.
Azure Cosmos DB에서 다중 마스터 복제를 사용하면 전 세계 어디서나 1초 미만의 응답 시간을 달성할 수 있는 경우가 많습니다. Azure Cosmos DB는 읽기 및 쓰기에 10ms 미만의 응답 시간을 보장합니다.
Azure Cosmos DB에서 데이터의 일관성을 유지하기 위해 엔지니어링 팀은 전역적 솔루션의 고유한 과제를 해결하는 새로운 일관성 수준 세트를 도입해야 합니다. 일관성 수준으로는 강력, 제한된 부실, 세션, 일관적인 접두사 및 최종이 있습니다.
정형 데이터와 비정형 데이터 소개
https://docs.microsoft.com/ko-kr/learn/modules/survey-the-azure-data-platform/2-structured-vs-non-structured
Azure 스토리지 데이터 이행
https://docs.microsoft.com/ko-kr/learn/modules/survey-the-azure-data-platform/3-store-data-using-azure-store-account
Azure Data Lake Storage의 데이터 스토리지 이해
https://docs.microsoft.com/ko-kr/learn/modules/survey-the-azure-data-platform/4-store-data-using-azure-data-lake
Azure Cosmos DB 이해
https://docs.microsoft.com/ko-kr/learn/modules/survey-the-azure-data-platform/5-azure-cosmos-db