Freie Wetterdaten Teil 1

Nicht nur für Hob­by-Meteo­ro­lo­gen oder Kli­ma­for­scher kön­nen Wet­ter­da­ten span­nen­de Ein­bli­cke gewäh­ren und Trends bzw. Zusam­men­hän­ge auf­zei­gen. Auch im unter­neh­me­ri­schen Kon­text haben Wet­ter­da­ten ihre Bewandt­nis. Gera­de bei Unter­neh­men aus dem Ein­zel­han­del oder aus der Lebens­mit­tel­bran­che ist der Ein­fluss des Wet­ters auf den Umsatz nicht so leicht von der Hand zu wei­sen. Auch wenn dies Pau­schal natür­li­ch nicht für jeden Lebens­mit­tel­her­stel­ler gilt, gibt es doch Para­de­bei­spie­le, wie den Eis­her­stel­ler, des­sen Umsatz stark von den Wet­ter­ein­flüs­sen geprägt ist. Um nun selbst unter­su­chen zu kön­nen, ob es zwi­schen dem Wet­ter und ein­zel­nen Kenn­zah­len im eige­nen Unter­neh­men einen Zusam­men­hang gibt, muss erst­mal die Daten­grund­la­ge geschaf­fen wer­den. Die­ser Bei­trag befasst sich gen­au mit die­sem The­ma. Im ers­ten Teil der Bei­trags­rei­he wird gezeigt, wie man über­haupt an freie Wet­ter­da­ten gelangt und wie die­se ange­bun­den wer­den kön­nen. Im zwei­ten Teil wird dann auf die Model­lie­rung sowie die schluss­end­li­che Ana­ly­se ein­ge­gan­gen. wei­ter­le­sen…

Relationale Eingabeanwendung als Alternative zur Custom App

Häu­fig müs­sen Daten in bestehen­den Model­len ange­passt oder ergänzt wer­den. Um neue Daten rela­tio­nal zu über­neh­men oder Hin­ter­grund­pro­zes­se zu star­ten, ken­nen wir schon die Funk­tio­na­li­tät der Cust­om App mit zusätz­li­chen Menü­punk­ten in Delta­Master.

Eine wei­te­re Mög­lich­keit, den Delta­Master-Benut­zern den manu­el­len Start von Pro­ze­du­ren kom­for­ta­bel über das Front­End ein­zu­rich­ten, bie­tet die rela­tio­na­le Ein­ga­be­an­wen­dung. wei­ter­le­sen…

SSIS und das Excel-Problem

Mit dem ETL-Werk­zeug SQL Ser­ver Inte­gra­ti­on Ser­vices (SSIS) des Micro­soft SQL Ser­vers kön­nen unter­schied­lichs­te Daten­la­de­pro­zes­se umge­setzt wer­den. Dabei ist nicht nur die Zahl an anzu­bin­den­den Ziel- und Quell­sys­te­men nahe­zu uner­schöpf­li­ch, son­dern auch die Daten­mo­di­fi­ka­ti­ons-, Daten­trans­for­ma­ti­ons- und Daten­va­li­die­rungs­mög­lich­kei­ten, die zwi­schen der Anbin­dung der Quel­le und des Ziels gesche­hen kön­nen. Und so ist es nicht ver­wun­der­li­ch, dass aus die­sen vie­len Model­lie­rungs­mög­lich­kei­ten des Daten­la­de­pro­zes­ses kom­ple­xe und ver­zahn­te Pake­te ent­ste­hen kön­nen, die anspruchs­vol­le Daten­lo­gi­ken abbil­den und beinhal­ten kön­nen. wei­ter­le­sen…

Repräsentative Daten

Die meis­ten Anwen­dungs­sys­te­me – und somit auch unse­re Delta­Master-Welt – wer­den in einer Mehr­sys­tem­land­schaft betrie­ben. Typi­sch in aktu­el­len IT-Infra­struk­tu­ren sind 2- oder 3-Sys­tem­land­schaf­ten. In einer 2-Sys­tem­land­schaft spre­chen wir von einem Ent­wick­lungs­sys­tem (DEV) und einem Pro­duk­tiv­sys­tem (PROD). In einer 3-Sys­tem­land­schaft wird zusätz­li­ch noch ein Test­sys­tem (QS) für unter­schied­li­che Benut­zer­grup­pen und Test­sze­na­ri­en zwi­schen­ge­schal­tet. Grund­sätz­li­ch ist die Ver­wen­dung von sol­chen Mehr­sys­tem­land­schaf­ten drin­gend zu emp­feh­len. Nur so kön­nen not­wen­di­ge und gewünsch­te Ände­run­gen sepa­rat vom pro­duk­ti­ven Sys­tem ent­wi­ckelt, getes­tet und vom Kun­den fach­li­ch abge­nom­men wer­den.

Eine Mehr­sys­tem­land­schaft bedeu­tet aber auch einen Mehr­auf­wand wäh­rend der Ent­wick­lungs­zy­klen. Es muss ein Pro­zess defi­niert sein wie die Ent­wick­lun­gen von DEV zu PROD mög­lichst auto­ma­ti­siert über­tra­gen wer­den kön­nen. Außer­dem müs­sen in geeig­ne­ten Inter­val­len die pro­duk­ti­ven Daten vom PROD auf das DEV zurück­ge­spielt wer­den, um mög­lichst reprä­sen­ta­ti­ve Test­ergeb­nis­se bereits wäh­rend der Ent­wick­lung gewähr­leis­ten zu kön­nen. wei­ter­le­sen…

Break(point)dance

Häu­fig bestehen SSIS-Pake­te aus einem Schlei­fen­con­tai­ner mit dem meh­re­re struk­tur­glei­che Quell­da­tei­en in eine SQL-Ser­ver-Daten­bank impor­tiert wer­den. Da der Daten­typ für die jewei­li­ge Spal­te in der Ziel-SQL-Ser­ver-Tabel­le fest­ge­legt wird, muss jeder Daten­satz der Import­da­tei­en die­ser Defi­ni­ti­on ent­spre­chen, ansons­ten kommt es zu Feh­lern beim Import­vor­gang. Häu­fig kommt es jedoch vor, dass Daten­sät­ze aus den Quell­da­tei­en nicht dem Daten­typ der Ziel­ta­bel­le ent­spre­chen. Für die­se Daten­sät­ze muss der Daten­typ ent­spre­chend kor­ri­giert wer­den. Aller­dings lie­fert uns die Sta­tus­mel­dung des SSIS-Pakets hier kei­ne aus­rei­chend aus­führ­li­che Infor­ma­ti­on, wel­che der Quell­da­tei­en betrof­fen ist. In unse­rem neus­ten Stan­dard-SSIS-Paket, das als Grund­la­ge in unse­ren Pro­jek­ten dient, kann die betref­fen­de Tabel­le durch ein aus­ge­klü­gel­tes Log­ging-Ver­hal­ten leicht iden­ti­fi­ziert wer­den. In der Pra­xis begeg­nen uns jedoch oft SSIS-Pake­te, die über die­ses Log­ging-Ver­hal­ten noch nicht ver­fü­gen. Doch anstatt sich auf eine müh­sa­me Feh­ler­su­che inner­halb der Quell­da­tei­en ein­zu­las­sen, bie­tet die­ser Bei­trag einen prag­ma­ti­schen und deut­li­ch ein­fa­che­ren Ansatz. Näm­li­ch die Iden­ti­fi­ka­ti­on der Daten­typ-Übel­tä­ter mit Hil­fe von Bre­ak­points. wei­ter­le­sen…

XML-Dateien via SSIS in SQL Server importieren

Mit den SQL Ser­ver Inte­gra­ti­on Ser­vices ste­hen einem fast alle Türen offen um Daten von A nach B zu trans­por­tie­ren. Dabei kön­nen die Quell­da­tei­en unter­schied­li­cher nicht sein. Hier möch­te Ich Ihnen vor­stel­len, wie Sie mit Hil­fe von SSIS XML-Daten in den SQL-Ser­ver über­füh­ren kön­nen. wei­ter­le­sen…

SSIS-Codepages für Flatfiles

Die Quell­da­tei­en eines BI-Sys­tems kön­nen in unter­schied­lichs­ten For­ma­ten gelie­fert wer­den. Eines die­ser For­ma­te ist das Flat­file. Flat­files haben eine fest­ge­leg­te Zei­chen­ko­die­rung („Code­page“), wie ANSI, Uni­code usw. Um ein Flat­file per SSIS rich­tig zu impor­tie­ren, muss der Ver­bin­dungs-Mana­ger je nach Kodie­rung ent­spre­chend kon­fi­gu­riert wer­den. wei­ter­le­sen…

SSIS und der (performante) Umgang mit vielen kleinen Dateien

Wer mit den SQL Ser­ver Inte­gra­ti­on Ser­vices gear­bei­tet hat, stand sicher schon ein­mal vor der Auf­ga­be, meh­re­re gleich­for­ma­tier­te Datei­en in eine Daten­bank zu laden. Bis­her habe ich dazu immer (wahr­schein­li­ch auch man­gels Alter­na­ti­ven, Unwis­sen­heit und der Tat­sa­che, dass das benut­ze Ver­fah­ren ja ohne grö­ße­re Pro­ble­me funk­tio­nier­te) mit dem Foreach Loop Con­tai­ner gear­bei­tet. Die­ser im SSIS inte­grier­te Bau­stein lässt sich viel­fäl­tig anpas­sen und ist rela­tiv schnell imple­men­tiert. Durch Zufall bin ich auf eine (ein­fa­che­re und schnel­le­re) Mög­lich­keit gesto­ßen, meh­re­re Datei­en des glei­chen Typs über SSIS zu laden: der Mul­ti­ple Flat File Con­nec­tion Mana­ger. Und um die­sen geht es im vor­lie­gen­den Bei­trag. wei­ter­le­sen…

DeltaLoad mit Change Data Capture

In den meis­ten BI-Sys­te­men nimmt das Laden der Fak­ten­da­ten die meis­te Zeit in Anspruch. Daher kommt man schnell auf die Idee, nicht immer alle Fak­ten­da­ten zu laden, son­dern nur die neu­en und die geän­der­ten Daten­sät­ze. Dabei gibt es unter­schied­li­che Sze­na­ri­os in Bezug auf das Quell-Sys­tem:

  • Es wer­den nur neue Daten­sät­ze gela­den und es ist eine Spal­te vor­han­den, mit­tels derer gen­au bestimmt wer­den kann, wel­che Daten­sät­ze zu laden sind. Dies könn­te z. B. ein fort­lau­fen­der Daten­satz­zäh­ler sein.
  • Es kann ein über­lap­pen­des Zeit­fens­ter auf einer Datums­spal­te bestimmt wer­den, in wel­chem sich Daten ändern kön­nen, z. B. das Buchungs­da­tum.
  • Es sind kei­ne Infor­ma­tio­nen vor­han­den, mit Hil­fe derer nur die geän­der­ten Daten selek­tiert wer­den kön­nen.

Der SQL Ser­ver bie­tet unter­schied­li­che Mög­lich­kei­ten, die­se Pro­ble­me zu lösen. Mit­tels selbst pro-gram­mier­tem T-SQL Code ist selbst­ver­ständ­li­ch alles mög­li­ch, jedoch ist das nicht immer die bes­te Lösung. Gera­de für das drit­te oben genann­te Sze­na­rio wäre viel Auf­wand not­wen­dig. Bereits für den SQL Ser­ver 2008 hat Micro­soft eine Funk­ti­on mit dem Namen Chan­ge Data Cap­tu­re (CDC) ein­ge­führt. Mit dem SQL Ser­ver 2012 wur­de die Funk­ti­on wei­ter aus­ge­baut, u. a. ist eine SSIS- Unter­stüt­zung hin­zu­ge­kom­men. In die­sem Bei­trag wird gezeigt, wie CDC für ein Del­ta Lade­vor­gang ver­wen­det wer­den kann. wei­ter­le­sen…

Automatischer Datenimport bei sporadischer Dateibereitstellung (Polling per SSIS)

Daten sind die Grund­la­ge jedes BI-Pro­jekts – ohne Daten ist kei­ne Ana­ly­se mög­li­ch. Aber woher kom­men die­se Daten? Häu­fig wird eine SQL-Ser­ver-Daten­bank als rela­tio­na­le Daten­quel­le gewählt. Aber meis­tens lie­gen nicht alle Daten in die­ser Daten­bank bereits vor. Dann müs­sen die feh­len­den Daten in die SQL-Ser­ver-Daten­bank impor­tiert wer­den. Die Quel­len für die­se Daten­im­por­te kön­nen sehr viel­fäl­tig sein – von ande­ren Daten­ban­ken bis hin zu Text­da­tei­en. Um sich die Arbeit des Daten­im­ports zu erleich­tern, bie­tet sich die Ver­wen­dung der SQL Ser­ver Inte­gra­ti­on Ser­vices (SSIS) von Micro­soft an. Daten aus ver­schie­dens­ten Quel­len las­sen sich hier pro­blem­los ver­ar­bei­ten. Die Auto­ma­ti­sie­rung über einen Sche­du­ler ist eben­falls leicht zu rea­li­sie­ren.

Was kann man aber tun, wenn man Daten in spo­ra­di­schen Zeit­ab­stän­den impor­tie­ren soll und den Import nicht manu­ell aus­füh­ren möch­te? Weiß man nicht, wann die Datei vor­liegt, benö­tigt man ein SSIS-Paket, das prüft, ob eine Datei in einem vor­ge­ge­be­nen Ver­zeich­nis vor­han­den ist und die Ver­ar­bei­tung auch nur dann star­tet. Nach dem Import muss die Datei gelöscht oder zumin­dest umbe­nannt wer­den, um einen erneu­ten Import der glei­chen Daten am nächs­ten Aus­füh­rungs­ter­min des SSIS-Pake­tes zu ver­hin­dern.

Gen­au dies soll hier am Bei­spiel eines Imports von Plan­da­ten aus einer CSV-Datei in die Chair-Daten­bank gezeigt wer­den. wei­ter­le­sen…