Errore dataflow (aggiornamento incrementale?)

Il software per la BI di Microsoft, leader nel mercato
Rispondi
Avatar utente

alex77
Messaggi: 160 | Topic creati
Iscritto il: sab 24 ott 2020, 23:04
Luogo: Treviso
Ringraziato: 11 volte

Errore dataflow (aggiornamento incrementale?)

Messaggio da alex77 »

Buongiorno a tutti,
ho il seguente problema: vorrei archiviare i movimenti di magazzino dal nostro gestionale (dal 2000) in dataflow del servizio power bi, in modo da poterli poi utilizzare al bisogno in vari report PBI. Il gestionale è su database postgresql, al quale mi collego tramite odbc (ho provato a usare il connettore postgresql, ma non funziona perchè, da quel che ho capito, il connettore usa unicode, mentre il database ANSI). Sono circa 27 milioni di righe e mi serve estrarre 26 colonne.
Leggendo documentazione in rete, mi pareva di capire che pbi, e i dataflow, non dovrebbe avere, in teoria, problemi a gestire milioni di righe, ma ho fatto varie prove (creando anche qualche problema al gestionale :mrgreen: ) e se tento di creare un dataflow unico va in errore/si blocca tutto. Ho allora creato vari dataflow di al massimo 5-6 milioni di righe (ho visto che oltre dà errore) divisi in periodi di 5 anni e poi di 3 anni (perchè nei periodi più recenti le righe per periodo sono aumentati in maniera abbastanza considerevole). L'ultimo dataflow (dal 2019 ad oggi) volevo impostarlo con aggiornamento incrementale in modo da: 1. avere i dati aggiornati ad oggi, 2. non dover creare ulteriori dataflow manualmente perchè comunque una parte di dati viene archiviata e non viene fatto il refresh, quindi non dovrei avere il problema di superare i 5-6 milioni di righe di refresh. Siccome però, come sapete, il sistema di aggiornamento incrementale del servizio power bi è rolling e io ho bisogno invece di avere tutti i dati dal 2019 in qua, ho ben pensato di indicare come periodo da archiviare 7 anni e il periodo su cui fare refresh di 18 mesi (perchè succede che si facciano correzioni ai movimenti nel passato, ma poi quando viene elaborato il bilancio aziendale, i movimenti di magazzino vengono definitivamente congelati). Ho fatto così nella speranza che poi il sistema di aggiornamento incrementale venga modificato permettendo di impostarlo anche con una data fissa di partenza (perchè sia rolling non lo so, magari c'è una chiara motivazione che mi sfugge, non essendo io di formazione informatica). Questo dataflow mi va però constantemente in errore al momento del refresh. Allego il log dell'errore. La cosa mi pareva strana perchè il dataflow 2016-18 ha al momento più righe di quello 2019-oggi. Ho quindi infine provato a togliere l'aggiornamento incrementale ed effettivamente ora il dataflow funziona. Può essere perchè il periodo di 7 anni è maggiore del periodo effettivamente presente nei dati estratti dal dataflow (insomma ho voluto fare il furbo, ma non mi è andata dritta)? Avete qualche consiglio da darmi in merito, o qualcuno con basi informatiche o che ha riscontrato errori simili capisce il problema indicato dal log di errore? Grazie per un eventuale aiuto.
Allegati
Dataflow Errore.xlsx
(10.52 KiB) Scaricato 8 volte


Avatar utente

Autore del topic
alex77
Messaggi: 160 | Topic creati
Iscritto il: sab 24 ott 2020, 23:04
Luogo: Treviso
Ringraziato: 11 volte

Errore dataflow (aggiornamento incrementale?)

Messaggio da alex77 »

Buongiorno a tutti,
mi rispondo da solo :D perchè "scavando" nel web ho trovato una soluzione. Siccome può essere utile a qualcun altro, riporto quanto "scoperto".
Da quello che ho colto il problema consiste nel fatto che di default il driver odbc estrae tutti i dati in blocco dall'origine e poi li "trasporta" nel dataflow. E' possibile spuntare nel driver odbc la voce "Use Declare/Fetch": questo fa in modo che l'estrazione dei dati non avvenga "in blocco" ma a pacchetti (o forse addirittura riga per riga...); questo aumenta il traffico di rete, ma permette di gestire grosse moli di dati superando eventuali problemi di memoria del client (a scanso di problemi l'aggiornamento lo faccio in notturna per non "intasare" la rete). Nel mio caso non posso prendere proprio tutti i dati (perchè comunque altrimenti mi dà errore) ma mi basta creare 2-3 dataflow per i movimenti di magazzino e impostare l'aggiornamento incrementale sul blocco di dati più recenti (aggiornamento incrementale che adesso funziona proprio grazie al "trucchetto" esposto).
Chiedo venia a qualsiasi persona di estrazione "informatica" che leggerà quanto ho scritto ed inorridirà per gli strafalcioni :mrgreen: , ma spero comunque che quanto ho riportato possa tornare utile a qualcuno.

Alessandro
Rispondi