管理管道
停止管道
STOP_PIPELINE
停止管道。停止管道时,不会为该管道安排将来作业。
默认情况下,当您停止管道时,当前正在运行的作业已完成。将 force
参数设置为 TRUE
可终止任何正在运行的作业并立即停止管道。
有关更多信息,请参见STOP_PIPELINE Procedure 。
删除管道
DROP_PIPELINE
会删除现有管道。
如果某个管道已启动,则必须先停止该管道,然后才能删除该管道。有关更多信息,请参见STOP_PIPELINE Procedure 。
要删除已启动的管道,请将 force
参数设置为 TRUE
以终止任何正在运行的作业并立即删除管道
有关更多信息,请参见DROP_PIPELINE Procedure 。
重置管道
注意:
您可以选择使用重置管道清除与加载管道关联的数据库表中的数据,或者删除导出管道的对象存储中的文件。在管道开发过程中测试管道时,通常使用此选项。重置管道的运行方式如下:
-
加载管道:对于加载管道,重置管道将清除管道正在加载的文件的记录。重置加载管道后调用
START_PIPELINE
或RUN_PIPELINE_ONCE
时,管道会重复数据加载并包括对象存储位置中存在的所有文件。将
purge_data
设置为TRUE
时,该过程将截断数据库表中的数据。 -
导出管道:对于导出管道,重置管道将清除数据库表中最后跟踪的数据。重置导出管道后调用
START_PIPELINE
或RUN_PIPELINE_ONCE
时,管道将重复从表或查询导出数据。当
purge_data
设置为TRUE
时,该过程将删除使用location
属性指定的对象存储位置中的现有文件。
要重置管道,请执行以下操作:
监视和排除管道故障
创建的所有管道都记录在 DBMS_CLOUD_PIPELINE
视图中。
查看管道状态信息
使用 USER_CLOUD_PIPELINES
或 DBA_CLOUD_PIPELINES
视图检查管道状态并获取其他管道信息。例如,在 pipeline_name
上具有 WHERE
子句谓词的以下 SELECT
语句显示 MY_TREE_DATA
是负载管道并启动管道:
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
有关更多信息,请参见DBMS_CLOUD_PIPELINE Views 。
查看管道属性
可以通过查询 USER_CLOUD_PIPELINE_ATTRIBUTES
或 DBA_CLOUD_PIPELINE_ATTRIBUTES
视图来监视管道属性。查询这些视图以查看管道属性信息。
例如:
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
有关更多信息,请参见DBMS_CLOUD_PIPELINE Views 。
查看管道历史记录
USER_CLOUD_PIPELINE_HISTORY
和 DBA_CLOUD_PIPELINE_HISTORY
视图显示正在运行的作业的状态。使用管道历史记录视图可以帮助您监视管道的健康状况并检测正在运行的管道中的故障。
例如:
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
有关更多信息,请参见DBMS_CLOUD_PIPELINE Views 。
管道状态表:负载管道的其他监视
管道状态表显示加载管道的每个文件名及其状态。DBA_CLOUD_PIPELINES
和 USER_CLOUD_PIPELINES
中的 STATUS_TABLE
列显示状态表名称。
例如,在 pipeline_name
上具有 WHERE
子句谓词的以下 SELECT
语句显示管道的状态表名称:
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
查看状态表以查看有关管道的信息,包括以下内容:
-
如果对特定文件的操作失败,则相关错误号和错误消息将记录在状态表中。
-
对于已完成的管道操作,可以使用报告的
START_TIME
和END_TIME
计算每个操作所需的时间。
例如,以下显示两个文件的加载操作失败,一个文件已完成:
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
用于加载数据的管道(其中 pipeline_type
为 'LOAD'
)保留 USER_LOAD_OPERATIONS
和 DBA_LOAD_OPERATIONS
中所示的 ID
。这些视图中的 ID
值映射到 USER_CLOUD_PIPELINES
和 DBA_CLOUD_PIPELINES
中的管道 OPERATION_ID
。
要获取有关加载管道的更多信息,请查询管道的 OPERATION_ID
:
SELECT PIPELINE_NAME, OPERATION_ID FROM USER_CLOUD_PIPELINES
WHERE PIPELINE_NAME = 'MY_TREE_DATA';
PIPELINE_NAME OPERATION_ID
------------- ------------
MY_TREE_DATA 41
接下来,在 ID
列上使用 WHERE
子句谓词查询 USER_LOAD_OPERATIONS
或 DBA_LOAD_OPERATIONS
(使用 OPERATION_ID
值)。
例如:
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
此查询显示 ID
、TYPE
、LOGFILE_TABLE
、BADFILE_TABLE
(如果存在)和 STATUS_TABLE
。您可以查看这些表以了解其他管道加载信息。
管道状态表详细信息
列 | 数据类型 | 说明 |
---|---|---|
ID |
NUMBER |
分配给管道的唯一编号。 |
NAME |
VARCHAR2(4000) |
管道的名称。 |
BYTES |
NUMBER |
字节 |
CHECKSUM |
VARCHAR2(128) |
校验和 |
LAST_MODIFIED |
TIMESTAMP(6) WITH TIME ZONE |
管道的上次修改时间。 |
STATUS |
VARCHAR2(30) |
STATUS 值为以下值之一:
|
ERROR_CODE |
NUMBER |
错误代码 |
ERROR_MESSAGE |
VARCHAR2(4000) |
错误消息 |
START_TIME |
TIMESTAMP(6) WITH TIME ZONE |
管道的开始时间。 |
END_TIME |
TIMESTAMP(6) WITH TIME ZONE |
管道的结束时间。 |
SID |
NUMBER |
会话 |
SERIAL# |
NUMBER |
会话 |
ROWS_LOADED |
NUMBER |
加载的行数。 |
OPERATION_ID |
NUMBER |
保留供未来使用。 |
管道日志文件和错误文件表
要获取加载管道的日志文件和错误文件名,请查询管道的 OPERATION_ID
。例如:
SELECT PIPELINE_NAME, OPERATION_ID FROM USER_CLOUD_PIPELINES
WHERE PIPELINE_NAME = 'MY_TREE_DATA';
PIPELINE_NAME OPERATION_ID
------------- ------------
MY_TREE_DATA 41
接下来,在 ID
列上使用 WHERE
子句谓词查询 USER_LOAD_OPERATIONS
或 DBA_LOAD_OPERATIONS
(使用 OPERATION_ID
值)。
例如:
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
此查询显示 ID
、TYPE
、LOGFILE_TABLE
、BADFILE_TABLE
(如果存在)和 STATUS_TABLE
。您可以查看这些表以了解其他管道加载信息。
查看管道日志文件表以查看管道加载操作的完整日志。
例如:
SELECT * FROM PIPELINE$9$41_LOG;
查看管道错误文件表,以查看有关有错误的输入格式记录的详细信息。错误的文件表显示加载期间报告错误的行的信息。根据日志文件表中显示的错误以及管道错误文件表中显示的行,您可以通过修改管道 format
属性选项或修改要加载的文件中的数据来更正错误。
例如:
SELECT * FROM PIPELINE$9$41_BAD;
有关更多信息,请参见 Monitor and Troubleshoot Data Loading 。