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.
-
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_dateein gültiges zukünftiges Datum oder einen gültigen Zeitstempel an.Weitere Informationen finden Sie unter ProzedurSTART_PIPELINE.
-
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.
-
Eine Pipeline stoppen.
BEGIN DBMS_CLOUD_PIPELINE.STOP_PIPELINE( pipeline_name => 'EMPLOYEE_PIPELINE' ); END; /Weitere Informationen finden Sie unter Prozedur STOP_PIPELINE.
-
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
-
Pipeline löschen.
BEGIN DBMS_CLOUD_PIPELINE.DROP_PIPELINE( pipeline_name => 'EMPLOYEE_PIPELINE' ); END; / -
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:
-
Pipeline laden: Beim Zurücksetzen der Pipeline wird der Datensatz der von der Pipeline geladenen Dateien gelöscht. Wenn Sie nach dem Zurücksetzen einer Ladepipeline
START_PIPELINEoderRUN_PIPELINE_ONCEaufrufen, wiederholt die Pipeline den Dataload und enthält alle Dateien, die im Objektspeicherverzeichnis vorhanden sind.Wenn
purge_dataaufTRUEgesetzt ist, schneidet die Prozedur die Daten in der Datenbanktabelle ab. -
Pipeline exportieren: Beim Zurücksetzen der Pipeline werden die zuletzt verfolgten Daten in der Datenbanktabelle gelöscht. Wenn Sie
START_PIPELINEoderRUN_PIPELINE_ONCEnach dem Zurücksetzen einer Exportpipeline aufrufen, wiederholt die Pipeline den Export von Daten aus der Tabelle oder Abfrage.Wenn
purge_dataaufTRUEgesetzt ist, löscht die Prozedur vorhandene Dateien im Objektspeicherort, der mit dem Attributlocationangegeben ist.
So setzen Sie eine Pipeline zurück:
-
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.
-
Zurücksetzen der Pipeline.
BEGIN DBMS_CLOUD_PIPELINE.RESET_PIPELINE( pipeline_name => 'EMPLOYEE_PIPELINE', purge_data => TRUE); END; /Verwenden Sie den Parameter
purge_datamit dem WertTRUEnur, 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:
-
Die entsprechende Fehlernummer und Fehlermeldung werden in der Statustabelle aufgezeichnet, wenn ein Vorgang für eine bestimmte Datei fehlschlägt.
-
Bei abgeschlossenen Pipelinevorgängen kann die für jeden Vorgang benötigte Zeit mit dem gemeldeten
START_TIMEundEND_TIMEberechnet werden.
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:
|
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.