onze sponsors
Hetgeen ik alleen niet direct bij jou zie Arjan is hoe dat je dan dynamisch gaat bepalen welke tabel gevuld gaat worden?Dit is eigenlijk mijn grootste vraagstuk nog steeds een beetje. Hoe zorg ik ervoor dat ik variabel een CSV in een Dataflow lees welke dan weggeschreven wordt naar een tabel welke per csv verschillend is met per csv ook verschillende kolommen.Het is wel mogelijk om variabel een bestand te lezen (de FlatFileConnector kan een variabele naam aan in combinatie met een ForEach) maar het is vooralsnog mij niet duidelijk hoe ik dan de destination variabel krijg. Het lijkt er bijna op alsof ik dit met een scripttask zal moeten gaan doen. En hoe voorkom ik dan hierbij dat ik constant metadata errors ga krijgen (want de kolommen zijn constant anders)? Het lijkt mij dat SSIS redelijk moeilijk gaat doen als iedere keer de kolommen anders zijn.Robert: weet jij nog in welk nummer van MSDN magazine dit stond?
Heb je er al eens aan gedacht om geen SSIS te gebruiken maar bulk insert of bcp.exe ?Die verwachten ook metadata maar dat is in tekstformaat (of zelfs xml tegenwoordig bij bcp) en dat kun je genereren !Je maakt 1 keer een metadata tabel waar de gegevens over de te importeren tabellen inzitten en die gebruik je om .....1. Create scripts te genereren voor de tabellen 2. BCP formatfiles te genereren3. batchfile genereren met de BCP commando'sAls je alles inleest in tabellen die voor elke kolom een varchar(max) hebben dan kun je eerst de data opschonen voor je het naar de eindbestemming overzet.Ook dat kun je vanuit de repository doen door bijvoorbeeld standaard scripts te maken voor elk datum veld.etc.Ik heb wel eens met een dergelijke situatie te maken gehad maar dan met ongeveer de helft van het aantal tabellen, ook in c.s.v. formaat en DTS (ja, antiek inmiddels, ik weet het)DTS genereren is toen niet gelukt en we hebben ze met de hand gemaakt.Die repository heeft ons toen wel veel geholpen, bijvoorbeeld door code te genereren voor elk datum veld om het formaat naar wens aan te passen.Het was in het begin erg veel werk maar later in het beheer wel heel overzichtelijk !SSIS is erg krachtig omdat je o.a. niet meer perse eerst alles naar tijdelijke tabellen hoeft te schrijven maar on the fly aanpassingen kunt doen. Soms geef ik echter de voorkeur aan de "ouderwetse" oplossing, juist vanwege de problemen met het verversen van de metadata in SSIS packages waar jij tegenaan loopt. Ongevraagd wil ik je nog graag iets meegeven dat ik bij voornoemd project heb geleerd :1. CSV is geen vaste standaard, maak als je kunt afspraken over NULL values, text delimiter, column separator, field separator, etc. Multi line tekst in een csv is een drama, en ook het kiezen van een tekstdelimiter die in de tekst zelf ook kan voorkomen en niet goed uitgequote is kan veel problemen opleveren. (alt 250 bleek voor ons een goeie te zijn, zelfs data van Tandems en mainframes ging goed vanaf dat moment)2. Maak afspraken over het beheer van het formaat, wie geeft je wijzigingen door in de bronbestanden en is dat op tijd etc. Hier komen die metadata tabellen goed van pas.Die code generator moest ik ook maar eens gaan bekijken......Groeten,André