使用 Azure Data Factory 或 Synapse Analytics 從 Oracle Cloud 儲存體複製資料

適用于: Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用于企業的單一分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告等所有專案。 瞭解如何 免費啟動新的試用版

本文概述如何從 Oracle Cloud 儲存體複製資料。 若要深入瞭解,請閱讀 Azure Data Factory Synapse Analytics 的 簡介文章。

支援的功能

下列功能支援此 Oracle Cloud 儲存體 連接器:

支援的功能 IR
複製活動 (source/-) ① ②
查閱活動 ① ②
GetMetadata 活動 ① ②
刪除活動 ① ②

(1) Azure 整合執行時間 (2) 自我裝載整合執行時間

具體來說,此 Oracle Cloud 儲存體 連接器支援像現在一樣複製檔案,或使用支援的檔案格式和壓縮編解碼器 剖析檔案 。 它會利用 Oracle Cloud 儲存體的 S3 相容互通性。

必要條件

若要從 Oracle Cloud 儲存體複製資料,請參閱 這裡 以取得必要條件和必要許可權。

開始使用

若要使用管線執行複製活動,您可以使用下列其中一個工具或 SDK:

使用 UI 建立 Oracle Cloud 儲存體的連結服務

使用下列步驟,在 Azure 入口網站 UI 中建立 Oracle Cloud 儲存體的連結服務。

  1. 流覽至 Azure Data Factory 或 Synapse 工作區中的 [管理] 索引標籤,然後選取 [連結服務],然後按一下 [新增]:

  2. 搜尋 Oracle,然後選取 Oracle Cloud 儲存體 連接器。

    Screenshot of the Oracle Cloud Storage connector.

  3. 設定服務詳細資料、測試連線,並建立新的連結服務。

    Screenshot of linked service configuration for Oracle Cloud Storage.

連線or 組態詳細資料

下列各節提供屬性的相關詳細資料,這些屬性可用來定義 Oracle Cloud 儲存體特定的實體。

連結的服務屬性

Oracle Cloud 儲存體連結服務支援下列屬性:

屬性 描述 必要
type type 屬性必須設定為 OracleCloud儲存體 Yes
accessKeyId 秘密存取金鑰的識別碼。 若要尋找存取金鑰和秘密,請參閱 必要條件 Yes
secretAccessKey 秘密存取金鑰本身。 將此欄位標示為 SecureString 以安全地儲存,或 參考儲存在 Azure 金鑰保存庫 中的秘密。 Yes
serviceUrl 將自訂端點指定為 https://<namespace>.compat.objectstorage.<region identifier>.oraclecloud.com 。 如需詳細資訊,請參閱 這裡 Yes
connectVia 要用來連接到資料存放區的整合執行時間 。 您可以使用 Azure 整合執行時間或自我裝載整合執行時間(如果您的資料存放區位於私人網路中)。 如果未指定此屬性,服務會使用預設的 Azure 整合執行時間。 No

以下是範例:

{
    "name": "OracleCloudStorageLinkedService",
    "properties": {
        "type": "OracleCloudStorage",
        "typeProperties": {
            "accessKeyId": "<access key id>",
            "secretAccessKey": {
                "type": "SecureString",
                "value": "<secret access key>"
            },
            "serviceUrl": "https://<namespace>.compat.objectstorage.<region identifier>.oraclecloud.com"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

資料集屬性

Azure Data Factory 支援下列檔案格式。 如需以格式為基礎的設定,請參閱每個文章。

在格式型資料集的設定下 location ,Oracle Cloud 支援下列屬性儲存體:

屬性 描述 必要
type 資料集 底下的 location type 屬性必須設定為 OracleCloud儲存體Location Yes
bucketName Oracle Cloud 儲存體貯體名稱。 Yes
folderPath 指定貯體下資料夾的路徑。 如果您想要使用萬用字元來篩選資料夾,請略過此設定,並在活動來源設定中指定該設定。 No
fileName 指定貯體和資料夾路徑下的檔案名。 如果您想要使用萬用字元來篩選檔案,請略過此設定,並在活動來源設定中指定。 No

範例:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<Oracle Cloud Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "OracleCloudStorageLocation",
                "bucketName": "bucketname",
                "folderPath": "folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

複製活動屬性

如需可用來定義活動的區段和屬性的完整清單,請參閱 管線 一文。 本節提供 Oracle Cloud 儲存體來源支援的屬性清單。

Oracle Cloud 儲存體作為來源類型

Azure Data Factory 支援下列檔案格式。 如需以格式為基礎的設定,請參閱每個文章。

在格式型複製來源的設定下 storeSettings ,Oracle Cloud 儲存體支援下列屬性:

屬性 描述 必要
type 底下的 storeSettings type 屬性必須設定為 OracleCloud儲存體Read設定 Yes
找出要複製的檔案:
選項 1:靜態路徑
從資料集中指定的指定貯體或資料夾/檔案路徑複製。 如果您想要從貯體或資料夾複製所有檔案,請另外指定 wildcardFileName*
選項 2:Oracle Cloud 儲存體 前置詞
-首碼
Oracle Cloud 儲存體索引鍵名稱的前置詞,其位於資料集中設定的指定貯體下,以篩選來源 Oracle Cloud 儲存體檔案。 Oracle Cloud 儲存體選取名稱開頭 bucket_in_dataset/this_prefix 的金鑰。 它利用 Oracle Cloud 儲存體的服務端篩選,可提供比萬用字元篩選更好的效能。 No
選項 3:萬用字元
- 萬用字元FolderPath
在資料集中設定的指定貯體下,具有萬用字元的資料夾路徑,以篩選源資料夾。
允許的萬用字元為: * (比對零或多個字元)和 ? (符合零或單一字元)。 如果您的資料夾名稱內有萬用字元或這個逸出字元,請使用 ^ 來逸出 。
請參閱資料夾和檔案篩選範例中的 更多範例
No
選項 4:萬用字元
- 萬用字元FileName
指定貯體和資料夾路徑下具有萬用字元的檔案名(或萬用字元資料夾路徑)以篩選來源檔案。
允許的萬用字元為: * (比對零或多個字元)和 ? (符合零或單一字元)。 如果您的檔案名內有萬用字元或這個逸出字元,請使用 ^ 來逸出 。 請參閱資料夾和檔案篩選範例中的 更多範例
Yes
OPTION 5:檔案清單
- fileListPath
表示複製指定的檔案集。 指向包含您要複製之檔案清單的文字檔,每行一個檔案一個,這是資料集中所設定路徑的相對路徑。
當您使用此選項時,請勿在資料集中指定檔案名。 請參閱檔案清單範例中的 更多範例
No
其他設定:
遞迴 指出資料是以遞迴方式從子資料夾讀取,還是只從指定的資料夾讀取。 請注意,當 遞迴 設定為 true 且接收是以檔案為基礎的存放區時,不會在接收端複製或建立空的資料夾或子資料夾。
允許的值為 true (預設值)和 false
當您設定 fileListPath 時,這個屬性不適用。
No
deleteFilesAfterCompletion 指出成功移至目的地存放區之後,是否會從來源存放區刪除二進位檔案。 檔案刪除是每個檔案,因此當複製活動失敗時,您會看到某些檔案已複製到目的地並從來源刪除,而其他檔案仍留在來源存放區。
此屬性只有在二進位檔案複製案例中才有效。 預設值:false。
No
modifiedDatetimeStart 檔案會根據 屬性進行篩選:上次修改。
如果上次修改的時間大於或等於 modifiedDatetimeStart 且小於 modifiedDatetimeEnd ,則會選取檔案。 時間會以 「2018-12-01T05:00:00Z」 的格式套用至 UTC 時區。
屬性可以是 Null ,這表示不會將檔案屬性篩選套用至資料集。 當 modifiedDatetimeStart 有日期時間值但 modifiedDatetimeEnd Null 時,將會選取上次修改屬性大於或等於 datetime 值的檔案。 當 modifiedDatetimeEnd 有日期時間值但 modifiedDatetimeStart Null 時,將會選取上次修改屬性小於 datetime 值的檔案。
當您設定 fileListPath 時,這個屬性不適用。
No
modifiedDatetimeEnd 同上。 No
enablePartitionDiscovery 針對已分割的檔案,指定是否要從檔案路徑剖析分割區,並將其新增為其他來源資料行。
允許的值為 false (預設值)和 true
No
partitionRootPath 啟用資料分割探索時,請指定絕對根路徑,以便將分割區資料夾讀取為數據行。

如果未指定,則預設為
- 當您在資料集中使用檔案路徑或來源上的檔案清單時,分割區根路徑是資料集中設定的路徑。
- 當您使用萬用字元資料夾篩選時,分割區根路徑是第一個萬用字元之前的子路徑。

例如,假設您在資料集中將路徑設定為 「root/folder/year=2020/month=08/day=27」:
- 如果您將分割區根路徑指定為 「root/folder/year=2020」,除了檔案內的資料行之外,複製活動還會另外產生兩 month 個數據行, day 且值 「08」 和 「27」。
- 如果未指定分割區根路徑,則不會產生任何額外的資料行。
No
maxConcurrent連線ions 在活動執行期間,與資料存放區建立的並行連線上限。 只有在您想要限制並行連線時,才指定值。 No

範例:

"activities":[
    {
        "name": "CopyFromOracleCloudStorage",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "OracleCloudStorageReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

資料夾和檔案篩選範例

本節描述具有萬用字元篩選的資料夾路徑和檔案名所產生的行為。

key 遞迴 源資料夾結構和篩選結果(擷取粗體檔案)
Folder*/* false
    FolderA
        File1.csv
        File2.json
        子資料夾1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
Folder*/* true
    FolderA
        File1.csv
        File2.json
        子資料夾1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
Folder*/*.csv false
    FolderA
        File1.csv
        File2.json
        子資料夾1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
Folder*/*.csv true
    FolderA
        File1.csv
        File2.json
        子資料夾1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv

檔案清單範例

本節說明在複製活動來源中使用檔案清單路徑的結果行為。

假設您具有下列來源資料夾結構,且想要以粗體複製檔案:

範例來源結構 FileListToCopy.txt 中的內容 組態

    FolderA
        File1.csv
        File2.json
        子資料夾1
            File3.csv
            File4.json
            File5.csv
    中繼資料
        FileListToCopy.txt
File1.csv
Subfolder1/File3.csv
Subfolder1/File5.csv
在資料集中:
-桶: bucket
- 資料夾路徑: FolderA

在複製活動來源中:
- 檔案清單路徑: bucket/Metadata/FileListToCopy.txt

檔案清單路徑會指向相同資料存放區中的文字檔,其中包含您要複製的檔案清單、每行一個檔案,以及資料集中所設定路徑的相對路徑。

查閱活動屬性

若要瞭解屬性的詳細資料,請檢查 查閱活動

GetMetadata 活動屬性

若要瞭解屬性的詳細資料,請檢查 GetMetadata 活動

刪除活動屬性

若要瞭解屬性的詳細資料,請參閱 刪除活動

如需複製活動支援作為來源和接收的資料存放區清單,請參閱 支援的資料存放區