使用 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 Factory 和 Synapse 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 的服務。
前往 Azure Data Factory 或 Synapse 工作區的 [管理] 索引標籤,選取 [連結服務],然後按一下 [新增]:
搜尋 Oracle,然後選取 Oracle Cloud Storage 連接器。
設定服務詳細資料,測試連線,然後建立新的連結服務。
連接器設定詳細資料
下列各節提供屬性的詳細資料,而這些屬性用來定義 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 有日期時間值,但 modifiedDatetimeEnd 為 NULL,則將會選取上次修改時間屬性大於或等於該日期時間值的檔案。 若 modifiedDatetimeEnd 有日期時間值,但 modifiedDatetimeStart 為 NULL,則將會選取上次修改時間屬性小於該日期時間值的檔案。設定 fileListPath 時,此屬性不適用。 |
No |
modifiedDatetimeEnd | 同上。 | No |
enablePartitionDiscovery | 針對已分割的檔案,指定是否要從檔案路徑剖析分割區,並將其新增為其他來源資料行。 允許的值為 false (預設值) 和 true。 |
No |
partitionRootPath | 啟用分割區探索時,請指定絕對根路徑,將已分割的資料夾當成資料行進行讀取。 如果未指定,則根據預設, - 當您使用資料集中的檔案路徑或來源上的檔案清單時,分割區根路徑是資料集中所設定的路徑。 - 當您使用萬用字元資料夾篩選時,分割區根路徑是第一個萬用字元前面的子路徑。 例如,假設您將資料集中的路徑設定為 "root/folder/year=2020/month=08/day=27": - 如果您將分割區根路徑指定為 "root/folder/year=2020",則除了檔案內的資料行之外,複製活動還會分別產生值為 "08" 和 "27" 的兩個資料行 month 和 day 。- 如果未指定分割區根路徑,則不會產生額外的資料行。 |
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 活動。
刪除活動屬性
若要了解屬性的詳細資料,請參閱刪除活動。
相關內容
如需複製活動支援作為來源和接收器的資料存放區清單,請參閱支援的資料存放區。