建立及設定管線

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

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

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

您可以建立管線,將物件存放區或目錄中的外部檔案資料載入自治式 AI 資料庫中的表格。

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

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

在您的自治式 AI 資料庫上,使用現有表格或建立您要載入資料的資料庫表格。舉例而言:

 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_namecredential_name 值會設為 NULL。當 location 屬性為公用或預先認證的 URL 時,您可以使用預設的 NULL 值。

    請參閱 CREATE_CREDENTIAL 程序以瞭解詳細資訊。

  3. 設定管線屬性,包括必要的屬性:locationtable_nameformat

    案例 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 屬性,瞭解管線屬性的詳細資訊。

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

或者,若要設定 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 資料庫匯出至物件存放區。建立匯出管線時,管線會定期執行,並將資料置於物件存放區。

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

      請參閱 DBMS_CLOUD Package Format Options for EXPORT_DATA 以瞭解詳細資訊。

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

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

    請參閱 DBMS_CLOUD_PIPELINE 屬性,瞭解管線屬性的詳細資訊。

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

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

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

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

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

      請參閱 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 之前的狀態。

  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 程序以瞭解詳細資訊。