建立及設定管線

您可以建立一或多個載入或匯出管線。建立管線時,可以使用參數和設定管線屬性來設定管線。

建立和設定管線的選項如下:

建立和設定用於載入資料的管線

您可以建立管線,將物件存放區中的外部檔案資料載入至 Autonomous Database 中的表格。

載入管線會使用置於物件存放區上的資料,並將其載入至 Autonomous Database 中的表格。建立載入管線時,管線會定期執行,以使用放置在物件存放區上的資料 (當新資料檔到達管線時) 載入新資料。您也可以使用管線,將具有恢復和重試功能的檔案從物件存放區可靠地複製到您資料庫上的表格。

使用載入管線時,管線套件會使用 DBMS_CLOUD.COPY_DATA 來載入資料。

在您的 Autonomous Database 上,使用現有表格或建立正在載入資料的資料庫表格。舉例而言:

CREATE TABLE EMPLOYEE
            (name     VARCHAR2(128),
             age      NUMBER,
             salary   NUMBER);
  1. 建立管線以從物件存放區載入資料。
    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 程序

  2. 建立證明資料物件以存取包含您所載入檔案的物件存放區。

    您可以指定屬性為 credential_name 之管線來源位置的證明資料。如果您未在下一個步驟中提供 credential_name,則 credential_name 值會設為 NULL。當 location 屬性為公用或預先認證的 URL 時,您可以使用預設的 NULL 值。

    如需詳細資訊,請參閱CREATE_CREDENTIAL 程序

  3. 設定管線屬性,包括必要屬性:locationtable_nameformat
    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;
    /

    必須設定下列屬性,才能執行載入管線:

    • 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;
/

使用時戳資料欄建立及設定匯出的管線

您可以建立匯出管線,將時間序列資料從您的 Autonomous Database 自動匯出至物件存放區。

您可以使用此匯出管線選項指定表格或 SQL 查詢,以及一個含有時戳的資料欄,供管線用來追蹤上次上傳的時間。您可以使用匯出管線來共用資料供其他應用程式使用,或將資料儲存至物件存放區。

使用匯出管線時,管線套件會使用 DBMS_CLOUD.EXPORT_DATA 來匯出資料。

匯出管線會將資料從您的 Autonomous Database 匯出至物件存放區。建立匯出管線時,管線會定期執行,並將資料置於物件存放區。

  1. 建立管線以將資料匯出至物件存放區。
    BEGIN
         DBMS_CLOUD_PIPELINE.CREATE_PIPELINE(
            pipeline_name=>'EXP_PIPE1',
            pipeline_type=>'EXPORT',
            description=>'Export time series metrics to object store');
    END;
    /

    如需詳細資訊,請參閱CREATE_PIPELINE 程序

  2. 建立證明資料物件以存取您要匯出資料檔的目的地物件存放區位置。

    您可以使用屬性 credential_name 指定管線目的地位置的證明資料。如果您未在下一個步驟中提供 credential_name,則 credential_name 值會設為 NULL。當 location 屬性為公用或預先認證的 URL 時,您可以使用預設的 NULL 值。

    如需詳細資訊,請參閱CREATE_CREDENTIAL 程序

  3. 設定匯出管線屬性。

    當您指定 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:描述您要匯出之資料的格式。

      如需詳細資訊,請參閱 EXPORT_DATA 的 DBMS_CLOUD 套件格式選項

    priority 值決定從資料庫擷取資料的平行程度。

    interval 值指定管線工作連續執行之間的時間間隔 (分鐘)。預設 interval 為 15 分鐘。

    如需有關管線屬性的詳細資訊,請參閱 DBMS_CLOUD_PIPELINE 屬性

    建立管線之後,您可以測試管線或啟動管線:

建立並設定管線以匯出查詢結果 (沒有時戳)

您可以建立匯出管線,將資料從您的 Autonomous Database 自動匯出至物件存放區。您可以使用此匯出管線選項指定管線定期執行的 SQL 查詢,以將資料匯出至物件存放區。您可以使用此匯出選項來共用來自 Autonomous Database 的最新資料,以物件儲存其他應用程式,以使用資料。

匯出管線會將資料從您的 Autonomous Database 匯出至物件存放區。建立匯出管線時,管線會定期執行,並將資料置於物件存放區。

  1. 建立管線以將資料匯出至物件存放區。
    BEGIN
         DBMS_CLOUD_PIPELINE.CREATE_PIPELINE(
            pipeline_name=>'EXP_PIPE2',
            pipeline_type=>'EXPORT',
            description=>'Export query results to object store.');
    END;
    /

    如需詳細資訊,請參閱CREATE_PIPELINE 程序

  2. 建立證明資料物件以存取您要匯出資料檔的目的地物件存放區位置。

    您可以使用屬性 credential_name 指定管線目的地位置的證明資料。如果您未在下一個步驟中提供 credential_name,則 credential_name 值會設為 NULL。當 location 屬性為公用或預先認證的 URL 時,您可以使用預設的 NULL 值。

    如需詳細資訊,請參閱CREATE_CREDENTIAL 程序

  3. 設定匯出管線屬性。
    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:描述您要匯出之資料的格式。

      如需詳細資訊,請參閱 EXPORT_DATA 的 DBMS_CLOUD 套件格式選項

    priority 值決定從資料庫擷取資料的平行程度。

    interval 值指定管線工作連續執行之間的時間間隔 (分鐘)。預設 interval 為 15 分鐘。

    如需有關管線屬性的詳細資訊,請參閱 DBMS_CLOUD_PIPELINE 屬性

    建立管線之後,您可以測試管線或啟動管線:

測試管線

使用 RUN_PIPELINE_ONCE 可視需要執行一次管線,而不建立排定的工作。

RUN_PIPELINE_ONCE 可在啟動管線之前測試管線。執行管線一次以測試管線並檢查管線是否如預期運作之後,請使用 RESET_PIPELINE 將管線的狀態 (在執行 RUN_PIPELINE_ONCE 之前的狀態) 重設為該狀態。

  1. 建立管線。

    請參閱建立及設定用於載入資料的管線以瞭解詳細資訊。

  2. 執行一次管線以測試管線。
    BEGIN
        DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE(
            pipeline_name => 'MY_PIPE1'
    );
    END;
    /

    如需詳細資訊,請參閱RUN_PIPELINE_ONCE 程序

  3. 執行任何必要的檢查,以確認管線如預期般運作。

    請參閱監控及疑難排解管線以瞭解詳細資訊。

  4. 重設管線。
    BEGIN  
       DBMS_CLOUD_PIPELINE.RESET_PIPELINE(
         pipeline_name => 'MY_PIPE1',
         purge_data => TRUE
    );
    END;
    /

    如需詳細資訊,請參閱RESET_PIPELINE 程序