MDS エンティティベースのステージングは、SQL Server 2012 で重複する Batch Tag 値を使用すると失敗する可能性があります
この記事は、マスター データ サービス (MDS) エンティティ ベースのステージングが、SQL Server 2012 で重複する Batch Tag 値を使用すると失敗する可能性がある問題を解決するのに役立ちます。
元の製品バージョン: SQL Server 2012
元の KB 番号: 2712547
現象
次のような状況で問題が発生します。
データを MDS にインポートするには、Microsoft SQL Server 2012 MDS エンティティ ベースのステージング プロセスを使用します。
列を使用してバッチを識別することで、さまざまな MDS ステージング テーブル (stg.name) に
BatchTag
ステージング データを設定します。同じ
BatchTag
値を使用して、異なる MDS モデルの別のエンティティに属する個別のステージング テーブルを設定します。バッチ処理を開始するには、必要なストアド プロシージャを実行します。 または、MDS Web サイトの Integration Management 機能領域からステージング バッチを開始します。
ステージング プロセスを開始するときは、次の 3 つのストアド プロシージャのいずれかを使用します。
stg.udp_name_Leaf
stg.udp_name_Consolidated
stg.udp_name_Relationship
注:
<name> プレースホルダーは、エンティティの作成時に指定されたステージング テーブルの名前です。
次の例は、ステージング ストアド プロシージャを使用してステージング プロセスを開始する方法を示しています。
exec mds.stg.udp_entityname1 'versionAdescription',0,'batchtag'
exec mds.stg.udp_entityname2 'versionBdescription',0,'batchtag'
このシナリオでは、ステージング プロセスを開始すると、次のエラー メッセージが表示されます。
MDSERR310029
指定されたバッチの状態が無効です。
さらに、バッチの状態をチェックすると、値を持つバッチがBatchTag
無期限に状態 [実行中] でスタックしていることがわかります。
注:
MDS Web サイトからバッチ状態をチェックするには、[統合管理] をクリックし、状態を表示するモデルを選択するか、テーブルに[mdm].[tblStgBatch]
対してクエリを実行します。
原因
この問題は、MDS エンティティベースのステージング プロセスが MDS モデルに関係なく状態を BatchTag
チェックするためです。
解決方法
バッチが [実行中] 状態でスタックしている場合は、バッチ プロセスを停止してから、バッチをもう一度処理します。 バッチ プロセスを停止するには、SQL ステートメントを実行します。 Exec [mdm].[udpStagingBatchQueueActivate]
この問題を解決するには、ステージング テーブルのレコードの BatchTag 値を新しい名前に更新します。 さらに、レコードのフィールドが importstatus_ID
0 に設定されていることを確認します。
詳細
ステージング プロセスの開始の詳細については、次の Web サイトを参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示