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?

È stato utile?

Soluzione

Vorrei provare il seguente:

  1. Prova se il DBCOMMIT = opzione di inserimento di dati può aiutare
  2. 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top