xDB Collectionデータベース シャードの分割またはマージ
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore 9.3以降では、Microsoftの分割/マージ サービスを使用して、シャード間でデータを再分散できます。
制限
Sitecore 9.3では、分割/マージ サービスには次の制限があります。
-
SQL Azureでのみ使用できます。
-
Always Encryptedと組み合わせて使用することはできません。分割操作またはマージ操作を実行する前に、データを復号化する必要があります。
-
xDB CollectionデータベースのShardKeyフィールドには値が必要です。Sitecore 9.3より前に収集されたデータを更新するには、xDBコレクション更新ツールを使用する必要があります。
シャードの分割
分割操作では、指定されたシャードキー範囲を持つレコードがシャードAからシャードBに移動します。分割操作は、次の処理を行います。
-
一度に分割できるシャードは1つだけです。
-
一度に分割できるシャード マップは1つだけです。シャード マップには3つあります。
-
DeviceProfileIdShardMap
-
ContactIdShardMap
-
ContactIdentifiersIndexShardMap
メモすべてのシャード マップを分割する必要はありません。分割ContactIdShardMapのみを選択できます。
-
すべてのシャード マップを含む3つのシャードを分割するには、12の操作 (3つのシャードを追加し、各シャード マップごとに1回) 各シャードを3回分割する必要があります。
分割操作を実行するには:
-
Azure分割/マージ サービスをデプロイします。分割/マージ サービスには、2つのWebアプリ、ストレージ アカウント、データベース (Sitecoreロールとは無関係) が含まれます。
シャードを分割またはマージする際の自己署名証明書の作成については、ナレッジベースを参照してください。
-
xConnectを無効にして、データの損失や破損を防ぎます。xConnectを無効にするには:
-
Content DeliveryとContent Managementの役割をCMS専用モードにします。
-
xConnectに書き込むすべてのWebアプリを停止します。
-
xConnect CollectionとxConnect Collection Search serviceのWebアプリを停止します。
-
-
xConnect WebアプリケーションのKuduサービスURLにアクセスします。例えば: https://mysite.scm.azurewebsites.net/
-
SQL Sharding Deployment Toolが含まれているフォルダーを参照します。 <xconnect-root>\App_Data\collectiondeployment
手記次のSQL Sharding Deployment ToolスクリプトのいずれかがKuduで動作しない場合は、フォルダー全体をローカルにダウンロードし、adminアクセス許可を持つローカルPowershellからSQL Sharding Deployment Toolスクリプトを実行します。Azureファイアウォールが正しく設定され、フォルダがダウンロードされたクライアントからAzure SQLインスタンスへのアクセスを許可し、スクリプトが実行される場所であることを確認します。
-
SQLユーザーを、すべてのSQL Sharding Deployment Toolスクリプトに対する完全な Administrator権限を持つsa userと同等に設定します。
-
SQLシャーディング デプロイメント ツールを使用して、空のシャードをシャード クラスターに追加します。例えば:
-
作成したシャードで次のSQLスクリプトを使用して、xcsmmuser ユーザーとそのアクセス許可を追加します。
xcsmmuserのパスワードは、接続文字列(パス:<xconnect-root>\App_Config\ConnectionStrings.config).
-
必要に応じて、分割/マージ操作のパフォーマンスを向上させるために、各シャードの次のテーブルのShardKey列にインデックスを作成します。
-
Contacts
-
ContactIdentifiers
-
ContactFacets
-
Interactions
-
InteractionFacets
-
DeviceProfiles
-
DeviceProfileFacets
-
ContactIdentifierIndex
-
-
分割するシャードを選択し、分割する場所を決定します (たとえば、シャード キー範囲に関して50/50分割または75/25分割を選択できます)。これを行うには、SQL Sharding DeploymentツールのprintMapping操作を使用して、すべてのシャード マップのシャード キー範囲を取得します。
printMappingコマンドは、シャード マップとそのキー範囲の一覧を生成します。
手記+infは0xFF (最高キー)を意味します。
この例では、Demo_Xdb.Collection.Shard0シャード内のContactIdShardMapシャード マップのシャード キー範囲は0x:0x80です。ContactIdShardMapshardを50/50で分割するには、0x40キーでシャードを分割します。シャードを25/75分割するには、シャードを0x20または0x60の範囲で分割します。
手記50/50の分割は、シャード キーの範囲が50/50の分割を意味します。シャード間でのデータの分布は、完全に均一ではない場合があります。
-
分割/マージ サービスのWebページを参照し 、分割/マージ操作を実行します。フィールドに正しい値を入力し、次の図に示すようにShard Key Typeをバイナリとして設定します。

フォームに入力するとき:
-
Split at Keyは、ステップ7で選択したキーです。たとえば、キー範囲が0x:0x80の場合、シャードを25/75に分割するには0x20を指定します。
手記シャードは、名前ではなくキー範囲で選択します。このツールは、分割することを選択したキー値に基づいて、どのシャードをターゲットにするかを決定します。
-
Split Behaviorオプションは、新しいシャードに移動するキー範囲を決定します。たとえば、0x20で分割してMove range from low key (incl.) to split key (excl.)を選択した場合、新しいシャードの範囲は0x:0x19になります。
-
-
Submitをクリックしてツールを実行します。
-
分割が完了したら、ShardKey列のインデックスを削除します (手順6で作成した列の場合)。
分割操作の実行後にxDBインデックスを再構築します。
シャードのマージ
マージ操作を実行するには:
-
Azure分割/マージ サービスをデプロイします。分割/マージ サービスには、2つのWebアプリ、ストレージ アカウント、データベース (Sitecoreロールとは無関係) が含まれます。
-
xConnectを無効にして、データの損失や破損を防ぎます。xConnectを無効にするには:
-
Content DeliveryとContent Managementの役割をCMS専用モードにします。
-
xConnectに書き込むすべてのWebアプリを停止します。
-
Connect CollectionとxConnect Collection SearchサービスのWebアプリを停止します。
-
-
xConnect WebアプリケーションのKuduサービスURLにアクセスします。例えば: https://mysite.scm.azurewebsites.net/
-
SQL Sharding Deployment Toolが含まれているフォルダーを参照します。 <xconnect-root>\App_Data\collectiondeployment
手記次のSQL Sharding Deployment ToolスクリプトのいずれかがKuduで動作しない場合は、フォルダー全体をローカルにダウンロードし、adminアクセス許可を持つローカルPowershellからSQL Sharding Deployment Toolスクリプトを実行します。Azureファイアウォールが正しく設定され、フォルダがダウンロードされたクライアントからAzure SQLインスタンスへのアクセスを許可し、スクリプトが実行される場所であることを確認します。
-
SQLユーザーを、すべてのSQL Sharding Deployment Toolスクリプトに対する完全なAdministrator権限を持つsa userと同等に設定します。
-
必要に応じて、マージ操作のパフォーマンスを向上させるために、各シャードの次のテーブルのShardKey列にインデックスを作成します。
-
Contacts
-
ContactIdentifiers
-
ContactFacets
-
Interactions
-
InteractionFacets
-
DeviceProfiles
-
DeviceProfileFacets
-
ContactIdentifierIndex
-
-
マージするシャードを選択します。これを行うには、SQL Sharding DeploymentツールのprintMapping操作を使用して、すべてのシャード マップのシャード キー範囲を取得します。例えば:
次の例は、printMapping操作の出力を示しています。
手記+infは0xFF (最高キー)を意味します。
この例では、シャード キー範囲0x:0x40 (Demo_Xdb.Collection.Shard0) をシャード キー範囲0x40:0x80 (Demo_Xdb.Collection.Shard1) にマージします。
-
分割/マージ サービスのWebページを参照し 、分割/マージ操作を実行します。フィールドに正しい値を入力し、次の図に示すようにShard Key Typeをバイナリとして設定します。

シャード範囲0x:0x40をシャード範囲0x40:0x80にマージする場合:
-
Source Range Low Keyは0xです。
-
Source Range High Key 0x40またはHigh is max keyを選択します。高い最大キーはinfと見なされます。
-
Target Range Low Key 0x40。
-
Target Range High Keyは0x80またはダニHigh is max keyです。高い最大キーはinfと見なされます。
マージが完了すると、Demo_Xdb.Collection.Shard1にはキー範囲0x:0x80が含まれます。
-
-
SQLシャーディング デプロイメント ツールを使用して、空のソース シャードを削除します。例えば:
-
ShardKey列のインデックスを削除します (手順6で作成した場合)。
マージ操作の実行後にxDBインデックスを再構築します。