티스토리 뷰

aws, ms-azure

Azure Cosmos DB 관리

shannon. 2024. 3. 16. 14:10
반응형

애저 코스모스 DB는 NoSQL 데이터베이스 관리 시스템입니다. MongoDB 및 Cassandra를 비롯한 일부 기존 NoSQL 시스템과 호환됩니다. Contoso 시나리오에서는 재고 품목 수량에 대한 정보를 보관하는 Cosmos DB 데이터베이스를 만들었습니다. 이제 이 데이터베이스를 채우는 방법과 쿼리하는 방법을 이해해야 합니다. 이제 Cosmos DB가 데이터를 저장하는 방법을 살펴보겠습니다. 그런 다음 Cosmos DB 데이터베이스에 데이터를 업로드하고 대량 로드를 지원하도록 Cosmos DB를 구성하는 방법을 알아봅니다. Cosmos DB는 데이터를 일련의 문서로 관리합니다. JSON 또는 자바스크립트 객체 표기법을 사용하여 문서 구조를 나타냅니다. 이 형식에서는 문서의 필드가 중괄호로 묶이고 각 필드 앞에 해당 이름이 붙습니다. 문서는 키로 식별되는 필드 모음입니다. 각 문서의 필드는 다를 수 있으며 필드에는 하위 문서가 포함될 수 있습니다. 예를 들어 고객 정보를 나타내는 문서 쌍을 만들 수 있습니다. 두 경우 모두 각 고객 문서에는 이름과 주소가 포함된 하위 문서가 포함되지만 이러한 하위 문서의 필드는 고객마다 다릅니다. Cosmos DB 데이터베이스의 문서는 컨테이너로 구성되어 있습니다. 컨테이너의 문서는 파티션으로 그룹화됩니다. 파티션에는 공통 파티션 키를 공유하는 문서 집합이 들어 있습니다. 문서에 있는 필드 중 하나를 파티션 키로 지정합니다. 모든 관련 문서를 한꺼번에 모으는 파티션 키를 선택해야 합니다. 이 방법을 사용하면 특정 엔티티에 대한 문서 세트를 검색할 때 쿼리에서 수행해야 하는 I/O 디스크 읽기의 양을 줄일 수 있습니다. 예를 들어 고객 세부 정보와 주문 내역을 기록하는 전자 상거래 시스템용 문서 데이터베이스에서 고객 ID별로 데이터를 분할하고 각 고객의 고객 및 주문 세부 정보를 동일한 파티션에 저장할 수 있습니다. 고객에 대한 모든 정보와 주문을 찾으려면 해당 단일 파티션을 쿼리하기만 하면 됩니다. Cosmos DB는 Microsoft Azure의 기본 서비스로, 스카이프, Xbox, Microsoft 365, Microsoft Azure를 비롯한 전 세계 규모의 미션 크리티컬 애플리케이션을 위한 많은 Microsoft 제품에서 사용되고 있습니다. Cosmos DB는 IoT 및 텔레매틱스, 소매 및 마케팅, 게임, 웹 및 모바일 애플리케이션에 매우 적합합니다. Cosmos DB 사용에 대한 추가 정보는 일반적인 Azure Cosmos DB 사용 사례를 읽어보세요. 이 사용 사례는 이 강의 마지막 부분에 있는 추가 자료에서 링크되어 있습니다. Cosmos DB 데이터베이스의 데이터는 일련의 명령 및 작업 (총칭하여 API라고 함) 을 통해 액세스합니다. API는 애플리케이션 프로그래밍 인터페이스의 약자입니다. Cosmos DB가 현재 지원하는 몇 가지 API는 다음과 같습니다. 코스모스 DB는 SQL API라는 자체 네이티브 API를 제공합니다. 이 API는 SELECT 문을 사용하여 문서를 검색할 수 있도록 문서에 대해 SQL과 유사한 쿼리 언어를 제공합니다. 예를 들어 고객 컨테이너에 세부 정보가 저장된 특정 고객의 주소를 검색하려면 고객 컨테이너의 주소 필드를 선택하면 됩니다. 여기서 고객 ID는 원하는 검색어와 동일합니다. Cosmos DB는 다른 NoSQL 데이터베이스 관리 시스템의 명령 세트를 사용하여 이러한 문서에 액세스할 수 있는 다른 API도 제공합니다. 이러한 다른 API는 Azure 테이블 스토리지 API를 사용하여 문서를 저장하고 검색할 수 있는 테이블 API 인터페이스입니다. 이 인터페이스의 목적은 기존 애플리케이션을 수정할 필요 없이 테이블 스토리지에서 Cosmos DB로 전환할 수 있도록 하는 것입니다. MongoDB는 자체 프로그래밍 인터페이스를 갖춘 잘 알려진 또 다른 문서 데이터베이스입니다. 많은 조직에서 MongoDB를 온프레미스로 실행합니다.Cosmos DB용 MongoDB API를 사용하여 Cosmos DB 데이터베이스에서 MongoDB 애플리케이션을 변경하지 않고 실행되도록 할 수 있습니다. MongoDB 데이터베이스의 데이터를 클라우드에서 실행되는 Cosmos DB로 마이그레이션할 수 있지만 기존 애플리케이션을 계속 실행하여 이 데이터에 액세스할 수 있습니다. Cassandra는 컬럼 패밀리 데이터베이스 관리 시스템입니다. 이는 많은 조직이 온프레미스에서 실행하는 또 다른 데이터베이스 관리 시스템입니다.코스모스 DB용 카산드라 API는 코스모스 DB에 카산드라와 유사한 프로그래밍 인터페이스를 제공합니다. 카산드라 API 요청은 코스모스 DB 문서 요청에 매핑됩니다. MongoDB API와 마찬가지로 카산드라 API의 주요 목적은 카산드라 데이터베이스 및 애플리케이션을 Cosmos DB로 빠르게 마이그레이션할 수 있도록 하는 것입니다. 마지막으로, 그렘린 API는 그래프 데이터베이스 인터페이스를 Cosmos DB에 구현합니다. 그래프는 데이터 객체와 지시된 관계의 모음입니다. 데이터는 여전히 Cosmos DB에 문서 세트로 보관되지만 Gremlin API를 사용하면 데이터에 대해 그래프 쿼리를 수행할 수 있습니다. Gremlin API를 사용하면 그래프에서 모든 종류의 복잡한 관계를 포괄하는 객체와 관계를 살펴볼 수 있습니다. 예를 들어 샘의 집주인의 애완동물 이름은 무엇입니까? Table, MongoDB 및 Cassandra API의 주요 용도는 이러한 데이터 저장소를 사용하여 작성된 기존 애플리케이션을 지원하는 것입니다. 새 애플리케이션과 데이터베이스를 구축하는 경우 SQL API 또는 그렘린 API를 사용해야 합니다. Cosmos DB는 Cosmos DB 데이터베이스에 데이터를 업로드하고 해당 데이터를 쿼리하기 위한 몇 가지 옵션을 제공합니다. Azure 포털의 데이터 탐색기를 사용하여 임시 쿼리를 실행할 수 있습니다. 이 도구를 사용하여 데이터를 로드할 수도 있지만 한 번에 한 문서만 로드할 수 있습니다. 데이터 로드 기능은 주로 대량의 데이터를 가져오는 대신 테스트 목적으로 총 크기가 최대 2MB인 소량의 문서를 업로드하는 데 사용됩니다. Cosmos DB 데이터 마이그레이션 도구를 사용하여 다른 데이터 소스에서 데이터를 대량 로드하거나 전송할 수도 있습니다. 또한 Azure Data Factory를 사용하여 다른 소스에서 데이터를 가져올 수 있습니다. Cosmos DB BulkExecutor 라이브러리를 사용하여 데이터를 가져오는 사용자 지정 애플리케이션을 작성할 수 있습니다. 이 전략은 이 모듈의 범위를 벗어납니다. 마지막으로 Cosmos DB SQL API 클라이언트 라이브러리에서 사용할 수 있는 함수를 사용하여 데이터를 저장하는 자체 애플리케이션을 만들 수 있습니다. 이 접근 방식도 이 모듈의 범위를 벗어납니다. 데이터 마이그레이션 도구를 사용하여 JSON 파일, MongoDB, SQL Server, CSV 파일, Azure 테이블 스토리지, Amazon Dynamo DB, HBase 및 Azure Cosmos 컨테이너를 비롯한 다양한 소스에서 Azure Cosmos DB로 데이터를 가져올 수 있습니다. 데이터 마이그레이션 도구는 GitHub에서 다운로드할 수 있습니다. 이 도구는 데이터를 Cosmos DB 데이터베이스로 마이그레이션하는 프로세스를 안내합니다. 앞서 나열한 항목 중 하나인 데이터 소스와 목적지인 Cosmos DB 데이터베이스 및 컨테이너를 입력하라는 메시지가 표시됩니다. 이 도구는 기존 컨테이너를 채우거나 지정된 컨테이너가 아직 없는 경우 새 컨테이너를 생성할 수 있습니다. 참고로 데이터 마이그레이션 도구를 사용하여 Cosmos DB 컨테이너의 데이터를 로컬 또는 Azure Blob 스토리지에 있는 JSON 파일로 내보낼 수 있습니다.데이터 양이 많은 경우 데이터 마이그레이션 도구는 여러 개의 동시 스레드를 사용하여 데이터를 청크로 일괄 처리하고 청크를 병렬로 로드할 수 있습니다. 각 스레드는 데이터베이스에 대한 별도의 클라이언트 연결 역할을 합니다. 대량 로드는 쓰기 집약적인 작업이 될 수 있습니다. 컨테이너에 데이터를 업로드할 때 동시에 발생하는 쓰기 작업의 양을 지원하도록 구성된 처리 용량이 충분하지 않으면 일부 업로드 요청이 실패합니다. Cosmos DB는 HTTP 429 오류를 보고하며 요청 비율이 높습니다. 따라서 대규모 데이터 가져오기를 수행할 계획이라면 대상 Cosmos 컨테이너에 사용할 수 있는 처리량 리소스를 늘려야 합니다. 데이터 마이그레이션 도구를 사용하여 컨테이너를 만들고 채우는 경우 대상 정보 페이지에서 할당할 처리량 리소스를 지정할 수 있습니다. 컨테이너를 이미 만든 경우 Azure Portal의 데이터베이스 데이터 탐색기 페이지에 있는 데이터베이스의 규모 설정을 사용하여 최대 처리량을 지정하거나 처리량을 자동 크기 조정으로 설정합니다. 데이터가 로드되면 처리량 리소스를 줄여 데이터베이스 비용을 낮출 수 있습니다.

 

반응형

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

최신 데이터 웨어하우징을 위한 Azure 데이터 수집 구성 요소  (0) 2024.03.16
Azure Blob 스토리지 관리  (0) 2024.03.16
Azure Cosmos DB  (1) 2024.03.16
MS Azure - cosmoDB  (0) 2024.03.16
Azure Blob 스토리지  (0) 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
글 보관함