2012-03-26 8 views
0

バイナリをAzure Tableに保存したい場合、TableServiceEntityに継承されたクラスを作成すると、データ型はどのように使用されますか?そして、[]長< = 64Kバイトが必要であるすべての方法バイナリのためにそのない TableServiceEntityによるAzure Table Storageへのバイナリの保存方法

64K上
public class SomeEntity : TableServiceEntity 
{ 
     public whattype BinaryData { get; set; } 
} 
+1

バイナリデータの場合は、それをBlobstoreに入れて、それを私のテーブルに置く傾向があります。 – onnoweb

+0

私はいつもそれらを両方とも必要とし、バイナリは64k未満ですので、1つのトランザクションでそれらを照会するのが好きです –

+0

LokadCloudでFatEntitiesをチェックすることもできます - http://code.google.com/p/lokad-cloud/wiki/ FatEntitiesそれはあなたのニーズに最適かもしれません!面白い、チェックに行きます。 – astaykov

答えて

4

を保証するデータ型のための長さをチェックすることです。テーブルストレージクライアントは、転送目的でのみBase64に変換しますが、ストレージはバイナリ形式になります。 64Kを超えて格納する場合は、複数の列に分割できます。

大規模なデータ列> 64K、配列、列挙型、シリアル化、パブリックおよびプライベートのプロパティとフィールドなどをサポートするAzureテーブルストレージクライアントLucifure Stashを作成しました。それはオープンソースであり、http://lucifurestash.codeplex.comとNuGetで入手できます。

+0

1行に1M以上のデータをサポートできますか? –

+0

Azureテーブルストレージは、1MBを超える行サイズをサポートしていません。これには、プロパティ名の格納に使用される領域を含むオーバーヘッドが含まれます。もちろん、抽象レベルを使用して複数の行に分割することもできますが、ここではBlobストレージを優先実装します。 – hocho

関連する問題