2010-12-23 3 views
0

Azure Table Storage에 대한 경험이있는 사람이라면 1 개의 테이블을 사용하여 여러 유형을 저장하는 것이 좋은지 궁금 할 것입니다.Azure 테이블 스토리지 디자인 질문 : 여러 유형을 저장하기 위해 1 개의 테이블을 사용하는 것이 좋은 생각입니까?

내가 이것을하고 싶은 이유는 거래를 할 수 있기 때문입니다. 그러나, 나는 또한 발전의 관점에서 이해하기를 원한다.이 접근법은 다루기가 쉽지 않거나 지저분 할까? 지금까지 저는 Azure Storage Explorer를 사용하여 하나의 테이블에서 여러 유형의 개발 및보기가 어려웠습니다.

예를 들어 블로그의 커뮤니티 사이트를 디자인한다고 가정하면 모든 블로그 게시물, 카테고리, 댓글을 한 테이블에 저장하면 어떤 문제가 발생합니까? 다른 한편으로는, 만약 내가하지 않는다면 어떻게 카테고리와 포스트에 대한 일관성을 유지할 수 있습니까? (1 포스트는 1 카테고리를 가질 수 있다고 가정하십시오)?

또는 테이블 스토리지를 사용하여이 문제를 해결하기 위해 다른 방법을 사용하고 있습니까?

감사합니다.

답변

2

목표가 완벽한 일관성을 유지하는 것이라면 단일 테이블을 사용하는 것이 좋습니다. 그러나, 나는 아마도 당신이 스스로를 어렵게 만들고 보상을 거의 얻지 못할 것이라고 생각합니다. 내가 말하는 이유는 테이블 스토리지가 매우 신뢰할 수 있다는 것입니다. 매우 중요한 데이터를 다루는 경우 트랜잭션은 훌륭하지만 블로그와 같은 대부분의 경우에는 일관성없는 데이터 중 일부를 허용하거나 2) 오류를 처리하는 것이 좋습니다. 좀 더 수작업으로

동일한 테이블에 여러 유형을 저장하면 가장 큰 문제는 직렬화입니다. 현재 테이블 스토리지 SDK 및 유틸리티는 대부분 단일 유형을 처리하도록 설계되었습니다. 즉, 수동으로 (가능한 모든 속성을 포함하는 마스터 객체로 객체를 비 직렬화) 또는 REST 서비스와 직접 상호 작용 (즉, Azure SDK를 거치지 않음)하는 여러 스키마를 확실히 처리 할 수 ​​있습니다. REST 서비스를 직접 사용했다면 직접 직렬화를 처리해야하므로 여러 유형을보다 효율적으로 처리 할 수 ​​있지만 일반적으로 Azure SDK에서 일반적으로 처리하는 모든 작업을 수동으로 처리해야한다는 단점이 있습니다.

실제로이 작업을 수행하는 데 올바른 방법이나 잘못된 방법이 없습니다. 두 가지 상황 모두 효과적 일뿐 아니라 가장 실용적인 문제입니다. 개인적으로 테이블 당 하나의 스키마를 넣는 경향이 있습니다. 그렇지 않으면 아주 좋은 이유가 있습니다. 나는 당신이 거래를 사용하지 않고도 충분히 신뢰할 수있는 테이블 스토리지를 발견 할 것이라고 생각한다.

Windows Azure Toolkit을 확인하시기 바랍니다. 우리는 좀 더 일반적인 푸른 작업을 단순화하기 위해이 툴킷을 설계했습니다.

+0

통찰력을 얻기 위해 네이선 감사합니다. Table Storage가 매우 신뢰할 만하다는 것을 아는 것은 좋습니다. 이 사실에 따라 필자는 그에 따라 앱을 디자인 할 것이다. 저는 Azure Table Storage 백서를보고있었습니다. 7.2 절에서 Cross-Table Consistency에 대한 기술을 설명 했으므로 구현하기가 매우 복잡합니다. 나는 너를 답으로 표시했다. 감사! –

관련 문제