Caricamento dei dati da SAS a Teradata - Quando è pronto?
Domanda
Quando si caricano le tabelle da SAS a Teradata, SAS carica i dati (di solito tramite l'impianto FastLoad) e poi prosegue verso il basso lo script. Tuttavia, spesso ricevo errori critici perché SAS dice i dati sono caricati, ma Teradata è ancora assemblando i dati riportati nella tabella.
Quindi i dati sono nel database, ma non è pronto per essere utilizzato. Devo ancora trovare un modo per sapere se i dati sono pronti per l'elaborazione con altre tabelle. Sono riuscito a usare un comando di sonno, ma che è arbitraria e inaffidabile (perché chi sa quanto tempo ci vorrà).
Come vi risolvere questo problema?
Soluzione
Vorrei provare il seguente:
- Prova se il DBCOMMIT = opzione di inserimento di dati può aiutare
-
Se 1. non aiuta, utilizzare un ciclo sopra il funzione OPEN per interrogare se il tavolo è pronto, in questo modo:
data _null_; dsid=0; do i=1 to 3600 while(dsid<=0); ts=SLEEP(1,1); dsid=OPEN('TERADATA.MYTABLE','I'); end; if dsid then dsid=CLOSE(dsid); run;
Altri suggerimenti
Potrebbe il sonno, cerca di interrogare, prendere alcun errore e ciclo fino al momento?
Risposta Raffinazione di Jon, si potrebbe desiderare di esaminare l'interrogazione se il trattamento è terminato.
Non ho familiarità con Teradata, ma presumibilmente ci deve essere un tavolo di sistemi di messa in vendita di processi attivi. Potrebbe possibile utilizzare pass through SQL per interrogare ottenere i processi in corso.