問題タブ [azure-elastic-scale]
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.
azure - SQLAzureのデータベース間でクエリを実行できません
SQL Azureデータベースサーバーがあり、データベース間でクエリを実行する必要がありますが、これを実行する方法がわかりません。
これが私のデータベースの構造です:
- Server.X
- Database.A
- Database.B
- Database.C
Database.Aには、Database.Bからデータを取得する必要のあるストアドプロシージャがあります。通常、私はデータベースを次のように参照しますSELECT * FROM [Database.B].[dbo].[MyTable]
が、これはSQLAzureでは許可されていないようです。
Msg 40515, Level 15, State 1, Line 16
Reference to database and/or server name in 'Database.B.dbo.MyTable' is not supported in this version of SQL Server.
データベース側でこれを行う方法はありますか?
最終バージョンでは、データベースAとCの両方にデータベースBのデータが必要になります。
azure - Azure SQL データベースの自動スケーリング
データベース バックエンドに Azure SQL を使用するアプリケーションがあります。通常の負荷/条件下では、このデータベースは Premium 1 プランで正常に実行できます。ただし、早朝の時間帯には、データベースの負荷を増加させるジョブが実行されます。この数時間の間に、Premium 3 プランに移行する必要があります。プレミアム 3 のコストは約 8 倍なので、このプランを 24 時間年中無休で実行するコストを支払いたくないのは明らかです。
データベースを自動スケールアップおよびダウンすることは可能ですか? クラウド サービスは、Azure ポータルのインスタンス数を簡単にスケーリングする方法を提供しますが、Azure SQL データベースにはこのようなものはありません。これは、Azure SDK を使用してプログラムで実行できますか? この件に関するドキュメントは見つかりませんでした。
c# - データベース コンテキストで Elastic Scale マルチシャード クエリを実行する
現在取り組んでいるプロジェクトに新しいエラスティック スケール テクノロジを実装するのに忙しくしています。このテクノロジーは、新しいアプリケーション基盤の設計中に私たちが抱えていたいくつかの複雑な問題を解決するようです.
これまでのところ、例は見栄えがよく、新しく作成した DAL にこれを実装するのに忙しいです。
私たちのアプリケーションでは、Azure の Elastic Scale だけに頼ることはできません。アプリケーションは、オンプレミスの単一インスタンス マシンでも実行できる必要があります。そのため、Elastic Scale でも非常にうまく機能するデータベースを照会する次のコードを作成しました。
は、で使用できる をconnectionInstance
作成する IoC を介して構成されます。すべて非常に簡単です。IDbConnection
OurDatabaseContext
私が直面している主な問題はMultiShardConnection
、Elastic Scale によって提供され、例に実装されている を実行することです。
したがって、私の質問は、MultiShardConnection
データベース コンテキスト (LINQ2SQL (使用している) または EF のものなど) で a を使用することは可能かということです。
MultiShardConnection
そうでない場合、と を組み合わせて使用する唯一の解決策はありMultiShardCommand
ますか? または、そのような機能はいつ利用可能になりますか?
c# - コードで Elastic Scale を使用してシャードレットを別のシャードに移動する方法
Elastic Scale のドキュメントを読むと、通常、シャードレットを移動するときに Split/Merve/Move サービスを使用するように見えます。私の質問は、コードでシャードレットの移動をトリガーするにはどうすればよいですか? Microsoft.Azure.SqlDatabase.ElasticScale.Service.SplitMerge -> SplitMerge.psm1で示されているように、サービス「api」をトリガーできますか。また、複数のシャードレットが独立して並行して移動される場合や、移動をキューに入れる場合など、そのスケーリングはどの程度うまくいくでしょうか? または、私が見逃した他の方法はありますか?
c# - 「ネストされた」外部キー参照を持つシャードレットの分割/マージ
現在、私は顧客の既存のデータベースに対してAzure Elastic Scale の分割/マージの例を使用することに忙しくしています。
データベース スキーマを定義したので、分割/マージを行うことができます。ただし、エラーが発生することが1つあります。これには、シャードレット (分割する識別子) へのネストされた参照があります。
分割/マージ サンプルのドキュメント ページには、データベース スキーマを指定する次のサンプル コードがあります。
このコードはかなり単純なので、おそらく機能します。しかし、 toOrderLines
を持つ別のテーブルがあり、次にto を持つ場合はどうなるでしょうか。FK
Orders
FK
Customer
このような状況でスキーマをどのように定義すればよいでしょうか?
と の間のキーを指定する必要がorderlines
ありorders
ますか? これは理にかなっていると思います。
私が質問する理由は、私が取り組んでいるデータベースにはシャードレットとのこれらの「ネストされた」関係がたくさんあり、スキーマを指定する方法がわからないためです。とReferenceTableInfo
の間の FK 関係が満たされる前にツールがレコードを挿入しようとするため、それらを a として指定することはオプションではないことに既に気付きました。OrderLines
Orders
azure - Elastic Scale を使用してシャードレットを移動し、コピーされた参照テーブルの順序を強制する
シャードレットをあるシャードから別のシャードに移動したいと考えています。Azure Elastic Scale ライブラリと、提供されている分割/マージ/移動の例を使用しています。
シャードレットを移動しようとすると、ツールが (参照) テーブルを別のシャードに間違った順序でコピーしているため、エラーが発生し続けます。ツールは、Firmware
テーブルとの FK リレーションを持つテーブルをコピーしようとしていUser
ます。ただし、このUser
テーブルはまだコピーされていないため、INSERT
コマンドを実行しようとすると、FK 関係が満たされていないために失敗します。
サイトのドキュメントには次のように記載されています。
参照整合性: Split/Merge サービスは、テーブル間の依存関係を分析し、外部キーと主キーの関係を使用して、参照テーブルとシャードレットを移動する操作をステージングします。一般に、参照テーブルは最初に依存関係の順序でコピーされ、次にシャードレットが各バッチ内の依存関係の順序でコピーされます。これは、新しいデータが到着したときにターゲット シャードの FK-PK 制約が適用されるようにするために必要です。
テーブルが処理されるときに順序を管理する方法はありますか?
たぶん、登録されている順序を変更することによってですか?