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 auch eine Pipeline zurücksetzen.

Pipeline starten

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

Wenn eine Pipeline gestartet wird, wird die Pipeline 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. Pipeline starten.

     BEGIN
       DBMS_CLOUD_PIPELINE.START_PIPELINE(
         pipeline_name => 'EMPLOYEE_PIPELINE'
       );
     END;
     /
    

    Standardmäßig wird ein Pipelinejob sofort gestartet, 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 ProzedurSTART_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

Mit STOP_PIPELINE können Sie eine Pipeline stoppen. Wenn eine Pipeline gestoppt wird, werden keine zukünftigen Jobs für die Pipeline geplant.

Standardmäßig werden derzeit 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. Eine Pipeline stoppen.

     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 ausgeführte 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 anfänglichen Status zurücksetzen.

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

Die Zurücksetzungspipeline funktioniert wie folgt:

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. Zurücksetzen der Pipeline.

     BEGIN
       DBMS_CLOUD_PIPELINE.RESET_PIPELINE(
         pipeline_name => 'EMPLOYEE_PIPELINE',
         purge_data => TRUE);
     END;
     /
    

    Verwenden Sie den Parameter purge_data mit dem Wert TRUE nur, wenn Sie Daten in der Datenbanktabelle, für eine Ladepipeline oder Dateien im Objektspeicher für eine Exportpipeline löschen möchten. Normalerweise wird diese Option verwendet, wenn Sie eine Pipeline während der Pipeline-Entwicklung 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 Views USER_CLOUD_PIPELINES oder DBA_CLOUD_PIPELINES ab. Beispiel: Die folgende SELECT-Anweisung mit einem Prädikat der WHERE-Klausel in pipeline_name zeigt, dass MY_TREE_DATA eine Load-Pipeline 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 Sie die Views USER_CLOUD_PIPELINE_ATTRIBUTES oder DBA_CLOUD_PIPELINE_ATTRIBUTES abfragen. 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.

Pipelinehistorie anzeigen

Die Ansichten USER_CLOUD_PIPELINE_HISTORY und DBA_CLOUD_PIPELINE_HISTORY zeigen den Status der ausgeführten 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.

Pipelinestatustabelle: Zusätzliches Monitoring für Ladepipelines

In der Pipelinestatustabelle werden jeder Dateiname und sein Status für eine Ladepipeline angezeigt. Die Spalte STATUS_TABLE in DBA_CLOUD_PIPELINES und USER_CLOUD_PIPELINES zeigt den Namen der Statustabelle an.

Beispiel: Die folgende SELECT-Anweisung mit einem Prädikat der WHERE-Klausel in der 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. Dazu gehören:

Beispiel: Der folgende Vorgang zeigt, dass der Ladevorgang für zwei Dateien nicht erfolgreich war und einer 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 eine ID, die in USER_LOAD_OPERATIONS und DBA_LOAD_OPERATIONS angezeigt wird. Der Wert ID in diesen Ansichten ist dem Wert OPERATION_ID der Pipeline in USER_CLOUD_PIPELINES und DBA_CLOUD_PIPELINES zugeordnet.

Um weitere Informationen für eine Load Pipeline abzurufen, fragen Sie die Pipeline OPERATION_ID 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 Prädikat der WHERE-Klausel 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 Pipelineladeinformationen anzeigen.

Pipeline-Status - Tabellendetails

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 Wert STATUS ist einer der folgenden Werte:
  • COMPLETED: Der Dateivorgang wurde erfolgreich abgeschlossen.
  • FAILED: Der Dateivorgang war nicht erfolgreich. Es kann zweimal versucht werden, den Vorgang zu wiederholen.
  • PENDING: Der Dateivorgang wurde noch nicht gestartet.
  • RUNNING: Der Dateivorgang wird derzeit ausgeführt.
  • SKIPPED: Der Dateivorgang wurde ü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 Sessions SID und SERIAL# geben die Jobsession an, in der der Pipelineladevorgang ausgeführt wurde.
SERIAL# NUMBER Die Sessions SID und SERIAL# geben die Jobsession an, in der der Pipelineladevorgang ausgeführt wurde.
ROWS_LOADED NUMBER Anzahl geladene Zeilen.
OPERATION_ID NUMBER Für die zukünftige Verwendung reserviert.

Pipeline-Logdatei und fehlerhafte Dateitabellen

Um die Logdatei und die ungültigen Dateinamen für eine Ladepipeline abzurufen, fragen Sie die 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 Prädikat der WHERE-Klausel 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 Pipeline-Ladeinformationen anzeigen.

Zeigen Sie die Tabelle der Pipeline-Logdateien 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. In der Tabelle mit fehlerhaften Dateien werden Informationen für die Zeilen angezeigt, die beim Laden Fehler melden. Abhängig von den Fehlern, die in der Logdatei-Tabelle angezeigt werden, und den Zeilen, die in der fehlerhaften Dateitabelle der Pipeline angezeigt werden, können Sie die Fehler möglicherweise korrigieren, indem Sie die Optionen des format-Attributs der Pipeline ändern oder die Daten in der geladenen Datei ändern.

Beispiel:

SELECT * FROM PIPELINE$9$41_BAD;

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