2016-10-19 21 views
1

私はAzure Container Storageに保存された有名な作品の数千の画像を持っています。各画像は、それに関連するいくつかのアートワーク情報を有する。タイトル、アーティスト、年など現在、この情報は画像IDに基づいて取得するAzureテーブルストレージに保存されます。しかし、それは画像の属性データとしてこの情報を格納し、呼び出すために(パフォーマンスとベストプラクティスの面で)良いだろう?:Azure - 画像メタデータ用のFetchAttributesとテーブルストレージ

var myAttributes = myBlockBlob.FetchAttributesAsync(); 

ここでは、Azureテーブルを使用して、私はそれを行う現在の方法です取得:

var myGetOperation = TableOperation.Retrieve<TileInfoEntity>("0", imageID); 
var myResult = await myTable.ExecuteAsync(myGetOperation); 

ありがとうございます。

答えて

1

コンテンツメタデータを処理するには、必ずしも正しい方法と間違った方法があります。必要な場所に保存することができます。

blobストレージはメタデータのクエリツールを提供しないため、特定のBLOBのメタデータを直接読み込む以外にメタデータを使用する簡単な方法はありません。

テーブルストレージのようなストレージシステムでは、パーティションや行キーに基づいたクエリ、異なるデータ型の提供、CRUD操作の提供などが可能です。他のデータベースエンジンと同様に、インデックス/クエリサポート。

1

行キー+パーティションキーを知っているよりも速くテーブルストレージから取得することは、すべてのメタデータを使用してRedis Cacheをウォームアップし、それを元に戻すことです。

cache.StringSet("key1", "value1"); 
string value = cache.StringGet("key1"); 

私たちは少なくとも1Kのリクエスト/秒で話していない場合はパフォーマンスの向上が重要ではないと思う正直に言うと。

IIS kernel-mode output cacheは、要求が整形式(静的オブジェクトのように見える)の場合にも適しています。

<system.webServer> 
    <caching> 
     <profiles> 
      <add extension=".metadata" policy="CacheForTimePeriod" 
      duration="00:00:55" varyByHeaders="Accept-Language" /> 
     </profiles> 
    </caching>     
</system.webServer> 

あなたのボトルネックはどこにあるのかを知っています - あなたのテレメトリは指を指さないものを最適化しないでください。

関連する問題