5 Maio 2017

Utilizar SSIS Para Carregar Dados Para Um Modelo de Master Data Services

Este artigo descreve como primeiro criar e configurar Master Data Services e depois criar um package SSIS simples que carregue os dados de uma fonte independente, carregá-la para uma tabela de staging e finalmente para o MDS.

MDS

> Master Data Services é a solução de SQL Services para gestão de dados mestre.

> MDS contém modelos. Estes são o agrupamento da estrutura de dados mestre de mais alto nivel. MDS permite a criação destes modelos para gerir grupos de dados similares.

> Por outro lado, um model contém uma ou mais entidades que contém membros e que por sua vez são dados. Uma entidade é semelhante a uma tabela.

Configuração de uma base de dados MDS e configuração web:

> Este exemplo foi feito sobre uma máquina local, mas pode ser feito sobre uma máquina remota:

> Aceder ao Master Data Services Configuration Manager e selecionar a opção “Create Database Manager”. Preencher as janelas de instalação e estabelecer uma conexão com uma instância (remota ou local) do SQL Server. Dá-se um nome à base de dados MDS e configura-se uma conta de administração (apenas uma é permitida) e finaliza-se.

 

> Este processo irá criar uma nova base de dados chamada MDS_DEMO com tabelas, views, procedimentos, etc. gerados pelo próprio MDS.

> Na configuração de base de dados, seleciona-se a nova base de dados e procede-se ao menu de configuração Web

> No menu de configuração Web, cria-se um novo website (dropdown). Nomeia-se o Website e a Application Pool.

> Finalmente clica-se apply e seleciona-se a opção de: “Launch web application in browser”

> Ao clicar-se nesta opção, o site do MDS será aberto onde os dados podem ser configurados, adicionados e manipulados (Deve-se criar um atalho no browser para aceder ao Website mais tarde e com mais facilidade)

> No website seleciona-se o modelo criado e procede-se ao menu de Administração de Menu

 

> Cria-se uma nova entidade:

 

> Neste exemplo foi criado uma entidade chamada Human_Resources e tem dois campos gerados pelo próprio MDS: Name e Code. Os dados das tabelas de staging serão carregados para esta entidade

Building the SSIS Package

> Agora que o MDS está configurado, é necessário criar o package que vai carregar os dados para as tabelas de staging e para o MDS:

> No Microsoft Visual Studio, cria-se um Business Intelligence Project – SSIS e nomeia-se para algo relacionado com MDS. Neste exemplo ficou como MDS_DEMO.

> As seguintes variáveis têm que ser criadas no package:

> strMDSEntityName tem o nome da entidade criada no MDS para onde serão carregados os dados

> strMDSUser tem o nome do domínio e o utilizador configurados no servidor do MDS

> strModelName tem o nome do modelo do MDS

> As seguintes conexões têm de ser criadas:

> Esta é a conexão para a datasource externa

> Esta é a conexão para a base de dados MDS

> Na janela de Control Flow arrasta-se um “Execute SQL Task” e dá-se o nome de “Clear Staging Tables”

> Estabelece-se conexão desta tarefa para a base de dados criada no MDS e adiciona-se o seguinte query:

> Configuram-se os parâmetros como indicado:

> Arrasta-se uma data flow task, nomeia-se para “Load Staging Tables” e liga-se a task “Clear Staging Tables” à mesma:

> Fazendo duplo click na task Load Staging Tables irá abrir a janela data flow

> Arrasta-se uma OLE DB Source tool e estabelece-se conexão a uma fonte de dados externa que contem os dados a ser carregados para o MDS pretendidos. Neste caso irão ser carregados duas colunas da tabela “Employee” da base de dados AdventureWorks2014: BusinessEntityID e JobTitle.

> Adiciona-se uma “derived column tool” e nomeia-se para “Add User and Model Info”. Liga-se a OLE DB Source anterior a esta.

> Abre-se a tarefa Add User and Model Info e adiciona-se as seguintes colunas:

> ModelName tem a expressão para a variável strModelName.

> UserName tem a expressão para a variável strMDSUser.

> Arrasta-se uma nova derived column tool para adicionar JobTitle e Member.

> Arrasta-se uma OLE DB Destination e estabelece-se uma conexão à base de dados MDS_DEMO. Escolhe-se a tabela mdm.tblStgMember:

> Configura-se os mapeamentos como indicado abaixo:

> Volta-se à janela de Control Flow e adiciona-se outra “Execute SQL Task”, liga-se à Load Staging Tables e nomeia-se para Sweep Stage

> Estabelece-se conexão com a base de dados MDS_DEMO e adiciona-se a seguinte query:

> Configura-se o mapeamento de parâmetros da seguinte forma:

> Esta tarefa irá trazer os dados da fonte para o modelo.

> Finalmente arrasta-se outra Execute SQL Task e liga-se à Sweep Stage. Nomeia-se para “Validate Model”

> Estabelece-se conexão com a MDS_DEMO e adciona-se a seguinte query:

> Configura-se o mapeamento de parâmetros da seguinte forma:

> Esta tarefa irá validar todos os dados carregados para o Modelo MDS

> A solução final deverá ficar da seguinte forma:

Verificação dos dados

> De forma a verificar os dados carregados, vai-se a entidade Human_Resources criada no MDS. Na entidade podemos ver ou alterar os dados carregados:

> Outra forma de o fazer, seria de instalar o add-in do Excel de Master Data e ligar ao modelo MDS_DEMO:

> Com o add-in, os dados podem ser adicionados e/ou alterados para depois ser publicados para o model

Conclusão

> Master Data Services é uma ferramenta muito util para a criação, gestão e manutenção de listas corretas e consistentes de dados-mestre. Melhora o cumprimento de regras de negócio, reporting, rentabilidade, tomada de decisão e qualidade de dados. Este artigo descreve a implementação de um package SSIS simples para carregar dados para o MDS. Pode ser considerado como um ponto de partida para projetos mais complexos e/ou providenciar alguma ajuda para aqueles que necessitam de conhecimentos de Master Data Management.

 

.

.

.

     João Farinha
       Consultant