Vi è mai capitato di dover caricare un numero di record non “big data like” in tabelle TERADATA (definiamo “un numero” nell’ordine compreso tra 100.000 e 1.500.000 record, record più, record meno)? Quando parliamo di milioni di record la via da seguire è certamente FastLoad, Multiload ecc. Ma che succede se dobbiamo caricare il numero di record di cui all’inizio di queste righe e non abbiamo voglia/tempo per scrivere una routine FastLoad, magari anche perché si tratta di uno step non “di produzione” (test, data mining ecc.)? Abbiamo sicuramente l’opzione di utilizzare la funzione di import che ci viene fornita con Teradata SQL Assistant, ma - come potranno confermare quelli di voi che hanno provato - non si tratta di quella che definiremmo una soluzione veloce (in termini di esecuzione).
Ho così deciso di scrivere poche righe in C# per velocizzare il caricamento di … “file non così grandi”!
Potete trovare il codice sorgente del progetto qui ed avrete bisogno di Visual Studio 2017 Community Edition o superiore per caricare il tutto e produrre una versione eseguibile.
Non sto affermando in nessun modo che questa possa essere un’alternativa all’utility FastLoad, in particolar modo per quanto riguarda grosse moli di dati.
Non è mia intenzione affermare che Teradata SQLAssistant non funzioni, ma soltanto che LoadData si è dimostrato un tantino più rapido per file con un numero di record limitato.
Nella mia esperienza vale la pena utilizzare LoadData per file contenenti al massimo un milione di record e - come scritto sopra - per quei processi che per loro natura possano considerarsi “temporanei”.
Tenete presente che stiamo parlando di una versione alpha, seppur completamente funzionante: segnalazioni di bug e/o suggerimenti sono i benvenuti.
Commenti