2011-12-23 4 views
0

Azure를 쿼리하여 사용 가능한 파티션을 결정할 수 있기를 바랍니다. 이를 위해 두 가지 사용 사례가 있습니다.Azure 테이블의 기존 파티션을 확인하는 방법이 있습니까?

1) 보고서 집계를 쿼리 할 때 일부 파티션은 특정 날짜에 수행 된 작업의 로깅 정보를 기반으로합니다. 파티션 키는 데이터 세트를 나타내고 데이터는 그 날짜의 조작입니다. 나는 그 파티션의 통계 정보를 다른 테이블에 모으고 있습니다. ie : 하루 후 사후 처리가 완료되었습니다.

예 : 테이블 이름 : DailyAggregation 에 PartitionKey : CustomerID를 : 5, YYYY-MM-DD

나는 존재하지 않는, 모든 처리하지 않으려는 테이블 파티션 쿼리하려고 피하려고 매일 데이터의. 예를 들어 5 개월 간의 통계가 있고 처음 4 일 동안 처리되었지만 며칠 또는 몇 주 간격이 있습니다. 존재하지 않는 파티션의 데이터를 쿼리 할 필요가 없습니다.

2) 일부 파티션은 나중에 삭제 될 수있는 식별자를 기반으로합니다. 나는 그것들에 대한 참조가 더 이상 존재하지 않는 데이터를 보유하고있는 파티션을 식별 할 수 있도록 시스템 무결성 코드를 작성하여 삭제할 수 있도록하고 싶습니다. 즉, 고아 데이터.

예 : 테이블 이름 : DailyAggregation 에 PartitionKey : CustomerID를 : 5의 CustomerID는 SQL 애저에 저장되어있는 YYYY-MM-DD

. 고객 행이 삭제되었다고 가정 해 보겠습니다. 더 이상 참조되지 않는 데이터를 제거하기 위해 더 이상 존재하지 않는이 CustomerID에 대해 DailyAggregation 파티션이 존재하는지 여부를 쉽게 결정할 수 있기를 원합니다.

생각하십니까?

답변

0

다음은 어떻게 수행할까요?

먼저 전체 테이블에서 첫 번째 요소를 선택했습니다. PartitionKey 또는 RowKey를 지정하지 않고 첫 번째 행을 가져 오려면 "Take 1"을 지정하면됩니다.

다음으로 Take 1 쿼리에서 방금 얻은 파티션 키와 일치하는 모든 행을 가져 오는 다른 쿼리를 만듭니다.

다음 elacts의 다음 시작을 얻으려면 방금 얻은 파티션 키 다음에 오는 첫 번째 파티션 키를 얻으십시오. 따라서 파티션 키가 날짜 인 경우 날짜에 하나를 추가하기 만하면 "PartitionKey> = LastDate.AddDay (1)"와 같은 쿼리가됩니다. 이 쿼리를 제대로 수행하려면 날짜를 긴 형식으로 변환하고 문자열 표현이 같은 길이가되도록 패드를 붙여야합니다.

그런 다음 불필요한 날짜를 쿼리하지 않고도 전체 테이블 내용을 얻으려고 설명했던 내용을 반복 할 수 있습니다.

+0

이것은 내가 찾고있는 것에 가깝지만 데이터 무결성 검사를 수행하기 위해 존재하는 파티션을 결정하는 데 도움이되지 않습니다. 실제로 내 데이터 무결성 검사는 시스템에서 삭제할 수있는 데이터를 식별하기위한 것입니다. 특정 예제로 질문을 업데이트했습니다. 새 테이블 파티션을 별도로 만들 때마다 추적해야할까요? 그것은 오히려 수행하지 않을 추가 오버 헤드처럼 보입니다. 어쩌면 모든 파티션에 RowKey를 설정하고 RowKey로 쿼리 할 수 ​​있지만 PartitionKey는 쿼리하지 않을 수 있습니까? 생각? –

관련 문제