2

Microsoft SQL Azure フェデレーションに関していくつか質問があります。

1) アクティブなデータベースにフェデレーテッド DB を作成できますか? または事前にフェデレーションをデプロイする必要がありますか?

2) フェデレーションのクエリ方法に準拠するために SQL クエリを変更する必要がありますか? または、1 つの SQL Server データベースに対して作業していたので、通常のクエリを引き続き使用できますか?

3) データベースを分割してしばらくすると、シャードの 1 つが非常にビジーでほとんどいっぱいになっていることがわかりました。フェデレーションを使用してこの問題にどのように対処すればよいですか? - 90% 使用されている単一の連合テーブルのみを分割する必要がありますか?それとも、より広い範囲を使用して分割戦略を再作成する必要がありますか? 問題は、1 人の特定のユーザーが非常にアクティブである可能性があることです。したがって、1 人の非常にアクティブな連合テーブル/ユーザーのために連合戦略を再作成する必要がないことを確認するために、どの戦略を使用しますか?

4)異なる主キーで分割したい異なるテーブルがある場合、シャーディングはどのように機能しますか。例えば:

私が理解していることから:

【ブログ】

blog_id

情報

[ブログ_投稿]

ID

blog_id

投稿内容

したがって、0 ~ 1000、1 ~ 2001 の blog_id に基づいてシャードすることにした場合、2 つのフェデレーション テーブルが作成されます。しかし、blog_id 以外の異なるキーを持つテーブルをさらに追加すると、フェデレーション テーブルがどれだけ増えますか?

ありがとう

4

1 に答える 1

3

より正確かつ具体的に、一度に 1 つの質問をしてください。個別に尋ねた方が、すべての質問に対する回答を得られる可能性が高くなります。それでは、あなたの質問のいくつかをカバーしてみましょう。

1) アクティブなデータベースにフェデレーテッド DB を作成できますか? または事前にフェデレーションをデプロイする必要がありますか?

確かに、既存の DB 内にフェデレーションを作成できます。新しい/空の DB だけにフェデレーションを作成することに制限はありません。ただし、アクティブ DB でフェデレーションを作成しても、何も起こりません。フェデレーションは別個の DB であることを認識する必要があります。フェデレーション (またはフェデレーション メンバー) は、フェデレーション ルート DB (フェデレーションを作成した DB) について何も知りません。そのため、フェデレーションを作成したら、Active DB (またはフェデレーション ルート) からスキーマ/データを移行することを検討する必要があります。

2) フェデレーションのクエリ方法に準拠するために SQL クエリを変更する必要がありますか? または、1 つの SQL Server データベースに対して作業していたので、通常のクエリを引き続き使用できますか?

おそらくはい。Windows Azure SQL データベース フェデレーションは、DB 層のスケールアウト メカニズムです。つまり、Web アプリケーションがファームのような環境 (つまり、Windows Azure のようなスケールアウト環境) で動作するには「特別な」設計が必要なように、DataBase もスケールアウトで動作するには「特別な」設計が必要になります。環境。SQL Azure フェデレーションには、コードを機能させる魔法の杖はありません。機能するように設計する必要があります。

3) データベースを分割してしばらくすると、シャードの 1 つが非常にビジーでほとんどいっぱいになっていることがわかりました。フェデレーションを使用してこの問題にどのように対処すればよいですか? - 90% 使用されている単一の連合テーブルのみを分割する必要がありますか?それとも、より広い範囲を使用して分割戦略を再作成する必要がありますか? 問題は、1 人の特定のユーザーが非常にアクティブである可能性があることです。したがって、1 人の非常にアクティブな連合テーブル/ユーザーのために連合戦略を再作成する必要がないことを確認するために、どの戦略を使用しますか?

これはすべて、パーティショニング戦略に関するものです。フェデレーション キーと、異なるシャード間でデータを分割する方法を慎重に設計する必要があります。アトミック ユニットを 1 つのシャードに保持している限り、いつでも任意のフェデレーションを分割できます。

4)異なる主キーで分割したい異なるテーブルがある場合、シャーディングはどのように機能しますか。

異なるキーで異なるテーブルを分割する場合は、異なるフェデレーションがあり、それぞれに独自のフェデレーション キーと独自のテーブルがあります。

SQL フェデレーションに関心がある場合は、見る価値のある優れたビデオ: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DBI408

于 2012-10-01T06:30:52.487 に答える