dilluns, 2 de gener de 2017

SSIS i Amazon S3

Després de massa temps sense publicar res he decidit que com a propòsit d'any nou publicaré un post cada 2 setmanes, a veure quant duro....

Avui veurem com pujar fitxers a Amazon S3 des del SSIS.
La manera de pujar els fitxers serà mitjançant una script task amb codi .Net.
El primer que necessitem és baixar-nos l'SDK per .Net: https://aws.amazon.com/sdk-for-net/
i instal·lar-lo.
Des d'un projecte d'SSIS afegim una script task. El codi a implementar és el següent:

Per pujar un fitxer a S3 només ens calen 3 línies:
1- Crear el Client passant-li la key na,e, secret key i region (això ens ho dóna la configuració d'Amazon).
 2.- Creaer una TransferUtility a partir del client.
3.- Pujar el fitxer indicant-li l'origen, el destí i el nom del fitxer.

Per que aquest codi compili necessitem fer referència a les dll de l'SDK que ens hem baixat abans. Concretament necessitem: AWSSDK.Core.dll i AWSSDK.S3.dll.

Hem de recordar que cada vegada que utilitzem una dll externa per tal que funcioni quan ho executem l'hem de copiar a: C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn (si és de 32-bits) o a C:\Program Files\Microsoft SQL Server\120\DTS\Binn (si és de 64-bits).


Si després volem atacar els fitxers S3 amb eines com Hive és recomanable que cada grup de fitxers estigui en una carpeta i que el format sigui de text pla (ex csv, tsv, txt) i, si es vol, pot estar comprimit (molt preferiblement en tar.gz).

Si estem en entorn Windows una manera de comprimir en tar.gz és amb aquesta comanda de 7-.zip
"C:\Program Files\7-Zip\7z.exe" -ttar a dummy FITXER_INICIAL.csv -so | C:\"Program Files"\7-Zip\7z -si -tgzip a FITXER_COMPRIMIT.tar.gz

A l'script task d'SSIS se li poden passar variables per anar pujant diferents fitxers, per exemple per dates, a través d'un foreach loop container i anar canviant el contingut del .bat que conté les comandes per comprimir el fitxer.


En el proper post veurem per que ens pot ser útil el component Master Data Services i com instal·lar-lo.
 



Cap comentari:

Publica un comentari a l'entrada