DBMS_CLOUD_PIPELINE 套裝程式

DBMS_CLOUD_PIPELINE 套裝程式可讓您建立資料管線,以載入及匯出雲端中的資料。此套件支援將物件存放區中的檔案連續遞增資料載入至資料庫中。DBMS_CLOUD_PIPELINE 也支援根據時戳資料欄,持續將表格資料或查詢結果從資料庫匯出至物件存放區。

必備條件

身為開發人員,您可以將 DBMS_CLOUD 程序與部署在 Oracle Public Cloud、Multicloud 或 Exadata Cloud@Customer 上的 Autonomous AI 資料庫搭配使用。

視部署選項而定,必須符合下列先決條件,才能將 DBMS_CLOUD 程序與 Amazon S3、Azure Blob Storage 及 Google Cloud Storage 服務提供者搭配使用。

DBMS_CLOUD_PIPELINE 子程式摘要

此表格總結列出 DBMS_CLOUD_PIPELINE 套裝程式中所含的子程式。

子程式 描述
CREATE_PIPELINE 程序 建立新的資料管線。
DROP_PIPELINE 程序 刪除現有的資料管線。
RESET_PIPELINE 程序 重設資料管線的追蹤狀態。使用重設管線,從資料載入或匯出的初始狀態重新啟動管線。視管線的類型而定,您也可以選擇重設管線,永久清除資料庫或物件存放區中的資料。
RUN_PIPELINE_ONCE 程序 在目前的前景階段作業中執行視需要執行的管線,而不是執行排定的工作。
SET_ATTRIBUTE 程序 設定管線屬性。有兩個超載程序,一個用於設定單一屬性,另一個用於使用屬性名稱 / 值組的 JSON 文件設定多個屬性
START_PIPELINE 程序 啟動資料管線。管線啟動後,管線作業將根據管線屬性中設定的「間隔」持續在排定的工作中執行。
STOP_PIPELINE 程序 停止資料管線。停止管線時,不會排定管線的未來工作。

CREATE_PIPELINE 程序

程序會建立新的資料管線。

語法

DBMS_CLOUD_PIPELINE.CREATE_PIPELINE(
      pipeline_name        IN   VARCHAR2,
      pipeline_type        IN   VARCHAR2,
      attributes           IN   CLOB        DEFAULT NULL,
      description          IN   VARCHAR2    DEFAULT NULL
);

參數

Parameter - 參數 描述
pipeline_name

指定業務進程的名稱。管線名稱必須遵循 Oracle SQL ID 的命名規則。請參閱 Oracle Database Database PL/SQL Language Reference 中的 IdentifiersOracle Database 26ai Database PL/SQL Language Reference ,瞭解詳細資訊。

此參數為必要參數。

pipeline_type

指定管線類型。

有效值:LOADEXPORT

此參數為必要參數。

attributes

JSON 格式的管線屬性。

預設值:NULL

請參閱 DBMS_CLOUD_PIPELINE 屬性以瞭解詳細資訊。

description

管線的描述。

預設值:NULL

DROP_PIPELINE 程序

程序會刪除現有的資料管線。如果管線已經啟動,則必須先停止管線,才能將其刪除。

語法

DBMS_CLOUD_PIPELINE.DROP_PIPELINE(
       pipeline_name        IN   VARCHAR2,
       force                IN   BOOLEAN DEFAULT FALSE
 );

參數

Parameter - 參數 描述
pipeline_name

指定管線名稱。

此參數為必要參數。

force

強制刪除管線,即使管線為已啟動狀態。

有效值:TRUEFALSE

預設值:FALSE

用途注意事項

RESET_PIPELINE 程序

重設資料管線的追蹤狀態。使用重設管線,從資料載入或匯出的初始狀態重新啟動管線。視管線的類型而定,您也可以選擇重設管線,永久清除資料庫或物件存放區中的資料。資料管線必須處於停止狀態才能重設。

語法

DBMS_CLOUD_PIPELINE.RESET_PIPELINE(
       pipeline_name        IN   VARCHAR2,
       purge_data           IN   BOOLEAN DEFAULT FALSE
 );

參數

Parameter - 參數 描述
pipeline_name

指定業務進程的名稱。

此參數為必要參數。

purge_data

永久清除資料適用於載入管線或匯出管線:

  • 若為載入管線,當 TRUE 時,會截斷資料庫表格中的資料。

  • 對於匯出管線,當 TRUE 時,會刪除物件存放區位置中的檔案。

有效值:TRUEFALSE

預設值:FALSE

使用注意事項

RUN_PIPELINE_ONCE 程序

此程序會在目前的前景階段作業中依需求執行管線,而不是在排定的工作中執行。使用 DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE 在以連續工作方式啟動管線之前,先測試管線。

語法

DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE(
       pipeline_name  IN  VARCHAR2
);

參數

Parameter - 參數 描述
pipeline_name

指定要執行之管線的名稱。

此參數為必要參數。

使用注意事項

SET_ATTRIBUTE 程序

此程序會設定管線屬性。有兩個超載程序,一個是設定單一屬性,另一個是使用屬性名稱 / 值組的 JSON 文件設定多個屬性。

語法

PROCEDURE DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
      pipeline_name        IN   VARCHAR2,
      attribute_name       IN   VARCHAR2,
      attribute_value      IN   CLOB
);

PROCEDURE DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
      pipeline_name        IN   VARCHAR2,
      attributes           IN   CLOB
);

參數

Parameter - 參數 描述
pipeline_name

指定用以設定屬性的管線名稱。

此參數為必要參數。

attribute_name

指定要設定之屬性的屬性名稱。

請參閱 DBMS_CLOUD_PIPELINE 屬性以瞭解詳細資訊。

attribute_value

指定要設定的管線屬性值。

請參閱 DBMS_CLOUD_PIPELINE 屬性以瞭解詳細資訊。

attributes

指定包含屬性名稱和值的 JSON 文件。

請參閱 DBMS_CLOUD_PIPELINE 屬性以瞭解詳細資訊。

用途注意事項

使用 DBMS_CLOUD_PIPELINE.SET_ATTRIBUTEattributes 參數設定多個屬性時,會刪除所有現有屬性並以 JSON 文件中的指定屬性覆寫。

START_PIPELINE 程序

程序會啟動資料管線。當管線啟動時,管線作業會根據以管線屬性設定的 interval,在排定的工作中持續執行。

語法

DBMS_CLOUD_PIPELINE.START_PIPELINE(
      pipeline_name        IN   VARCHAR2,
      start_date           IN   TIMESTAMP WITH TIME ZONE DEFAULT NULL
);

參數

Parameter - 參數 描述
pipeline_name

指定業務進程的名稱。

此參數為必要參數。

start_date

指定管線工作的開始日期。

預設值:NULL

使用注意事項

STOP_PIPELINE 程序

程序會停止資料管線。停止管線時,不會排定管線的未來工作。

語法

DBMS_CLOUD_PIPELINE.STOP_PIPELINE(
      pipeline_name        IN   VARCHAR2,
      force                IN   BOOLEAN  DEFAULTFALSE
);

參數

Parameter - 參數 描述
pipeline_name

指定業務進程的名稱。

此參數為必要參數。

force

如果將強制參數傳遞為 TRUE,則會終止管線的任何執行中工作。

有效值:TRUE, FALSE

預設值:FALSE

DBMS_CLOUD_PIPELINE 屬性

屬性有助於控制和設定資料管線的行為。

屬性

注意:業務進程類型資料欄中所示,視業務進程類型 LOADEXPORT 而定,業務進程支援一組不同的屬性。

屬性名稱 描述 管道類型 業務進程開始後可修改
credential_name

用以存取來源雲端物件儲存的證明資料名稱。

預設值:NULL

如果您未提供 credential_name,則 credential_name 會設為 NULL

LOAD, EXPORT
field_list

識別來源檔案中的欄位及其資料類型。此引數的語法與一般 Oracle 外部表格中的 field_list 子句相同。如需詳細資訊,請參閱 Oracle Database 19c UtilitiesOracle Database 26ai Utilities 中的 field_list

預設值:NULL

預設值會指定欄位及其資料類型,由 table_name 屬性中指定之表格中的資料欄決定。

LOAD
format

描述管線類型的格式的選項。

匯出管線不支援 Datapump format

LOADEXPORT 管線必須要有此屬性。

LOAD, EXPORT
interval

排定的管線工作連續執行之間的時間間隔 (分鐘)。

預設值:15 分鐘

LOAD, EXPORT
key_column

指定之 tablequery 中的時戳或日期資料欄,用於持續將較新的資料匯出至物件存放區。「匯出」管線會追蹤上次執行時戳或日期,並與 key_column 中的值進行比較,以識別要匯出至物件存放區的新資料。

預設值:NULL

如果未針對匯出管線指定 key_column,則 tablequery 的完整內容會上傳至每個管線工作執行的物件存放區。

EXPORT 編號
location

此參數指定來源檔案 URI、目錄以及來源檔案。您可以在檔案名稱中使用萬用字元。

此參數為必要參數。

雲端來源檔案 URI

您可以指定儲存桶或子資料夾的來源檔案 URI。您可以使用萬用字元來指定子資料夾或檔案名稱樣式。字元 "\*" 可以作為多個字元的萬用字元使用,而字元 "?" 可以用來作為單一字元的萬用字元。

使用萬用字元的範例:

location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.csv

URI 的格式取決於您使用的雲端物件儲存服務,如需詳細資訊,請參閱雲端物件儲存 URI 格式

目錄

您可以指定一個目錄和檔案名稱。指定目錄的格式為 'MY_DIR:filename.ext'。依照預設,目錄名稱 MY_DIR 是資料庫物件,不區分大小寫。檔案名稱有大小寫之別。

您只能使用萬用字元在目錄中指定檔案名稱。字元 "*" 可作為多個字元的萬用字元使用,而字元 "?" 則可用來作為單一字元的萬用字元。

例如:'MY_DIR:*"'MY_DIR:test?'

使用雙引號來指定區分大小寫的目錄名稱。

例如:'"my_dir1":*, "my_dir2":Test?'

若要包含引號字元,請使用兩個引號。

例如:'MY_DIR:''filename.ext'。這會指定檔案名稱開頭為引號 (')

   
priority

指定一個字串值,用以決定為管線執行的平行作業數目。

  • 在載入管線中,它會決定平行載入的檔案數目。

  • 在匯出管線中,它會決定從資料庫擷取資料的平行程度。

優先順序較高的作業會耗用更多的資料庫資源,而且很快就會完成。

以下為其有效值:

  • HIGH:決定使用資料庫的 ECPU 數目處理的平行檔案數目 (如果資料庫使用 OCPU,則為 OCPU 數目)。
  • MEDIUM:使用「中」服務的並行限制來決定同時處理的數目。預設值是 4。
  • LOW:依序列順序執行管線工作。

預設值:MEDIUM

並行檔案作業的數目上限為 64 個。

LOAD, EXPORT
query

指定 SELECT 陳述式,以便僅匯出必要資料。查詢決定匯出為文字檔 (CSV、JSON、Parquet 或 XML) 或傾印檔的檔案內容。

舉例而言:

SELECT warehouse_id, quantity FROM inventories;

預設值:NULL

對於匯出管線,必須輸入 table_namequery

EXPORT 編號
table_name

指定用於載入或匯出資料的目標表格名稱。

必須輸入載入管線 table_name

對於匯出管線,必須輸入 table_namequery

LOAD, EXPORT 編號
table_owner

目標表格所在的綱要名稱,用於載入或匯出資料。

預設值:NULL

使用 NULL 值時,目標表格與執行程序的使用者位於相同的綱要中。

LOAD, EXPORT 編號

相關內容