0

パーティションキーと行キーを理解したい。

テーブルのエンティティを多くのストレージノードに自動的に分散するためのPartitionKeyの定義を理解しています。同じPartitionKeyが同じノードに保存されます。T RowKeyは、それが属するパーティション内のエンティティの一意のIDです。

したがって、次のようなレコードがある場合:

StudentName:
StudentId:

Date:
Attendence:
Attendance signed by Teacher:

この場合、このテーブルを定義する方法。実装におけるpartitionkeyとRowキーを本当に理解していませんでした。定義から私はそれらを理解しています。挿入したいレコードがあれば、どのように定義すればよいですか。

4

1 に答える 1

1

これは厳密には正しくありませんが、パーティションキーを表示する方法は、「グループ」を定義することであり、行キーはそのグループ内の特定のレコードを識別します。

データを最も効率的にモデル化するには、AzureStorageがどのように機能するかを理解することが重要です。パーティションが同じノードに格納されていることは正しいです。(高速ルックアップ用に)使用しているインデックスは、パーティションキーと行キーのみです。

学生のレコードの例では、このレコードは何に使用されているのでしょうか。つまり、レコードはどのように「グループ化」されているのでしょうか。これがクラス出席リストの場合、PartitionKeyがコースIDであり、RowKeyが個々の学生ID(PartitionKey = CourseId、RowKey = StudentId)である可能性があります。この場合、パーティション全体をフェッチしてコース名簿全体を取得するか、PartitionKey+RowKeyを使用して個々の学生を検索できます。

別の方法は、各学生に独自のパーティション(PartitionKey = StudentId)を与え、行キーは特定の日付(RowKey = Date)にすることです。このモデルでは、PartitionKeyだけをクエリするか、特定の日に出席しているかどうかを確認する場合は、PartitionKey + RowKey(StudentId + Date)をクエリすることで、学生の出席履歴全体をすばやく取得できます。

データをモデル化する方法は複数あります。これらの特定のレコードをどのように使用して最適なものにするかによって異なります。

于 2012-10-31T06:36:21.730 に答える