Pipelines verwalten

Nachdem Sie eine Pipeline erstellt und getestet haben, steuern Sie eine Pipeline, indem Sie die Pipeline starten, stoppen oder löschen. Sie können eine Pipeline auch zurücksetzen.

Pipeline starten

Nachdem Sie eine Pipeline erstellt haben, können Sie die Pipeline starten.

Wenn eine Pipeline gestartet wird, wird sie kontinuierlich in einem geplanten Job ausgeführt. Der geplante Job der Pipeline wird entweder standardmäßig alle 15 Minuten oder in dem Intervall wiederholt, das Sie mit dem Attribut interval festgelegt haben.

  1. Starten Sie eine Pipeline.
    BEGIN
      DBMS_CLOUD_PIPELINE.START_PIPELINE(
          pipeline_name => 'EMPLOYEE_PIPELINE'
      );
    END;
    /

    Standardmäßig beginnt ein Pipelinejob sofort, sobald die Pipeline gestartet wird. Um einen Pipelinejob zu einem späteren Zeitpunkt zu starten, geben Sie mit dem Parameter start_date ein gültiges zukünftiges Datum oder einen gültigen Zeitstempel an.

    Weitere Informationen finden Sie unter Prozedur START_PIPELINE.

  2. Prüfen Sie, ob die Pipeline gestartet wurde.

    Beispiel:

    
    SELECT pipeline_name, status from USER_CLOUD_PIPELINES
       WHERE pipeline_name = 'EMPLOYEE_PIPELINE';
    
    PIPELINE_NAME            STATUS  
    ------------------------ ------- 
    EMPLOYEE_PIPELINE        STARTED

Pipeline stoppen

Verwenden Sie STOP_PIPELINE, um eine Pipeline zu stoppen. Wenn eine Pipeline gestoppt wird, sind keine zukünftigen Jobs für die Pipeline geplant.

Standardmäßig werden aktuell ausgeführte Jobs abgeschlossen, wenn Sie eine Pipeline stoppen. Setzen Sie den Parameter force auf TRUE, um alle ausgeführten Jobs zu beenden und die Pipeline sofort zu stoppen.

  1. Stoppen Sie eine Pipeline.
    BEGIN
      DBMS_CLOUD_PIPELINE.STOP_PIPELINE(
          pipeline_name => 'EMPLOYEE_PIPELINE'
      );
    END;
    /

    Weitere Informationen finden Sie unter Prozedur STOP_PIPELINE.

  2. Prüfen Sie, ob die Pipeline gestoppt wurde.
    
    SELECT pipeline_name, status from USER_CLOUD_PIPELINES
       WHERE pipeline_name = 'EMPLOYEE_PIPELINE';
    
    PIPELINE_NAME            STATUS  
    ------------------------ ------- 
    EMPLOYEE_PIPELINE        STOPPED

Weitere Informationen finden Sie unter Prozedur STOP_PIPELINE.

Pipeline löschen

Die Prozedur DROP_PIPELINE löscht eine vorhandene Pipeline.

Wenn eine Pipeline gestartet wurde, muss sie gestoppt werden, bevor die Pipeline gelöscht werden kann. Weitere Informationen finden Sie unter Prozedur STOP_PIPELINE.

Um eine gestartete Pipeline zu löschen, setzen Sie den Parameter force auf TRUE, um alle ausgeführten Jobs zu beenden und die Pipeline sofort zu löschen

  1. Pipeline löschen.
    BEGIN
      DBMS_CLOUD_PIPELINE.DROP_PIPELINE(
          pipeline_name => 'EMPLOYEE_PIPELINE'
      );
    END;
    /
  2. Prüfen Sie, ob die Pipeline gelöscht wurde.
    SELECT pipeline_name, status from USER_CLOUD_PIPELINES
       WHERE pipeline_name = 'EMPLOYEE_PIPELINE';
    
    No rows selected

Weitere Informationen finden Sie unter Prozedur DROP_PIPELINE.

Pipeline zurücksetzen

Mit dem Vorgang "Pipeline zurücksetzen" können Sie den Datensatz der Pipeline in den Ausgangsstatus zurücksetzen.

Hinweis:

Optional können Sie die Pipeline zurücksetzen, um Daten in der mit einer Ladepipeline verknüpften Datenbanktabelle zu löschen oder Dateien im Objektspeicher für eine Exportpipeline zu entfernen. Normalerweise wird diese Option verwendet, wenn Sie eine Pipeline während der Pipelineentwicklung testen.

Die Pipeline wird wie folgt zurückgesetzt:

  • Pipeline laden: Beim Zurücksetzen der Pipeline wird der Datensatz der Dateien gelöscht, die von der Pipeline geladen werden. Wenn Sie START_PIPELINE oder RUN_PIPELINE_ONCE nach dem Zurücksetzen einer Ladepipeline aufrufen, wiederholt die Pipeline den Dataload und enthält alle Dateien, die im Objektspeicherort vorhanden sind.

    Wenn purge_data auf TRUE gesetzt ist, schneidet die Prozedur die Daten in der Datenbanktabelle ab.

  • Exportpipeline: Beim Zurücksetzen der Pipeline werden die zuletzt verfolgten Daten in der Datenbanktabelle gelöscht. Wenn Sie START_PIPELINE oder RUN_PIPELINE_ONCE nach dem Zurücksetzen einer Exportpipeline aufrufen, wiederholt die Pipeline den Export von Daten aus der Tabelle oder Abfrage.

    Wenn purge_data auf TRUE gesetzt ist, löscht die Prozedur vorhandene Dateien im Objektspeicherort, der mit dem Attribut location angegeben ist.

So setzen Sie eine Pipeline zurück:

  1. Stoppen Sie die Pipeline, die Sie zurücksetzen möchten.

    Eine Datenpipeline muss den Status "Gestoppt" aufweisen, um sie zurückzusetzen. Weitere Informationen finden Sie unter Prozedur STOP_PIPELINE.

  2. Setzen Sie die Pipeline zurück.
    BEGIN
         DBMS_CLOUD_PIPELINE.RESET_PIPELINE(
            pipeline_name => 'EMPLOYEE_PIPELINE',
            purge_data => TRUE);
    END;
    /

    Verwenden Sie den Parameter purge_data nur mit dem Wert TRUE, wenn Sie Daten in der Datenbanktabelle für eine Ladepipeline löschen oder Dateien im Objektspeicher für eine Exportpipeline löschen möchten. Normalerweise wird diese Option verwendet, wenn Sie eine Pipeline während der Pipelineentwicklung testen.

    Weitere Informationen finden Sie unter Prozedur RESET_PIPELINE.

Pipelines überwachen und Fehler beheben

Alle erstellten Pipelines werden in den DBMS_CLOUD_PIPELINE-Views protokolliert.

Pipeline-Statusinformationen anzeigen

Prüfen Sie den Pipelinestatus, und rufen Sie andere Pipelineinformationen mit den Ansichten USER_CLOUD_PIPELINES oder DBA_CLOUD_PIPELINES ab. Beispiel: Die folgende SELECT-Anweisung mit einem WHERE-Klauselprädikat in pipeline_name zeigt, dass MY_TREE_DATA eine Ladepipeline ist und die Pipeline gestartet wird:

SELECT pipeline_name, pipeline_type, status FROM USER_CLOUD_PIPELINES
   WHERE pipeline_name = 'MY_TREE_DATA';


PIPELINE_NAME PIPELINE_TYPE STATUS  
------------- ------------- ------- 
MY_TREE_DATA  LOAD          STARTED

Weitere Informationen finden Sie unter DBMS_CLOUD_PIPELINE Views.

Pipelineattribute anzeigen

Die Pipelineattribute können überwacht werden, indem die Views USER_CLOUD_PIPELINE_ATTRIBUTES oder DBA_CLOUD_PIPELINE_ATTRIBUTES abgefragt werden. Fragen Sie diese Ansichten ab, um Pipelineattributinformationen anzuzeigen.

Beispiel:

SELECT pipeline_name, attribute_name, attribute_value FROM user_cloud_pipeline_attributes
     WHERE pipeline_name = 'MY_TREE_DATA';

PIPELINE_NAME ATTRIBUTE_NAME  ATTRIBUTE_VALUE                                                                   
------------- --------------- --------------------------------------------------------------------------------- 
MY_TREE_DATA  credential_name DEF_CRED_OBJ_STORE                                                                
MY_TREE_DATA  format          {"type": "csv"}                                                                   
MY_TREE_DATA  interval        20                                                                                
MY_TREE_DATA  location        https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace/b/treetypes/o/ 
MY_TREE_DATA  priority        high                                                                              
MY_TREE_DATA  table_name      TREES

Weitere Informationen finden Sie unter DBMS_CLOUD_PIPELINE Views.

Pipeline-Historie anzeigen

Die Ansichten USER_CLOUD_PIPELINE_HISTORY und DBA_CLOUD_PIPELINE_HISTORY zeigen den Status ausgeführter Jobs an. Mit den Pipelinehistorienansichten können Sie den Zustand einer Pipeline überwachen und Fehler in einer ausgeführten Pipeline erkennen.

Beispiel:

SELECT pipeline_id, pipeline_name, status, error_message  FROM user_cloud_pipeline_history      
     WHERE pipeline_name = 'MY_TREE_DATA';

PIPELINE_ID PIPELINE_NAME STATUS    ERROR_MESSAGE 
----------- ------------- --------- ------------- 
          7  MY_TREE_DATA SUCCEEDED

Weitere Informationen finden Sie unter DBMS_CLOUD_PIPELINE Views.

Pipeline-Statustabelle: Zusätzliche Überwachung für Load-Pipelines

In der Pipelinestatustabelle werden jeder Dateiname und sein Status für eine Ladepipeline angezeigt. In der Spalte STATUS_TABLE in DBA_CLOUD_PIPELINES und USER_CLOUD_PIPELINES wird der Name der Statustabelle angezeigt.

Beispiel: Die folgende SELECT-Anweisung mit einem WHERE-Klauselprädikat für pipeline_name zeigt den Statustabellennamen für eine Pipeline an:

SELECT pipeline_name, status_table FROM user_cloud_pipelines
   WHERE pipeline_name = 'MY_TREE_DATA';

PIPELINE_NAME STATUS_TABLE
------------- --------------------
MY_TREE_DATA  PIPELINE$9$41_STATUS

Zeigen Sie die Statustabelle an, um Informationen zur Pipeline anzuzeigen, einschließlich:

  • Die relevante Fehlernummer und Fehlermeldung werden in der Statustabelle aufgezeichnet, wenn ein Vorgang für eine bestimmte Datei nicht erfolgreich verläuft.

  • Bei abgeschlossenen Pipelinevorgängen kann die für jeden Vorgang benötigte Zeit mit dem gemeldeten START_TIME und END_TIME berechnet werden.

Beispiel: Das Folgende zeigt, dass der Ladevorgang für zwei Dateien nicht erfolgreich war und eine abgeschlossen wurde:

SELECT id, name, status, error_code, error_message, sid FROM PIPELINE$9$41_STATUS;

ID NAME       STATUS    ERROR_CODE ERROR_MESSAGE                      SID 
-- ---------- --------- ---------- -------------------------------- ----- 
 1 trees1.txt FAILED         30653 ORA-30653: reject limit reached  18070 
 2 trees2.txt FAILED         30653 ORA-30653: reject limit reached  18070 
 3 trees3.txt COMPLETED                                             18070 

Pipelines zum Laden von Daten, bei denen pipeline_type 'LOAD' ist, reservieren einen ID, der in USER_LOAD_OPERATIONS und DBA_LOAD_OPERATIONS angezeigt wird. Der Wert ID in diesen Ansichten wird dem OPERATION_ID der Pipeline in USER_CLOUD_PIPELINES und DBA_CLOUD_PIPELINES zugeordnet.

Um weitere Informationen für eine Ladepipeline abzurufen, fragen Sie OPERATION_ID der Pipeline ab:

SELECT PIPELINE_NAME, OPERATION_ID FROM USER_CLOUD_PIPELINES
     WHERE PIPELINE_NAME = 'MY_TREE_DATA';

PIPELINE_NAME OPERATION_ID 
------------- ------------ 
MY_TREE_DATA            41

Fragen Sie als Nächstes entweder USER_LOAD_OPERATIONS oder DBA_LOAD_OPERATIONS mit einem WHERE-Klauselprädikat für die Spalte ID ab (mit dem Wert OPERATION_ID).

Beispiel:

SELECT ID, TYPE, LOGFILE_TABLE, BADFILE_TABLE, STATUS_TABLE FROM USER_LOAD_OPERATIONS
     WHERE ID = 41;

ID TYPE     LOGFILE_TABLE     BADFILE_TABLE     STATUS_TABLE
-- -------- ----------------- ----------------- --------------------
41 PIPELINE PIPELINE$9$41_LOG PIPELINE$9$41_BAD PIPELINE$9$41_STATUS

Diese Abfrage zeigt ID, TYPE, LOGFILE_TABLE, BADFILE_TABLE, falls vorhanden, und STATUS_TABLE an. Sie können diese Tabellen für zusätzliche Informationen zum Laden der Pipeline anzeigen.

Pipeline-Statustabellendetails

Spalte Datentyp Beschreibung
ID NUMBER Eindeutige Nummer, die der Pipeline zugewiesen ist.
NAME VARCHAR2(4000) Name der Pipeline.
BYTES NUMBER Byte
CHECKSUM VARCHAR2(128) Prüfsumme
LAST_MODIFIED TIMESTAMP(6) WITH TIME ZONE Letzte Änderungszeit für die Pipeline.
STATUS VARCHAR2(30) Der STATUS-Wert ist einer der folgenden Werte:
  • COMPLETED: Der Dateivorgang wurde erfolgreich abgeschlossen.
  • FAILED: Der Dateivorgang war nicht erfolgreich. Eine Wiederholung kann zweimal versucht werden.
  • PENDING: Der Dateivorgang wurde noch nicht gestartet.
  • RUNNING: Der Dateivorgang wird derzeit ausgeführt.
  • SKIPPED: Der Dateivorgang wird übersprungen.
ERROR_CODE NUMBER Fehlercode
ERROR_MESSAGE VARCHAR2(4000) Fehlermeldung
START_TIME TIMESTAMP(6) WITH TIME ZONE Startzeit für die Pipeline.
END_TIME TIMESTAMP(6) WITH TIME ZONE Endzeit für die Pipeline.
SID NUMBER

Die Session SID und SERIAL# geben die Job-Session an, die den Pipeline-Ladevorgang ausgeführt hat.

SERIAL# NUMBER

Die Session SID und SERIAL# geben die Job-Session an, die den Pipeline-Ladevorgang ausgeführt hat.

ROWS_LOADED NUMBER Anzahl geladener Zeilen.
OPERATION_ID NUMBER

Für die zukünftige Verwendung reserviert.

Pipeline-Logdatei und falsche Dateitabellen

Um die Logdatei und die ungültigen Dateinamen für eine Ladepipeline abzurufen, fragen Sie OPERATION_ID der Pipeline ab. Beispiel:

SELECT PIPELINE_NAME, OPERATION_ID FROM USER_CLOUD_PIPELINES
     WHERE PIPELINE_NAME = 'MY_TREE_DATA';

PIPELINE_NAME OPERATION_ID 
------------- ------------ 
MY_TREE_DATA            41

Fragen Sie als Nächstes entweder USER_LOAD_OPERATIONS oder DBA_LOAD_OPERATIONS mit einem WHERE-Klauselprädikat für die Spalte ID ab (mit dem Wert OPERATION_ID).

Beispiel:

SELECT ID, TYPE, LOGFILE_TABLE, BADFILE_TABLE, STATUS_TABLE FROM USER_LOAD_OPERATIONS
     WHERE ID = 41;

ID TYPE     LOGFILE_TABLE     BADFILE_TABLE     STATUS_TABLE
-- -------- ----------------- ----------------- --------------------
41 PIPELINE PIPELINE$9$41_LOG PIPELINE$9$41_BAD PIPELINE$9$41_STATUS

Diese Abfrage zeigt ID, TYPE, LOGFILE_TABLE, BADFILE_TABLE, falls vorhanden, und STATUS_TABLE an. Sie können diese Tabellen für zusätzliche Informationen zum Laden der Pipeline anzeigen.

Zeigen Sie die Pipeline-Logdateitabelle an, um ein vollständiges Log der Ladevorgänge der Pipeline anzuzeigen.

Beispiel:

SELECT * FROM PIPELINE$9$41_LOG;

Zeigen Sie die Tabelle mit fehlerhaften Pipeline-Dateien an, um Details zu Eingabeformatdatensätzen mit Fehlern anzuzeigen. Die falsche Dateitabelle enthält Informationen zu den Zeilen, die Fehler beim Laden melden. Je nach den in der Logdateitabelle angezeigten Fehlern und den Zeilen in der fehlerhaften Datentabelle der Pipeline können Sie die Fehler möglicherweise korrigieren, indem Sie die Attributoptionen für die Pipeline format ändern oder die Daten in der Datei ändern, die Sie laden.

Beispiel:

SELECT * FROM PIPELINE$9$41_BAD;

Weitere Informationen finden Sie unter Datenladevorgänge überwachen und beheben.