Tal com explicava a l'anterior post, la E i la L d'un procés ETL per a la càrrega d'un DataWareHouse (DWH) es poden automatitzar mitjançant patrons. Els propers posts es centraran en l'automatització de la part d'extracció de dades.
Per cada origen de dades es generaran 4 paquets principals:
Per cada origen de dades comentaré com s'ha generat el BIML per fer cada un dels paquets i també quina part de la metadata es pot generar automàticament i quina s'ha d'omplir a mà.
ADEU BIML?
Després de vendre les qualitats de BIML no és que vulgui prescindir d'ell, al contrari. ADEU és l'acrònim de Automatic Data Extractor Utility. L'ADEU té la intenció de ser una utilitat per poder generar paquets dtsx a través de BIML que permetin l'extracció de dades des de diferents orígens de dades i es bolquin a l'staging area (SA) del DWH.
Per que pugui ser útil l'aplicació ha de ser el màxim extensible i reutilitzable possible. Cal tenir en compte que per programar aquesta aplicació he utilitzat la versió gratuïta de BIML integrada amb Visual Studio, no he utilitzat MIST.
El primer pas de l'aplicació ha estat dissenyar el model de metadata que emmatzemarà les característiques necessàries per poder crear els dtsx.
Les taules són les següents:
- Project: conté el nom del projecte i la cadena de connexió a l'SA i al DWH
- Source: origen de dades. Cada origen de dades tindrà una subclasse en que es definiran els atributs propis.
- Source_type: tipus d'origen de dades (ex. BBDD SQL Server, fitxer pla, excel, etc)
- Source_detail: elements del source (ex. taules de BBDD, fulls d'un excel). Cada origen de dades tindrà una subclasse en que es definiran els atributs propis.
- Source_extract_type: tipus d'extracció de les dades (ex. full, incremental)
- Source_column: columnes de l'origen de dades (columnes de la taula de BBDD, columnes del fitxer de text, etc).
Per cada origen de dades es generaran 4 paquets principals:
- Generació de metadata: generació dels dtsx per alimentar els màxims camps possibles de l'esquema de metadata.
- Creació de les taules: a partir de la metadata es generaran els dtsx amb els scripts de creació de les taules a l'SA
- Esborrat de taules: ídem a l'anterior, però amb drop table
- Càrrega de dades: generació del dtsx que accedeix a l'origen de dades i carrega l'SA
Per cada origen de dades comentaré com s'ha generat el BIML per fer cada un dels paquets i també quina part de la metadata es pot generar automàticament i quina s'ha d'omplir a mà.
Esquema del BIML
Els fitxers .biml per a generar els 4 tipus de paquet tindran el mateix esquema:
- Includes de les funcions c#
- Nom del projecte
- Nom del tipus de paquet
- Obtenció de les connection strings del projecte
- Tag <Biml>
- Generació de les connexions d'orígens de dades del projecte
- Generació dels paràmetres
- Generació dels packages "pares" per cada origen de dades
- Generació dels subpackages per cada source_detail
En el proper post començaré a entrar en detalls de la implementació. De moment el primer que es pot veure és que es poden incloure fitxers biml dins d'altres fitxers biml, això permetrà reutilitzar codi i fer l'aplicació extensible. Quan s'implementin nous origens de dades "només" haurem de crear els nous bimls i invocar-los dins del codi.