【问题标题】:Master Data Services主数据服务
【发布时间】:2016-03-30 06:57:00
【问题描述】:

我是一名学习 MDS 的 SQL Server 开发人员。我通过临时表和 Excel 加载项加载了一些实体。

我正在尝试通过临时表更新 MDS 中实体中的成员。我可以成功添加新成员,但对现有成员的任何属性更新都不会填充到实体视图中。导入过程成功运行,没有错误。

我尝试了ImportType = 0 和 2,但都不起作用。当我设置为 1 时,正如预期的那样,我得到了一个错误。我还尝试使用 NewCode 列更新代码值,但也没有更新。

我已经使用 SSIS 包以及直接 T-SQL INSERT INTO 语句设置了暂存数据。

我对我创建的测试实体使用几乎相同的 T-SQL INSERT 语句来加载新成员,然后在第二批中修改新成员的属性。

您有什么想法为什么会忽略更新,或者对我可以尝试的事情有什么建议吗?

【问题讨论】:

    标签: sql-server sql-server-2012 master-data-services master-data-management mds


    【解决方案1】:

    查看暂存表中的批次以查看是否发生错误。如果“ImportStatus_ID”= 2 则记录导入失败。您可以通过查询显示导入失败原因的视图来查看失败原因。该视图将命名为“stg.viw_EntityName_MemberErrorDetails。

    这是一个微软链接供参考: https://technet.microsoft.com/en-us/library/ff486990(v=sql.110).aspx

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      如上所述,会员错误详细信息视图描述了错误 确保在 MDS 中更新时检查以下几点 1)将代码列放入您的 INSERT 语句 2)使用时在INSERT查询中包含staging table的所有列 importType = 2(否则所有列都将更新为NULL)

      【讨论】:

        【解决方案3】:

        您应该将导入类型为 0 或 2 的数据与批处理标签一起插入到暂存表中,然后运行暂存存储过程将数据从暂存表加载到实体表。 SP会根据Code值将staging表中的数据与实体表中的数据进行比较,并更新实体表中的数据。

        【讨论】:

          【解决方案4】:

          虽然您可以更新 stg.leaf 表中的 importstatus_id。 更新 stg.C_Leaf 放 ImportStatus_ID = 0 虽然我认为它会强制数据准备好暂存并加载到 mdm 实体。

          【讨论】:

            【解决方案5】:

            使用 Import type =0 将帮助您更新新属性,直到更新的新属性具有 NoT Null 数据。如果是这样,则更新将失败。重新检查实体中的数据。

            如果这不起作用。请尝试刷新模型中的缓存并尝试再次获取整个详细信息。

            通过以下链接了解有关 MDS 中导入类型的更多信息: https://docs.microsoft.com/en-us/sql/master-data-services/leaf-member-staging-table-master-data-services?view=sql-server-2017

            希望这会有所帮助。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2016-03-06
              • 1970-01-01
              • 2018-08-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多