分享方式:


使用 Azure Data Factory 或 Synapse Analytics,從 Oracle Cloud Storage 複製資料

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用

本文概述如何從 Oracle Cloud Storage 複製資料。 若要深入了解,請閱讀 Azure Data FactorySynapse Analytics 的介紹文章。

支援的功能

此 Oracle 雲端儲存空間連接器支援下列功能:

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

① Azure 整合執行階段 ② 自我裝載整合執行階段

具體而言,此 Oracle Cloud Storage 連接器支援依原狀複製檔案,或使用支援的檔案格式和壓縮轉碼器來剖析檔案。 它利用 Oracle Cloud Storage 的 S3 相容互通性。

必要條件

若要從 Oracle Cloud Storage 複製資料,請參閱這裡以取得必要條件和必要權限。

開始使用

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

使用 UI 建立連結至 Oracle Cloud Storage 的服務

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

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

  2. 搜尋 Oracle,然後選取 Oracle Cloud Storage 連接器。

    Oracle 雲端儲存空間連接器的螢幕擷取畫面。

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

    Oracle 雲端儲存空間連結服務設定的螢幕擷取畫面。

連接器設定詳細資料

下列各節提供屬性的詳細資料,而這些屬性用來定義 Oracle Cloud Storage 特有的實體。

連結服務屬性

以下是針對 Oracle Cloud Storage 已連結服務所支援的屬性:

屬性 描述 必要
type type 屬性必須設定為 OracleCloudStorage Yes
accessKeyId 密碼存取金鑰的識別碼。 若要尋找存取金鑰和秘密,請參閱必要條件 Yes
secretAccessKey 密碼存取金鑰本身。 將此欄位標記為 SecureString 以將其安全地儲存,或參考 Azure Key Vault 中儲存的祕密 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 Storage 支援下列屬性:

屬性 描述 必要
type 資料集中 location 下的 type 屬性必須設定為 OracleCloudStorageLocation Yes
bucketName Oracle Cloud Storage 貯體名稱。 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 Storage 來源所支援的屬性清單。

Oracle Cloud Storage 作為來源類型

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

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

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

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

例如,假設您將資料集中的路徑設定為 "root/folder/year=2020/month=08/day=27":
- 如果您將分割區根路徑指定為 "root/folder/year=2020",則除了檔案內的資料行之外,複製活動還會分別產生值為 "08" 和 "27" 的兩個資料行 monthday
- 如果未指定分割區根路徑,則不會產生額外的資料行。
No
maxConcurrentConnections 在活動執行期間建立至資料存放區的同時連線上限。 僅在想要限制並行連線時,才需要指定值。 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>"
            }
        }
    }
]

資料夾和檔案篩選範例

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

貯體 索引鍵 遞迴 來源資料夾結構和篩選結果 (會擷取以粗體顯示的檔案)
貯體 Folder*/* false 貯體
    FolderA
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
貯體 Folder*/* true 貯體
    FolderA
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
貯體 Folder*/*.csv false 貯體
    FolderA
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
貯體 Folder*/*.csv true 貯體
    FolderA
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv

檔案清單範例

本節說明使用複製活動來源中的檔案清單路徑時所產生的行為。

假設您的來源資料夾結構如下,且想要複製以粗體標示的檔案:

範例來源結構 FileListToCopy.txt 中的內容 組態
貯體
    FolderA
        File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    中繼資料
        FileListToCopy.txt
File1.csv
Subfolder1/File3.csv
Subfolder1/File5.csv
在資料集中:
- 貯體:bucket
- 資料夾路徑:FolderA

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

檔案清單路徑指向相同資料存放區中的文字檔,其中包括所要複製檔案的清單,且一行一個檔案,並具有資料集中所設定路徑的相對路徑。

查閱活動屬性

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

GetMetadata 活動屬性

若要了解屬性的詳細資料,請參閱 GetMetadata 活動

刪除活動屬性

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

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