私は、azureテーブルストレージにセンサ出力データを格納するためのベストプラクティスを検索しましたが、最良の答えは得られませんでした。私は現在、azureテーブルストレージにセンサーデータを格納することからなるプロジェクトに取り組んでいます。現在、Sensor IDとしてパーティションキーを使用しています。毎秒センサー出力を保存しています。現在、約100台のセンサーが使用されています。大容量のデータが毎日保存されていることを想像してください。だから、特定のセンサーデータを日付別に検索すると、Webアプリケーションのパフォーマンスが低下します。 Webアプリケーションのパフォーマンスを改善する良い方法はありますか?パーティションキーとしてセンサーIDを日付に変更するのはどうですか?コードはここでは重要ではありません。私はUPDATEセンサーの出力データを格納するために、紺碧テーブルストレージにパーティションキーを作成する最も良い方法は何ですか?
各センサが出力日時である10種類の出力と日付を提供
...論理的な解決策を必要とする。..この質問できるようなシナリオに取り組んでいる多くの開発者を支援します。だから彼らは各センサーIDの同じ行にあります。ここ日時、10の出力列と出力日付
は私のコード
var query = TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, sensorID);
var dateFilter = TableQuery.CombineFilters(
TableQuery.GenerateFilterConditionForDate("outputdate", QueryComparisons.GreaterThanOrEqual, Convert.ToDateTime(from)),
TableOperators.And,
TableQuery.GenerateFilterConditionForDate("outputdate", QueryComparisons.LessThanOrEqual, Convert.ToDateTime(to))
);
query = TableQuery.CombineFilters(query, TableOperators.And, dateFilter);
var rangeQuery = new TableQuery<TotalizerTableEntity>().Where(query);
var entitys = table.ExecuteQuery(rangeQuery).OrderBy(j => j.date).ToList();
outputdateが出力を示している - センサID、のrowKey - そして私は
パーティションキーを日付の範囲を使用してセンサデータを取得し、センサIDいます発生した時間。これはdatetimeとして取得しています。すべての出力に同じ出力時間があります。
あなたの質問を以下のように更新してください。1)PartitionKeyとRowKeyを選択するための現在のデザインは何ですか?つまり、テーブルに格納されている現在の値は何ですか?2)データのクエリ方法を教えてください。可能なすべてのクエリシナリオを一覧表示してください。ありがとう! –
どのようなrowkeyを使用しますか? –
行のキーはdatetime –