dimecres, 25 de maig de 2016

ADEU BIML

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.

 

 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).
Aquest esquema l'aniré ampliant amb les subclasses a mesura que afegeixi nous orígens de dades.
Per cada origen de dades es generaran 4 paquets principals:
  1. Generació de metadata: generació dels dtsx per alimentar els màxims camps possibles de l'esquema de metadata.
  2. Creació de les taules: a partir de la metadata es generaran els dtsx amb els scripts de creació de les taules a l'SA
  3. Esborrat de taules: ídem a l'anterior, però amb drop table
  4. Càrrega de dades: generació del dtsx que accedeix a l'origen de dades i carrega l'SA
Encara que la càrrega de dades pugui semblar la part important del projecte, és més important la generació de la metadata. Quan més automàtica sigui la generació de metadata menys feina haurem de fer en el futur. Sempre hi haurà parts que s'hauran d'alimentar a mà (ex. el camp que indica el source_extract_type, o el tipus de dades en un fitxer de text, o les columnes en un fitxer de text de mida fixa, etc).

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:
  1. Includes de les funcions c#
  2. Nom del projecte
  3. Nom del tipus de paquet
  4. Obtenció de les connection strings del projecte
  5. Tag <Biml>
  6. Generació de les connexions d'orígens de dades del projecte 
  7. Generació dels paràmetres
  8. Generació dels packages "pares" per cada origen de dades
  9. 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.

Cap comentari:

Publica un comentari