2

シャードレットをあるシャードから別のシャードに移動したいと考えています。Azure Elastic Sc​​ale ライブラリと、提供されている分割/マージ/移動の例を使用しています。

シャードレットを移動しようとすると、ツールが (参照) テーブルを別のシャードに間違った順序でコピーしているため、エラーが発生し続けます。ツールは、Firmwareテーブルとの FK リレーションを持つテーブルをコピーしようとしていUserます。ただし、このUserテーブルはまだコピーされていないため、INSERTコマンドを実行しようとすると、FK 関係が満たされていないために失敗します。

サイトのドキュメントには次のように記載されています。

参照整合性: Split/Merge サービスは、テーブル間の依存関係を分析し、外部キーと主キーの関係を使用して、参照テーブルとシャードレットを移動する操作をステージングします。一般に、参照テーブルは最初に依存関係の順序でコピーされ、次にシャードレットが各バッチ内の依存関係の順序でコピーされます。これは、新しいデータが到着したときにターゲット シャードの FK-PK 制約が適用されるようにするために必要です。

テーブルが処理されるときに順序を管理する方法はありますか?

たぶん、登録されている順序を変更することによってですか?

4

1 に答える 1

1

両方のテーブル (ファームウェアとユーザー) が参照テーブルとしてシャード マップの SchemaInfoCollection に登録されているかどうかを再確認できますか? スペル、大文字と小文字...

Split/Merge は、SchemaInfoCollection 内の情報を使用して、参照テーブルのリストを取得し、それらの依存関係を分析します。したがって、バグがない限り、このシナリオは対処する必要があります。

シャード マップに正しい情報がある場合、これは確認したいバグです。これが事実であることが判明した場合はお知らせください。torsteng(at)microsoftDOTcom までご連絡ください。

ありがとう、トルステン

于 2015-02-05T07:18:03.453 に答える