dilluns, 27 de febrer del 2017

Master Data Services (IV)

Després de veure diferents maneres de carregar les taules creades amb el Master Data Services avui veurem algunes consultes útils sobre la metadata.

Quan creem una nova entitat del MDS ens crea una taula dins de la BBDD de MDS, però no són noms intuïtius com el de les taules stag.


La 1a consulta serveix per saber els models creats, la data de creació i modificació i quina és la seva versió activa.
select
 m.id, m.Name, m.EnterDTM, m.EnterUserID, m.LastChgDTM, m.LastChgUserID,
mv.id as idLastVersion
from
mdm.tblModel m
join (select Model_ID, id from [mdm].[tblModelVersion] where status_id=1) mv on m.id=mv.Model_ID

 La 2a consulta serveix per saber les taules d'un model i entitat.

select
e.id, e.Name, e.EntityTable, e.SecurityTable,  e.StagingBase
from
mdm.tblModel m
join [mdm].[tblEntity] e on e.Model_ID=m.ID
where m.Name='Control de gestión'


Un cop tenim les taules veiem que els seus atributs tampoc tenen un nom amigable.

 Amb la 3a consulta podem veure el mapeig entre els noms de les columnes de les taules amb els noms que hem definit nosaltres al MDS.

select
e.id, e.Name,
a.id, a.MemberType_ID, a.DisplayName, a.TableColumn
from mdm.tblModel m
join [mdm].[tblEntity] e on e.Model_ID=m.ID
join [mdm].[tblAttribute] a on a.Entity_ID=e.ID
join (select Model_ID, id from [mdm].[tblModelVersion] where status_id=1) mv on m.id=mv.Model_ID
where m.Name='Control de gestión'
and e.name='Vuelos'
Amb aquestes 3 consultes podem extreure la metadata bàsica per poder atacar a les taules creades pel MDS.

MDS té la capacitat d'auditar els canvis de dades fets. Per poder consultar-los podem executar la query:
SELECT *
FROM [MDS].[mdm].[tblTransaction]
where Version_ID=5
and Entity_ID=12
and Attribute_ID=360
order by lastChgDTM 

On Version_ID és la versió a consultar. Entity_ID és l'ID retornat de la 2a consulta i Attribute_ID és l'ID retornat a la 3a consulta. En aquesta taula hi ha les columnes OldValue i NewValue per veure com han canviat els valors. Per veure el canvi en una fila concreta podem filtrar per la columna MemberCode.
En aquesta taula també es guarda l'id de l'usuari que ho ha modificat i que es pot creuar amb la taula [mdm].[tblUser] . Ara ja tenim als usuaris controlats i ja no podran dir que no han tocat res ;)

Avui hem vist les principals taules de metadata del MDS. En propers posts veurem la gestió de Versions i regles.

dilluns, 13 de febrer del 2017

Master Data Services (III)

En l'anterior post vam veure com crear Models, Entitats i Atributs en MDS. Avui veurem com carregar les dades.
Hi ha 3 maneres de carregar les dades:
La primera és des de la interfície web d'MDS a través de l'Explorer.

A part de carregar dades, podrem veure les que ja hi ha al sistema.
És una forma senzilla de carregar dades, no necessites tenir cap producte instal·lat (excepte Silverlight), però has de carregar les files una per una.

La segona manera és a través de BBDD. Quan es crea una entitat es crea a la vegada una taula a l'esquema stg de la BBDD MDS amb les mateixes columnes (i mateix nom) que els atributs de l'entitat. Hi ha unes columnes extres importants:
- ImportType: indica l'acció a realitzar a les files de la taula (inserir, esborrar, desactivar...)
- BatchTag: agrupa un conjunt de files a processar de cop

Un cop carregada la taula executarem el stored procedure stg.udp_<nom taula stg> per processar les files. Els paràmetres del procediment són:
- VersionName: Versió sobre la que s'aplicaran els canvis.
- LogFlag: si els canvis es guardaran a la taula de log.
- BatchTag: el tag de dades a processar.

Us adjunto els links amb tota la documentació:



Un cop carregades les dades es poden consultar amb l'Explorer per veure si s'han carregat correctament. 

Aquest mètode de càrrega de dades és menys intuïtiu, però permet fer càrregues massives de dades de forma senzilla.

La tercera manera, i la preferida pels usuaris, és a través de l'add-in de l'Excel.
Des de la plana principal de MDS hi ha un link per baixar-vos l'add-in. Un cop instal·lat us apareixerà com a una nova pestanya al ribbon.
Amb l'addin ens podrem connectar a MDS (amb la mateixa URL amb la que ens connectem via web), triar un model i versió, i importar una entitat.
Quan ens connectem a l'add-in no ens deixa triar ni tipus d'autenticació, ni usuari. Utilitza l'usuari de la màquina que ha obert l'Excel. Si ens volem impersonar ho podem fer a través de la comanda runas de cmd. Per exemple: 
runas /netonly /user:sql2014biml\jordi.isidro "C:\Program Files (x86)\Microsoft Office\Office15\EXCEL.EXE"

Un cop importades les dades les podrem modificar o afegir i, un cop acabat, clicar a Publish per pujar-les a MDS. Pes esborrar s'ha de seleccionar tota la fila sencera i clicar a Delete.
L'acció delete s'executa internament fila per fila. Si esborrem moltes files l'acció pot ser lenta.


MDS no està pensat per grans volums de dades (centenars de milers de files) i el seu rendiment baixa molt en aquests casos, sobretot a l'importar les dades des de l'add-in o al publicar moltes files a la vegada.

El proper dia veurem consultes útils per saber quines estructures ens ha creat internament el MDS quan hem creat Models, Entitats i Atributs.