建立及設定管線
您可以建立一或多個載入或匯出管線。建立管線時,您可以使用參數和設定管線屬性來設定管線。
建立及設定管線的選項如下:
-
負載管線:
- 請參閱建立及設定用於載入資料的管線。
-
匯出業務進程:
-
使用日期或時戳資料欄作為追蹤較新資料的索引鍵,將查詢的增量結果匯出至物件存放區。請參閱使用時戳資料欄建立和設定匯出的管線。
-
使用日期或時戳資料欄作為追蹤較新資料的索引鍵,將表格的增量資料匯出至物件存放區。請參閱使用時戳資料欄建立和設定匯出的管線。
-
使用查詢將表格的資料匯出至物件存放區,以選取沒有日期或時戳資料欄參照的資料 (讓管線匯出查詢針對每個排程器執行選取的所有資料)。請參閱建立和設定匯出查詢結果的管線 (沒有時戳) 。
-
建立及設定用於載入資料的管線
您可以建立管線,將物件存放區或目錄中的外部檔案資料載入自治式 AI 資料庫中的表格。
載入管線會使用放置在物件存放區或目錄中的資料,並將其載入 Autonomous AI Database 中的表格。建立載入管線時,當新的資料檔到達管線時,管線會定期執行,以使用放置在來源位置的資料。您也可以使用管線可靠地複製檔案 (具備恢復和重試功能),從來源位置到資料庫上的表格。
使用載入管線時,管線套件會使用 DBMS_CLOUD.COPY_DATA 來載入資料。
在您的自治式 AI 資料庫上,使用現有表格或建立您要載入資料的資料庫表格。舉例而言:
CREATE TABLE EMPLOYEE
(name VARCHAR2(128),
age NUMBER,
salary NUMBER);
- 建立管線以從物件存放區或從目錄物件載入資料。
BEGIN DBMS_CLOUD_PIPELINE.CREATE_PIPELINE( pipeline_name => 'MY_PIPE1', pipeline_type => 'LOAD', description => 'Load metrics from object store into a table' ); END; /請參閱 CREATE_PIPELINE 程序以瞭解詳細資訊。
-
建立證明資料物件以存取包含所載入檔案的物件存放區。
您可以使用
credential_name屬性來指定管線來源位置的證明資料。如果您在下一個步驟中未提供credential_name,credential_name值會設為NULL。當location屬性為公用或預先認證的 URL 時,您可以使用預設的NULL值。請參閱 CREATE_CREDENTIAL 程序以瞭解詳細資訊。
-
設定管線屬性,包括必要的屬性:
location、table_name和format。案例 1:建立從物件存放區載入資料的管線。
BEGIN DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE( pipeline_name => 'MY_PIPE1', attributes => JSON_OBJECT( 'credential_name' VALUE 'OBJECT_STORE_CRED', 'location' VALUE 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/', 'table_name' VALUE 'employee', 'format' VALUE '{"type":"json", "columnpath":["$.NAME", "$.AGE", "$.SALARY"]}', 'priority' VALUE 'HIGH', 'interval' VALUE '20') ); END; /案例 2:建立用於從目錄物件載入資料的管線。
BEGIN DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE( pipeline_name => 'MY_PIPE1', pipeline_type => 'LOAD', attributes => JSON_OBJECT( 'location' VALUE 'MY_DIR:*.csv', 'table_name' VALUE 'employee', 'format' VALUE '{"type":"csv"}', 'priority' VALUE 'HIGH', 'interval' VALUE '20') ); END; /下列屬性必須設為在兩種情況下執行載入管線:
-
location:指定物件存放區或目錄物件上的來源檔案位置。 -
table_name:指定資料庫中載入資料的表格。您指定的location適用於每個管線一個table_name。 -
format:描述您要載入之資料的格式。請參閱 DBMS_CLOUD 套裝程式格式選項瞭解詳細資訊。
credential_name是您在上一個步驟中建立的證明資料。priority值決定平行載入的檔案數目。優先順序較高的管線會耗用更多的資料庫資源,並且比以較低的優先順序執行,更快完成每個執行。interval值指定管線工作連續執行之間的時間間隔 (分鐘)。預設的interval為 15 分鐘。請參閱 DBMS_CLOUD_PIPELINE 屬性,瞭解管線屬性的詳細資訊。
-
-
建立管線之後,您可以測試管線或啟動管線:
或者,若要設定 JSON 的格式,您可以使用下列格式:
BEGIN
DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
pipeline_name => 'MY_PIPE1',
attribute_name => 'format',
attribute_value => JSON_OBJECT('type' value 'json', 'columnpath' value '["$.NAME", "$.AGE", "$.SALARY"]')
);
END;
/
建立並設定匯出時戳資料欄的管線
您可以建立匯出管線,以自動將時間序列資料從您的自治式 AI 資料庫匯出至物件存放區。
您可以使用此匯出管線選項,指定表格或 SQL 查詢,以及一個含有時間戳記的資料欄,讓管線用來追蹤上次上傳的時間。您可以使用匯出管線來共用資料供其他應用程式使用,或將資料儲存至物件存放區。
使用匯出管線時,管線套件會使用 DBMS_CLOUD.EXPORT_DATA 匯出資料。
匯出管線會將資料從您的自治式 AI 資料庫匯出至物件存放區。建立匯出管線時,管線會定期執行,並將資料置於物件存放區。
-
建立將資料匯出至物件存放區的管線。
BEGIN DBMS_CLOUD_PIPELINE.CREATE_PIPELINE( pipeline_name=>'EXP_PIPE1', pipeline_type=>'EXPORT', description=>'Export time series metrics to object store'); END; /請參閱 CREATE_PIPELINE 程序以瞭解詳細資訊。
-
建立證明資料物件,以存取您要匯出資料檔的目的地物件存放區位置。
您可以使用
credential_name屬性來指定管線目的地位置的證明資料。如果您在下一個步驟中未提供credential_name,credential_name值會設為NULL。當location屬性為公用或預先認證的 URL 時,您可以使用預設的NULL值。請參閱 CREATE_CREDENTIAL 程序以瞭解詳細資訊。
-
設定匯出管線屬性。
當您指定
table_name參數時,表格資料列會匯出至物件存放區。當您指定query參數時,查詢會指定SELECT敘述句,以便只將必要的資料匯出至物件存放區。-
使用
table_name參數:BEGIN DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE( pipeline_name => 'EXP_PIPE1', attributes => JSON_OBJECT('credential_name' VALUE 'OBJECT_STORE_CRED', 'location' VALUE 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/', 'table_name' VALUE 'metric_table', 'key_column' VALUE 'metric_time', 'format' VALUE '{"type": "json"}', 'priority' VALUE 'MEDIUM', 'interval' VALUE '20') ); END; / -
使用
query參數:BEGIN DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE( pipeline_name => 'EXP_PIPE1', attributes => JSON_OBJECT('credential_name' VALUE 'OBJECT_STORE_CRED', 'location' VALUE 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/', 'query' VALUE 'SELECT * from metrics_table', 'key_column' VALUE 'metric_time', 'format' VALUE '{"type": "json"}', 'priority' VALUE 'MEDIUM', 'interval' VALUE '20') ); END; /其中
credential_name是您在上一個步驟中建立的證明資料。
必須設定下列屬性,才能執行匯出管線:
-
location:指定目的地物件儲存位置。您指定的location適用於每個管線一個table_name。 -
table_name:指定資料庫中包含所匯出資料的表格 (需要table_name參數或query參數)。 -
query:指定要在資料庫中執行,以提供您要匯出之資料的查詢 (需要table_name參數或query參數)。 -
format:描述您要匯出之資料的格式。請參閱 DBMS_CLOUD Package Format Options for EXPORT_DATA 以瞭解詳細資訊。
priority值決定從資料庫擷取資料的平行程度。interval值指定管線工作連續執行之間的時間間隔 (分鐘)。預設的interval為 15 分鐘。請參閱 DBMS_CLOUD_PIPELINE 屬性,瞭解管線屬性的詳細資訊。
建立管線之後,您可以測試管線或啟動管線:
-
建立並設定匯出查詢結果的管線 (沒有時戳)
您可以建立匯出管線,以自動將自治式 AI 資料庫的資料匯出至物件存放區。您可以使用此匯出管線選項,指定定期執行管線以將資料匯出至物件存放區的 SQL 查詢。您可以使用此匯出選項將自治式 AI 資料庫的最新資料共用至其他應用程式的物件存放區,以使用資料。
匯出管線會將資料從您的自治式 AI 資料庫匯出至物件存放區。建立匯出管線時,管線會定期執行,並將資料置於物件存放區。
-
建立將資料匯出至物件存放區的管線。
BEGIN DBMS_CLOUD_PIPELINE.CREATE_PIPELINE( pipeline_name=>'EXP_PIPE2', pipeline_type=>'EXPORT', description=>'Export query results to object store.'); END; /請參閱 CREATE_PIPELINE 程序以瞭解詳細資訊。
-
建立證明資料物件,以存取您要匯出資料檔的目的地物件存放區位置。
您可以使用
credential_name屬性來指定管線目的地位置的證明資料。如果您在下一個步驟中未提供credential_name,credential_name值會設為NULL。當location屬性為公用或預先認證的 URL 時,您可以使用預設的NULL值。請參閱 CREATE_CREDENTIAL 程序以瞭解詳細資訊。
-
設定匯出管線屬性。
BEGIN DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE( pipeline_name => 'EXP_PIPE2', attributes => JSON_OBJECT( 'credential_name' VALUE 'OBJECT_STORE_CRED', 'location' VALUE 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/', 'query' VALUE 'SELECT * FROM table_name', 'format' VALUE '{"type": "json"}', 'priority' VALUE 'MEDIUM', 'interval' VALUE '20') ); END; /其中
credential_name是您在上一個步驟中建立的證明資料。必須設定下列屬性,才能執行匯出管線:
-
location:指定目的地物件儲存位置。 -
query:指定要在資料庫中執行的查詢,以提供您要匯出的資料。 -
format:描述您要匯出之資料的格式。請參閱 DBMS_CLOUD Package Format Options for EXPORT_DATA 以瞭解詳細資訊。
priority值決定從資料庫擷取資料的平行程度。interval值指定管線工作連續執行之間的時間間隔 (分鐘)。預設的interval為 15 分鐘。請參閱 DBMS_CLOUD_PIPELINE 屬性,瞭解管線屬性的詳細資訊。
建立管線之後,您可以測試管線或啟動管線:
-
測試管線
使用 RUN_PIPELINE_ONCE 可視需要執行一次管線,而無須建立排定的工作。
RUN_PIPELINE_ONCE 可用於在開始管線之前測試管線。在您執行一次管線以測試管線並檢查管線是否如預期般運作之後,請使用 RESET_PIPELINE 將管線的狀態重設為執行 RUN_PIPELINE_ONCE 之前的狀態。
-
建立管線。
請參閱建立及設定用於載入資料的管線以瞭解詳細資訊。
-
只要執行一次管線,即可測試管線。
BEGIN DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE( pipeline_name => 'MY_PIPE1' ); END; /請參閱 RUN_PIPELINE_ONCE 程序以瞭解詳細資訊。
-
執行任何必要的檢查來確認管線是否如預期般運作。
請參閱監督及疑難排解管線以瞭解詳細資訊。
-
重設管線。
BEGIN DBMS_CLOUD_PIPELINE.RESET_PIPELINE( pipeline_name => 'MY_PIPE1', purge_data => TRUE ); END; /請參閱 RESET_PIPELINE 程序以瞭解詳細資訊。