2015-10-26 23 views
5

Volevo eseguire il codice R dal pacchetto SSIS. Come posso aggiungere una fase di controllo dati che esegua codice R? SSIS supporta solo vb.net e asp.net.Esegui script R dal pacchetto SSIS

SSIS ha molte trasformazioni di dati disponibili ma R è molto amichevole quando si tratta di manipolazioni di dati.

Voglio eseguire un codice R dagli script SSIS o in un altro modo. Fondamentalmente, sto cercando di integrare R nel processo ETL.

Desidero estrarre i dati (E) da un file CSV.

Trasforma (T) in R e carica (L) nel database Microsoft. È possibile eseguire questo flusso di lavoro nel pacchetto SSIS eseguendo R-script utilizzando gli elementi di controllo dei dati SSIS? Grazie!

+1

Benvenuti in StackOverflow (SO)! È più probabile che saremo in grado di aiutarti se fai un esempio riproducibile per andare avanti con la tua domanda. Qualcosa da cui possiamo lavorare e utilizzarlo per mostrarti come potrebbe essere possibile risolvere il tuo problema. Puoi dare un'occhiata a [questo post SO su come creare un ottimo esempio riproducibile in R] (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) . Inoltre, sarebbe utile anche delineare ciò che hai già provato. –

+0

A partire da ora, SSIS accetterà solo lo script VB e il linguaggio C#.Se si desidera caricare csv nel database, è possibile utilizzare direttamente l'attività del flusso di dati e i gestori delle connessioni devono essere dinamici e non statici –

risposta

5

Ecco un paio di modi in cui è possibile integrare R nel processo ETL.

  1. greggio, veloce e sporco - Esegui processo Task nel flusso di controllo. Sarebbe simile a chiamare RScript dalla riga di comando. Probabilmente realizzerai la tua trasformazione, la salverai su un file su disco e otterrai il nome file dall'attività Esegui processo in modo da poterlo alimentare in un'attività Flusso di dati. Upside sta mantenendo la tua R pulita e separata dal tuo C#/VB.

  2. integrata tramite Rdotnet - È possibile utilizzare il RDotNet library (credo, non ho cercato di integrarlo). È necessario registrare le DLL nel GAC e quindi è possibile lavorare con oggetti .NET negli script SSIS o call R scripts directly.

  3. Integrato in SQL Server 2016 - Microsoft ha aggiunto il supporto R tramite stored procedure estese. Si chiama lo script R tramite stored proc e si utilizza una query sql per i dati di input e si può memorizzare l'output. Vedi more detail here. Ciò significherebbe utilizzare un'attività Esegui SQL in SSIS.

0

Spero che voi o qualcuno aiuta altro, dal momento che si desidera che i dati elaborazione voi potrebbe portare il set di dati in un file CSV (tramite un'attività flusso di dati), eseguire il file utilizzando: "rscript" (che potrebbe essere eseguito come un comando con l'esecuzione del processo), all'interno del file è necessario caricare il set di dati in un dataframe (chiamandolo con la funzione readLines()), quindi eseguire tutti i calcoli/calcoli richiesti, scrivere i dati o i risultati del calcolo in un file CSV e una lettura di nuovo da SSIS.

Non è una soluzione elegante, ma funziona :), Almeno fino a quando microsoft integra R come processo di controllo/flusso di dati.

CYA

PS. ecco come eseguire i file dalla riga di comando: Run R script from command line