問題タブ [azure-table-storage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2523 参照

azure - Azureテーブルストレージの文字列フィールドを日時フィールドに変換します

Azureテーブルに、日時を文字列形式で保持するフィールドがあります。これをDateTimeフィールドに置き換えて、文字列列の値を変換したいと思います。これにアプローチするための最良の方法は何ですか?

SQLでは、新しい列を作成して更新ステートメントを実行することでこれを行います...

0 投票する
4 に答える
13918 参照

unit-testing - 単体テストのために .NET で Azure Table Storage を偽造する方法は?

Azure Table Storage を使用するシステムに取り組んでいます。他のシステム (SQL、ファイル ベースなど) では、データの永続化ロジックをテストできる偽物を作成できます。ただし、Azure テーブル サービスの偽物を作成する簡単な方法がわかりません。

同じように動作する新しい IIS プロジェクトを作成することもできますが、それは単体テストを作成するのに適した方法ではありません。統合テストに近いものです。

Azure Table Storage クライアントを使用するデータ アクセス コードを単体テストする方法について何か考えはありますか?

0 投票する
1 に答える
278 参照

twitter - Azure テーブル ストレージを使用して、Twitter のようなアプリケーションにどのようにアプローチしますか?

とてもシンプルな Twitter ライクなアプリで考えていたのですが、つぶやきとタイムラインだけのサポートを考えていました。

しかし、リレーショナル モデルにかなり慣れている私の頭では、Azure テーブルや noSql で適切なモデルを思いつくことができません。基本的に、私は次のように考えていました:

  • ユーザーは他のユーザーを友達として追加できます。
  • ユーザーはメッセージを書き込むことができます (最大 200 文字)。
  • メッセージは常に時間順に表示され、最新のものから順に表示されます。
  • ユーザー ページには、彼の最後の 20 件のメッセージが表示されます。
  • メイン ページ (タイム ライン) には、彼と彼の友人からの最後の 20 件のメッセージが表示されます。

とてもシンプルです:D

すべてのメッセージを 1 つのテーブルに配置し、userId をパーティション キーとして配置すると、すべてが簡単になりますが、そのソリューションがうまくスケーリングするとは思えません。しかし、他のソリューションでは、タイム ライン ページが非常に複雑または非常に非効率的になります。これは、すべての友人から最新の 20 件のメッセージを取得することではなく、最新の 20 件をすべてまとめて取得することである...そして、それは私の心を吹き飛ばします. あなたには非常に迷惑な友人がいて、最新の 20 件のメッセージが彼からのものである可能性があります :D

この情報を Azure テーブル形式で格納するスケーラブルで効率的な方法は何でしょうか?

前もって感謝します。

0 投票する
1 に答える
832 参照

azure-storage - Azure で datetime に依存する行キーを繰り返す確率はどのくらいですか

このように構築された Azure テーブルで RowKey を繰り返す機会はありますか?

これは尋ねるのと同じです:

ティックの新しい値に到達する前に、私の webrole は 2 つのレコードを作成しますか?

エンティティを時系列の逆順に返したい。このテーブルは常に新しいエンティティが追加されるとは想定されていませんが、多くの挿入トランザクションが含まれることが期待されます。

解決

OK、これは Mark Seeman のおかげで私が見つけた解決策です。

string.Format("{0:d19}+{1}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks, Guid.NewGuid().ToString("N"))

Guid を使用すると、行キーが繰り返されないことが確実にわかります。

0 投票する
1 に答える
1052 参照

azure - 既に一意の属性を持つテーブルにAzureTableParitionKeyとRowKeyを選択する方法

私のエンティティはキーと値のペアです。90%の時間はキーに基づいてエンティティを取得しますが、10%の時間は逆引きも行います。つまり、値で検索してキーを取得します。

キーと値は両方とも一意であることが保証されているため、それらの組み合わせも一意であることが保証されています。

KeyをPartitionKeyとして、ValueをRowKeyとして使用するのは正しいですか?

これにより、ParitionKeyが一意であるため、サーバー間でデータの負荷が完全に分散されるようになると思います。

上記の決定に問題はありますか?どのような状況でも、ハードコードされたパーティションキーを使用するのは実用的ですか?つまり、すべての行に同じパーティションキーがありますか?RowKeyを一意に保ちますか?

0 投票する
1 に答える
662 参照

azure-storage - エンティティを複数のAzureテーブルストレージパーティション(同じテーブル)に挿入し、どの挿入が失敗したかを確認します

いくつかの外部Webサービスから情報を取得し、それをいくつかの異なるエンティティタイプに解析し、これらのエンティティをAzureテーブルストレージに格納するようにAzureワーカーロールを設定しています。重要なのは、これらのエンティティのすべてではないにしても、ほとんどがそれぞれテーブル内の独自のパーティションに挿入されることです。

AddObject(EntityToBeInserted)を呼び出すTableServiceContext拡張クラスを使用して、作成時に新しいエンティティをtableservicecontextにアタッチしています。現在、TableServiceContext.SaveChangesWithRetries(SaveChangesOptions.None)を呼び出して、これらのエンティティをそれぞれのパーティションのテーブルに保存しています。これはすべて正常に機能します。

私の質問は、それがうまく機能しない場合はどうなるのかということです。行キーとパーティションキーを一意でないものにすることで、1つ以上のエンティティを保存しないようにすることができますが、その動作の周りでキャッチしたエラーメッセージは、どのエンティティが失敗したかを示しておらず、エラーが発生しただけです。それらの中の一つ。

各エンティティが独自のパーティションに移動するワーカーロールからテーブルストレージにエンティティを保存するにはどうすればよいですか(これらの保存呼び出しの1つに2〜30のエンティティが挿入されていると仮定します)。これにより、これらの挿入の1つ以上が失敗した場合に少なくともそれがどれであったかを知ることができますか?これらの操作は非常に時間に敏感であるため、残念ながら、関連するストレージノードが再び使用可能になるのを待つために長時間実行される再試行オプションに依存することはできません。

ありがとう、アレックス

0 投票する
2 に答える
467 参照

azure - 開発ストレージに異なるエンティティを持つ Azure テーブル?

この質問に対する答えをまだ探しています:

Azure ストレージ内のテーブル内の異なるエンティティ間に構造的または型の類似性があるという要件はないと理解しています。しかし、開発ストレージはどうでしょうか? SQL Server Express を使用してデータを保存するため、開発ストレージにはスキーマが必要であるため、これは正しくないことを最近読みました。

誰かがこれを確認できますか。また、この場合、Dev Storage を使用して、本番環境のテーブル内のさまざまなエンティティをモデル化するにはどうすればよいですか?

前もって感謝します

0 投票する
4 に答える
3708 参照

azure - Azureテーブルストレージ-テーブルスキャンの速度はどれくらいですか?

テーブルスキャンを強制されないように、Azure Table Storage(ATS)のRowKeyまたはPartitionKey以外に対してクエリを実行しないように警告します。しばらくの間、これは私を麻痺させて、正確に正しいPKとRKを考え出し、他の何かを照会する必要があるときに他のテーブルに疑似セカンダリインデックスを作成しようとしました。

ただし、適切と思われる場合は、SQLServerでテーブルスキャンを実行するのが一般的です。

したがって、問題は、Azureテーブルをどのくらいの速度でテーブルスキャンできるかということです。これはエンティティ/秒で一定ですか、それともレコードサイズなどに依存しますか。レスポンシブアプリケーションが必要な場合、テーブルスキャンにはレコードが多すぎるという目安はありますか?

0 投票する
2 に答える
530 参照

azure - Azure TableServiceContext ファイル内の多数のテーブルまたは 1 つのテーブル?

約 10 個のストレージ テーブルを使用する Azure アプリケーションの作成に取り組んでいます。ベスト プラクティスを採用したいのですが、dataservicecontext.cs ファイル内のすべてのテーブルを含む 1 つのファイルだけを使用する必要があるのか​​、それともテーブルごとに異なるファイルを使用する必要があるのか​​がわかりません。どちらの方法でも同じことを達成できるように見えます。ベストプラクティスとは何かについて他の誰かが意見を持っていますか?

0 投票する
6 に答える
5917 参照

visual-studio-2010 - Azureテーブルストレージ、WCFサービスおよび列挙型

これが私の問題です。順序を定義するクラスには、次のように定義されPaymentStatusた、というプロパティがあります。enum

そして後で、クラス自体では、プロパティの定義は非常に単純です。

ただし、注文をAzure Table Storageに保存しようとすると、次の例外が発生します。

この時点で使用することはできないと思いenumましたが、Googleですばやく検索すると次のように返されます:http ://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/7eb1a2ca-6c1b-4440-b40e-012db98ccb0a

このページには2つの回答がリストされており、そのうちの1つは問題を無視しているようで、AzureStorageでの使用は問題ないことを示していenumます。

これで、をenumAzureテーブルストレージに保存するint必要はありません。対応するものを保存することもできますが、このプロパティをWCFサービスで公開する必要があります。

getプロパティを使用して、保存されているからsetを返し、のイベントを使用してAzureからこのプロパティを削除しようとしましたが、このエンティティのイベントが発生する前に例外が発生します。enumintegerWritingEntityDataContext

この時点で、私は途方に暮れています。WCFでこのプロパティをとして持つために他に何ができるかわかりませんが、enumAzureストアだけを持っていintます。