使用 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:
- 複製資料工具
- Azure 入口網站
- The .NET SDK
- The Python SDK
- Azure PowerShell
- The REST API
- Azure Resource Manager 範本
使用 UI 建立 Oracle Cloud 儲存體的連結服務
使用下列步驟,在 Azure 入口網站 UI 中建立 Oracle Cloud 儲存體的連結服務。
流覽至 Azure Data Factory 或 Synapse 工作區中的 [管理] 索引標籤,然後選取 [連結服務],然後按一下 [新增]:
搜尋 Oracle,然後選取 Oracle Cloud 儲存體 連接器。
設定服務詳細資料、測試連線,並建立新的連結服務。
連線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 活動 。
刪除活動屬性
若要瞭解屬性的詳細資料,請參閱 刪除活動 。
相關內容
如需複製活動支援作為來源和接收的資料存放區清單,請參閱 支援的資料存放區 。