Master Data Services (MDS) – это мощная платформа управления мастер-данными в SQL Server, которая позволяет создать централизованный хаб для ваших мастер-данных. С помощью MDS вы можете импортировать, просматривать и экспортировать данные для использования в отчетных и аналитических приложениях.
В этой статье мы сосредоточимся на процессе импорта данных в MDS. Существуют два разных способа импорта данных: вручную с использованием пользовательского интерфейса портала Master Data Manager или автоматизация процесса импорта путем подготовки данных в трех различных таблицах подготовки MDS.
Три таблицы подготовки MDS, используемые для автоматизации процесса импорта, это:
- mdm.tblStagingMember: Эта таблица используется для создания листьев, объединенных членов и коллекций для вашей модели/сущностей.
- mdm.tblStgMemberAttribute: Эта таблица используется для обновления значений атрибутов, удаления членов или коллекций и деактивации/реактивации членов или коллекций.
- mdm.tblStgRelationship: Эта таблица используется для добавления членов в коллекции или перемещения членов между явными иерархиями.
Подготавливая данные в этих таблицах и запуская процесс пакетного импорта, вы можете эффективно загружать данные в объекты MDS.
Давайте рассмотрим пример, чтобы лучше понять процесс:
/* Добавление члена в сущность ProductCategory */
INSERT INTO mdm.tblStgMember ([Batch_ID], [UserName], [ModelName], [HierarchyName], [EntityName],
[MemberType_ID], [MemberName], [MemberCode], [Status_ID], [ErrorCode])
VALUES (NULL,NULL,'Product',NULL,'ProductCategory', 1, 'Bicycle', 5, 0, '')
/* Добавление атрибута в сущность ProductCategory для связи этого члена с сущностью верхнего уровня ProductGroup,
которая имеет два члена Wholesale и Retail */
INSERT INTO mdm.tblStgMemberAttribute([Batch_ID], [UserName], [ModelName], [EntityName],
[MemberType_ID], [MemberCode], [AttributeName], [AttributeValue], [Status_ID], [ErrorCode])
VALUES (NULL, NULL, 'Product', 'ProductCategory', 1, 5, 'ProductGroup', 2, 0, '')
/* Добавление члена в сущность ProductSubCategory */
INSERT INTO mdm.tblStgMember ([Batch_ID], [UserName], [ModelName], [HierarchyName], [EntityName],
[MemberType_ID], [MemberName], [MemberCode], [Status_ID], [ErrorCode])
VALUES (NULL,NULL,'Product',NULL,'ProductSubCategory', 1, 'Bicycle for male', 39, 0, '')
/* Добавление атрибута в сущность ProductSubCategory для связи этого члена с членом сущности ProductCategory,
который мы создали выше */
INSERT INTO mdm.tblStgMemberAttribute([Batch_ID], [UserName], [ModelName], [EntityName],
[MemberType_ID], [MemberCode], [AttributeName], [AttributeValue], [Status_ID], [ErrorCode])
VALUES (NULL, NULL, 'Product', 'ProductSubCategory', 1, 39, 'ProductCategory', 5, 0, '')
/* Добавление члена в сущность ProductSubCategory */
INSERT INTO mdm.tblStgMember ([Batch_ID], [UserName], [ModelName], [HierarchyName], [EntityName],
[MemberType_ID], [MemberName], [MemberCode], [Status_ID], [ErrorCode])
VALUES (NULL,NULL,'Product',NULL,'ProductSubCategory', 1, 'Bicycle for female', 40,0,'')
/* Добавление атрибута в сущность ProductSubCategory для связи этого члена с членом сущности ProductCategory,
который мы создали выше */
INSERT INTO mdm.tblStgMemberAttribute([Batch_ID], [UserName], [ModelName], [EntityName],
[MemberType_ID], [MemberCode], [AttributeName], [AttributeValue], [Status_ID], [ErrorCode])
VALUES (NULL, NULL, 'Product', 'ProductSubCategory', 1, 40,'ProductCategory', 5, 0, '')
/* Добавление члена в сущность Product, этот член будет частью иерархии 'Product Management' */
INSERT INTO mdm.tblStgMember ([Batch_ID], [UserName], [ModelName], [HierarchyName], [EntityName],
[MemberType_ID], [MemberName], [MemberCode], [Status_ID], [ErrorCode])
VALUES (NULL,NULL,'Product','Product Management','Product', 1, 'Hercules 100', 'Hercules100',0,'')
/* Добавление атрибута в сущность Product для связи этого члена с членом сущности ProductSubCategory,
который мы создали выше, а также указание некоторых других значений атрибутов для этого члена */
INSERT INTO mdm.tblStgMemberAttribute([Batch_ID], [UserName], [ModelName], [EntityName],
[MemberType_ID], [MemberCode], [AttributeName], [AttributeValue], [Status_ID], [ErrorCode])
VALUES (NULL, NULL, 'Product', 'Product', 1, 'Hercules100', 'ProductSubCategory', 39, 0, '')
INSERT INTO mdm.tblStgMemberAttribute([Batch_ID], [UserName], [ModelName], [EntityName], [
MemberType_ID], [MemberCode], [AttributeName], [AttributeValue], [Status_ID], [ErrorCode])
VALUES (NULL, NULL, 'Product', 'Product', 1, 'Hercules100', 'SafetyStockLevel', 100, 0, '')
INSERT INTO mdm.tblStgMemberAttribute([Batch_ID], [UserName], [ModelName], [EntityName],
[MemberType_ID], [MemberCode], [AttributeName], [AttributeValue], [Status_ID], [ErrorCode])
VALUES (NULL, NULL, 'Product', 'Product', 1, 'Hercules100', 'DaysToManufacture', 10, 0, '')
/* Добавление члена в сущность Product, этот член будет частью иерархии 'Product Management' */
INSERT INTO mdm.tblStgMember ([Batch_ID], [UserName], [ModelName], [HierarchyName], [EntityName],
[MemberType_ID], [MemberName], [MemberCode], [Status_ID], [ErrorCode])
VALUES (NULL,NULL,'Product','Product Management','Product', 1, 'LadyBird 100', 'LadyBird100',0,'')
/* Добавление атрибута в сущность Product для связи этого члена с членом сущности ProductSubCategory,
который мы создали выше, а также указание некоторых других значений атрибутов для этого члена */
INSERT INTO mdm.tblStgMemberAttribute([Batch_ID], [UserName], [ModelName], [EntityName],
[MemberType_ID], [MemberCode], [AttributeName], [AttributeValue], [Status_ID], [ErrorCode])
VALUES (NULL, NULL, 'Product', 'Product', 1, 'LadyBird100', 'ProductSubCategory', 40, 0, '')
INSERT INTO mdm.tblStgMemberAttribute([Batch_ID], [UserName], [ModelName], [EntityName],
[MemberType_ID], [MemberCode], [AttributeName], [AttributeValue], [Status_ID], [ErrorCode])
VALUES (NULL, NULL, 'Product', 'Product', 1, 'LadyBird100', 'SafetyStockLevel', 100, 0, '')
INSERT INTO mdm.tblStgMemberAttribute([Batch_ID], [