Microsoft Azure 문서DB vs Azure 테이블 스토리지
최근 몇 년 동안 Microsoft는 "Table Storage"(http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-tables/)라고 하는 "NoSQL" 키/값 스토리지를 제공하고 있습니다.
테이블 스토리지는 높은 퍼포먼스, 확장성(파티셔닝을 통해) 및 비교적 저렴한 비용을 제공합니다.파티션 키와 행 키만 인덱싱할 수 있다는 테이블의 주요 단점은 값에 대한 쿼리를 만드는 것이 매우 비효율적이라는 것입니다.
최근 마이크로소프트는 "DocumentDB"(http://azure.microsoft.com/en-us/documentation/services/documentdb/)라는 새로운 "NoSQL" 서비스를 발표했습니다.
등록 정보 목록(예: 표)을 저장하는 대신 문서DB는 JSON 개체를 저장합니다.전체 개체 인덱싱 - 저장된 개체의 모든 속성 및 중첩된 속성을 기반으로 효율적인 쿼리를 만들 수 있습니다.
Microsoft는 이 문서를DB는 고성능과 확장성 또한 제공합니다.
그렇다면 DocumentDB가 아닌 테이블 스토리지를 사용하는 이유는 무엇입니까?문서처럼 들립니다.DB는 테이블과 동일한 기능을 제공하지만, 모든 것을 인덱싱하는 기능과 같은 추가 기능을 제공합니다.
누군가 문서를 비교해주셨으면 좋겠습니다.DB 및 테이블 스토리지, 각각의 단점과 장점을 강조합니다.
둘 다 NoSQL 기술이지만 크게 다릅니다.Azure Tables는 단순한 키/값 스토어로 복잡한 쿼리와 같은 복잡한 기능을 지원하지 않습니다(대부분의 쿼리는 풀 파티션/테이블 스캔이 필요하기 때문에 퍼포먼스와 비용 절감 효과가 저하됩니다), 커스텀 인덱스화(인덱싱은 PartitionKey 및 RowKey만을 기반으로 합니다).현재 다른 엔티티 속성을 인덱싱할 수 없으며 PartitionKey/RowKey 조합 이외의 항목을 검색하려면 파티션/테이블 스캔) 또는 저장 프로시저가 필요합니다.또한 여러 엔티티에 대한 읽기 요청을 일괄 처리할 수 없습니다(모든 엔티티가 동일한 파티션에 속한 경우 일괄 쓰기 요청을 통해 지원됨).Azure 테이블의 실제 적용에 대해서는, 여기를 참조해 주세요.
(특히 질의에 관한) 데이터 요구가 심플한 경우(위의 예와 같이) Azure Tables는 필요한 것을 제공합니다.가격, 퍼포먼스 및 스토리지 용량 때문에 DocDB에 유리하게 사용할 수 있습니다.예를 들어 Azure Tables 성능 목표는 초당 20.000회의 작업입니다.DocDB에서 동일한 수준의 성능을 얻으려고 하면 서비스 비용이 상당히 높아집니다.또한 Azure 테이블은 Azure 스토리지 계정의 용량(500)에 따라 제한됩니다.TB), DocDB 스토리지는 구입한 용량 단위로 제한됩니다.
테이블 서비스는 주로 키밸류 타입의 NOSQL과 문서입니다.DB는 이름에서 알 수 있듯이 Document Type NoSQL 저장소입니다.이 두 가지 유형의 NOSQL 접근 방식이 본질적으로 어떻게 다른지를 묻고 있습니다.이렇게 연구를 구체화하면 확실히 더 잘 이해할 수 있을 거예요.
단순하게 하기 위해 문서 작성 방법 간의 차이점을 고려해 보시기 바랍니다.DB 및 테이블 서비스는 가격이 책정됩니다.이러한 서비스의 비용은 서로 크게 다를 뿐만 아니라 문서가DB는 "프로비저닝 우선" 모델에서 작동하며 테이블 서비스는 순수 소비 기반 가격으로 제공됩니다. 비교/대조에 대한 몇 가지 단서를 제공할 수 있습니다.
질문 하나 하겠습니다.왜 Document를 사용합니까?DB는 테이블 서비스의 기능이 요구에 적합한지 여부를 확인합니다.현재 Azure Diagnostics 툴이 Azure Storage Services를 어떻게 사용하고 있는지, 스토리지 메트릭스가 Azure Storage를 어떻게 사용하고 있는지, 테이블 서비스가 얼마나 유용한지, 문서가 얼마나 오버킬되는지 살펴보시기 바랍니다.DB는 상황에 따라 다를 수 있습니다.
이게 도움이 됐으면 좋겠다.
비교는 퍼포먼스와 가격을 교환하는 것이 전부라고 생각합니다.테이블 서비스는 스토리지 서비스일 뿐입니다.20,000 ops/second에 도달하는 것처럼 보이지만, 이러한 throughput에 항상 비용을 지불하는 것은 (스토리지가 항상 우리에게 제공하기 때문에) 월 1,200달러입니다.말도 안 되는 돈.
테이블 서비스에는 단순한 인덱스가 있으므로 쿼리는 매우 제한됩니다.ID로 쓰고 읽는 모든 것에 적합합니다.문서DB는 전체 문서를 색인화하여 모든 특성에 대해 조회를 수행할 수 있습니다.
마지막으로 테이블 서비스는 현재 스토리지 계정의 스토리지 제약(Microsoft와의 직접 협상을 통해 엄청나게 높아질 수 있음)에 의해 구속됩니다.여기서 Document는DB 스토리지는 무제한으로 보입니다.
그래서 균형이야.필요한 대량의 데이터(수백 기가바이트 또는 테라바이트)가 한 곳에 저장되어 있습니까?DocumentDB.복잡한 쿼리를 지원해야 합니까?DocumentDB.1대 2의 속성 조회를 기반으로 빠르게 송수신해야 하는 데이터가 있습니까?테이블 서비스스루풋에 대한 코스트 지불을 피하기 위해 간단한 인덱스를 중심으로 코드를 작성해야 합니까?테이블 서비스
그리고 레디스, 누가 그 말을... 나도 몰라(Redis가 제공하는) 캐싱 프레임워크에 지속성이 있다고 해서 그것이 최고의 테크놀로지가 되는 것은 아닙니다.캐시와 같이 "자주 사용되지만 누락되거나 시간이 걸릴 수 있는" 데이터를 보관하는 영구 저장소와 데이터를 보관하는 영구 저장소 사이에는 큰 차이가 있습니다.
실생활의 예:
토큰을 저장하고, 회수하고, 삭제해야 해지금까지 수행된 쿼리만 사용자 ID를 기반으로 합니다.
그래서 저는 테이블 스토리지를 사용하고 있습니다.테이블 스토리지는 제 요건을 완벽하게 충족하기 때문입니다.사용자 ID에 대해 토큰을 저장합니다.
문서 DB가 이것 때문에 과잉 살상된 것 같아요.
에서의 회답은 다음과 같다.
Cosmos DB, Azure 테이블 스토리지 및 Azure SQL 데이터베이스의 공통 속성:
99.99 가용성 SLA
완전 관리형 데이터베이스 서비스
ISO 27001, HIPAA 및 EU 모델 조항 준수
다음 표는 Azure Cosmos DB, Azure 테이블 스토리지의 일반적이지 않은 특성을 보여줍니다.
언급URL : https://stackoverflow.com/questions/28928016/microsoft-azure-documentdb-vs-azure-table-storage
'programing' 카테고리의 다른 글
| Excel 2010에서 워크시트 전체를 새 워크시트에 복사 (0) | 2023.04.21 |
|---|---|
| 서버 실행에 실패했습니다(HRESULT: 0x80080005(CO_E_SERVER_EXEC_).실패) (0) | 2023.04.21 |
| 긴 n = 2000*2000*2000; 오버플로우인 이유는 무엇입니까? (0) | 2023.04.21 |
| StackPanel의 자 요소를 띄우려면 어떻게 해야 합니까? (0) | 2023.04.21 |
| 반복하는 동안 NSMutable Array에서 제거하는 가장 좋은 방법은 무엇입니까? (0) | 2023.04.21 |
