Azure Data Lake Storage

Azure Data Lake Storage 連接器可讓您連線至 Azure Data Lake Storage,並使用 SQL 擷取及更新 Azure Data Lake Storage 資料。

事前準備

使用 Azure Data Lake Storage 連接器前,請先完成下列工作:

  • 在 Google Cloud 專案中:
    • 確認已設定網路連線。如要瞭解網路模式,請參閱「網路連線」。
    • roles/connectors.admin IAM 角色授予設定連線器的使用者。
    • 將下列 IAM 角色授予要用於連接器的服務帳戶:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      服務帳戶是特殊的 Google 帳戶類型,主要用於代表需要驗證且必須取得授權才能存取 Google API 資料的非人類使用者。如果您沒有服務帳戶,請務必建立服務帳戶。連接器和服務帳戶必須屬於同一個專案。詳情請參閱「建立服務帳戶」。

    • 啟用下列服務:
      • secretmanager.googleapis.com (Secret Manager API)
      • connectors.googleapis.com (Connectors API)

      如要瞭解如何啟用服務,請參閱「啟用服務」。

    如果專案先前未啟用這些服務或權限,系統會在設定連結器時提示您啟用。

  • 如要瞭解如何建立 Azure 儲存體帳戶,請參閱「建立儲存體帳戶」。如要瞭解如何在 Azure 中建立容器,請參閱「建立容器」。如要瞭解如何在 Azure 中建立目錄,請參閱「建立目錄」。

設定連接器

連線專屬於資料來源。也就是說,如果您有多個資料來源,則必須為每個資料來源建立個別的連線。如要建立連線,請按照下列步驟操作:

  1. Cloud 控制台中,前往「Integration Connectors」>「Connections」頁面,然後選取或建立 Google Cloud 專案。

    前往「Connections」(連線) 頁面

  2. 按一下「+ 建立新連線」,開啟「建立連線」頁面。
  3. 在「位置」部分中,選擇連線位置。
    1. 區域:從下拉式清單中選取位置。

      連接器支援的地區包括:

      如需所有支援的地區清單,請參閱「位置」一文。

    2. 點選「下一步」
  4. 在「連線詳細資料」部分,完成下列步驟:
    1. 連接器:從可用連接器的下拉式清單中選取「Azure Data Lake Storage」
    2. 連接器版本:從可用版本的下拉式清單中選取連接器版本。
    3. 在「連線名稱」欄位中,輸入連線執行個體的名稱。

      連線名稱必須符合下列條件:

      • 連線名稱可使用英文字母、數字或連字號。
      • 字母必須為小寫。
      • 連線名稱開頭須為英文字母,結尾則須為英文字母或數字。
      • 連結名稱不得超過 49 個字元。
    4. 視需要輸入連線執行個體的「Description」(說明)
    5. 或者,可啟用 Cloud Logging,然後選取記錄層級。記錄層級預設為 Error
    6. 服務帳戶:選取具備必要角色的服務帳戶。
    7. 視需要設定「連線節點設定」

      • 節點數量下限:輸入連線節點數量下限。
      • 節點數量上限:輸入連線節點數量上限。

      節點是用來處理交易的連線單位 (或備用資源)。連線處理的交易量越多,就需要越多節點;反之,處理的交易量越少,需要的節點就越少。如要瞭解節點對連線器定價的影響,請參閱「 連線節點定價」。如未輸入任何值,系統預設會將節點下限設為 2 (提高可用性),節點上限則設為 50。

    8. 帳戶:這項屬性會指定 Azure Data Lake Storage 帳戶的名稱。
    9. 目錄:這個屬性會指定列出檔案和資料夾的根路徑。
    10. 檔案系統:這個屬性會指定第 2 代儲存空間帳戶中使用的檔案系統名稱。例如 Azure Blob 容器的名稱。
    11. 區塊大小:上傳大型檔案時使用的區塊大小 (以 MB 為單位)。
    12. 包含子目錄:選擇是否要在 ADLSGen2 架構的「資源」檢視畫面中列出子目錄路徑。
    13. (選用) 按一下「+ 新增標籤」,以鍵/值組合的形式為連線新增標籤。
    14. 點選「下一步」
  5. 在「Authentication」(驗證) 部分,輸入驗證詳細資料。
    1. 選取「驗證類型」並輸入相關詳細資料。

      Azure Data Lake Storage 連線支援下列驗證類型:

      • 共用存取簽章
      • 帳戶存取金鑰
      • JWT 驗證
    2. 如要瞭解如何設定這些驗證類型,請參閱「設定驗證」。

    3. 點選「下一步」
  6. 檢查:檢查連線和驗證詳細資料。
  7. 點選「建立」

設定驗證機制

根據要使用的驗證方式輸入詳細資料。

  • 共用存取簽章
    • 共用存取簽章:包含共用存取簽章的 Secret Manager 密鑰。
  • 帳戶存取金鑰
    • 帳戶存取金鑰:內含帳戶存取金鑰的 Secret Manager 密鑰。
  • JWT 驗證
    • 用戶端 ID:用於要求存取權杖的用戶端 ID。
    • 私密金鑰:Secret Manager 密鑰,內含 PEM 格式的私密金鑰檔案內容。私密金鑰必須與公開金鑰/憑證相符。
    • 私密金鑰密碼:Secret Manager 密鑰,內含私密金鑰檔案的密碼 (同義詞)。

連線設定範例

本節列出建立 Azure Data Lake Storage 連線時,您設定的各個欄位範例值。

共用存取簽章連線類型

Fieldname 詳細資料
位置 us-central1
連接器 azuredatalakestorage
連接器版本 1
連線名稱 adls-gen2-conn-public
啟用 Cloud Logging
服務帳戶 account@my-project.iam.gserviceaccount.com
帳戶 google-cloud-dslgen3
目錄 目錄
檔案系統 容器
包含子目錄
節點數量下限 2
節點數量上限 50
共用存取簽章 SHARED_ACCESS_SIGNATURE
Secret 版本 1

帳戶存取金鑰連線類型

Fieldname 詳細資料
位置 us-central1
連接器 azuredatalakestorage
連接器版本 1
連線名稱 azure-data-lake-conn
啟用 Cloud Logging
服務帳戶 account@my-project.iam.gserviceaccount.com
帳戶 google-cloud-dslgen3
目錄 北美洲
檔案系統 容器
包含子目錄
節點數量下限 2
節點數量上限 50
帳戶存取金鑰 ACCOUNT_ACCESS_KEY
Secret 版本 1

JWT 驗證連線類型

Fieldname 詳細資料
位置 us-central1
連接器 azuredatalakestorage
連接器版本 1
連線名稱 adls-gen2-jwt-conn
啟用 Cloud Logging
服務帳戶 account@my-project.iam.gserviceaccount.com
帳戶 your-adls-account-name
目錄 北美洲
檔案系統 data-lake-container
包含子目錄
節點數量下限 2
節點數量上限 50
驗證類型 JWT 驗證
用戶端 ID CLIENT_ID
私密金鑰 PRIVATE_KEY_SECRET
私密金鑰密碼 PRIVATE_KEY_PASSWORD_SECRET
密鑰版本 (適用於私密金鑰) 1
密鑰版本 (適用於私密金鑰密碼) 1

實體、作業和動作

所有整合連接器都會為所連應用程式的物件提供抽象層。您只能透過這個抽象化程序存取應用程式的物件。抽象化會以實體、作業和動作的形式呈現。

  • 實體: 實體可以視為已連結應用程式或服務中的物件,或是屬性集合。實體的定義因連接器而異。舉例來說,在資料庫連接器中,資料表是實體;在檔案伺服器連接器中,資料夾是實體;在訊息系統連接器中,佇列是實體。

    不過,連接器可能不支援或沒有任何實體,在這種情況下,Entities 清單會是空白。

  • 作業: 作業是指您可以在實體上執行的活動。您可以對實體執行下列任一操作:

    從可用清單中選取實體,系統會產生該實體可用的作業清單。如需作業的詳細說明,請參閱 Connectors 工作的實體作業。 不過,如果連接器不支援任何實體作業,系統就不會在 Operations 清單中列出這些不支援的作業。

  • 動作: 動作是透過連接器介面提供給整合的第一類函式。動作可讓您變更一或多個實體,且因連接器而異。一般來說,動作會有一些輸入參數和輸出參數。不過,連接器可能不支援任何動作,此時 Actions 清單會是空白。

系統限制

Azure Data Lake Storage 連接器每秒可處理 5 筆交易,每個節點也是如此,且會節流任何超出此限制的交易。根據預設,Integration Connectors 會為連線分配 2 個節點 (提高可用性)。

如要瞭解 Integration Connectors 適用的限制,請參閱「限制」一文。

動作

本節列出連接器支援的動作。如要瞭解如何設定動作,請參閱「動作範例」。

DownloadFile 動作

這項操作可讓您從目錄或容器下載特定 Blob 的內容。

DownloadFile 動作的輸入參數

參數名稱 資料類型 必填 說明
路徑 字串 要下載的檔案路徑 (包括檔案名稱)。例如:
  • FILE_NAME
  • dir1/FILE_NAME
  • dir1/dir2/FILE_NAME
HasBytes 布林值 是否要以位元組 (Base64 格式) 下載內容。
  • 如要下載非文字檔案 (例如 .pdf.xls.docx),您必須將 HasBytes 設為 true
  • 如要下載文字檔,您可以將 HasBytes 設為 truefalse。如果將值設為 true,系統會以位元組 (Base64 格式) 下載文字內容。
這個參數的預設值為 false

DownloadFile 動作的輸出參數

如果動作成功,系統會傳回檔案或 Blob 的內容。

如要瞭解如何設定 DownloadFile 動作,請參閱動作範例

CreateFile 動作

這項動作可讓您在容器或目錄中建立 Blob 或檔案。

CreateFile 動作的輸入參數

參數名稱 資料類型 必填 說明
路徑 字串 要建立的檔案路徑。

如要瞭解如何設定 CreateFile 動作,請參閱「動作範例」。

CopyFile 動作

這項動作可讓您將檔案或 Blob 的內容複製到相同容器或目錄中的另一個檔案或 Blob。

CopyFile 動作的輸入參數

參數名稱 資料類型 必填 說明
來源路徑 字串 要複製的檔案路徑。
DestinationPath 字串 要複製檔案的路徑。

如要瞭解如何設定 CopyFile 動作,請參閱動作範例

DeleteObject 動作

這項動作可讓您刪除檔案或 Blob。

DeleteObject 動作的輸入參數

參數名稱 資料類型 必填 說明
遞迴 字串 將此項設為 true,即可刪除資料夾的所有內容,包括任何子資料夾。
路徑 字串 要刪除的檔案或資料夾路徑。
DeleteType 字串
  • 將此參數設為 FILESANDFOLDERS,即可刪除 Path 參數中指定的檔案或資料夾。
  • 將此參數設為 FILES,即可只刪除 Path 參數中指定資料夾內的檔案。

如要瞭解如何設定 DeleteObject 動作,請參閱動作範例

LeaseBlob 動作

這個動作可讓您建立及管理 Blob 的鎖定。

LeaseBlob 動作的輸入參數

參數名稱 資料類型 必填 說明
路徑 字串 檔案路徑。
LeaseAction 字串 指定要執行的租約動作。
LeaseDuration 整數 指定租約期限。

如要瞭解如何設定 LeaseBlob 動作,請參閱「動作範例」。

UploadFile 動作

這項動作可讓使用者將內容上傳至特定 Blob 或容器。

UploadFile 動作的輸入參數

參數名稱 資料類型 必填 說明
路徑 字串 要上傳的檔案路徑。
HasBytes 布林值 是否要以位元組形式上傳內容。
內容 字串 要上傳的內容。

如要瞭解如何設定 UploadFile 動作,請參閱「動作範例」。

RenameObject 動作

這項操作可讓你重新命名檔案或資料夾。

RenameObject 動作的輸入參數

參數名稱 資料類型 必填 說明
路徑 字串 要重新命名的路徑。
RenameTo 字串 檔案或資料夾的新名稱。

如要瞭解如何設定 RenameObject 動作,請參閱「動作範例」。

動作範例

範例 - 下載檔案

這個範例會下載二進位檔案。

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 DownloadFile 動作,然後按一下「完成」
  3. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "Path": "testdirectory1/test1.pdf",
    "HasBytes": true
    }
  4. 如果動作成功,DownloadFile 工作項目的 connectorOutputPayload 回應參數會包含類似下列內容的值:

    [{
    "Success": "True",
    "ContentBytes": "UEsDBBQABgAIAAAAIQCj77sdZQEAAFIFAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooA"
    }]

範例 - 上傳檔案

這個範例會將內容上傳為 Blob。

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 UploadFile 動作,然後按一下「完成」
  3. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "Path": "testblob4",
    "HasBytes": true,
    "Content": "abcdef\nabcdef"
    }
  4. 如果動作成功,UploadFile 工作項目的 connectorOutputPayload 回應參數會包含類似下列內容的值:

    [{
    "Success": "true"
    }]

範例 - 建立檔案

這個範例會在指定目錄中建立檔案。

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 CreateFile 動作,然後按一下「完成」
  3. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "path": "testdirectory1/testblob"
    }
  4. 如果動作成功,CreateFile 工作項目的 connectorOutputPayload 回應參數會包含類似下列內容的值:

    [{
    "Success": "true"
    }]

範例 - 複製檔案

這個範例會將檔案從一個位置複製到另一個位置。

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 CopyFile 動作,然後按一下「完成」
  3. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "SourcePath": "testdirectory1/testblob",
    "DestinationPath": "testblob"
    }
  4. 如果動作成功,CopyFile 工作項目的 connectorOutputPayload 回應參數會包含類似下列內容的值:

    [{
    "Success": "true"
    }]

範例 - 刪除 Blob

這個範例會刪除指定的 Blob。

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 DeleteObject 動作,然後按一下「完成」
  3. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "path": "testdirectory1/testblob"
    }
  4. 如果動作成功,DeleteObject 工作項目的 connectorOutputPayload 回應參數會包含類似下列內容的值:

    [{
    "Success": "true"
    }]

範例 - 租用 Blob

這個範例會租用指定的 Blob。

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 LeaseBlob 動作,然後按一下「完成」
  3. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "Path": "testblob2",
    "LeaseAction": "Acquire",
    "LeaseDuration": 60.0
    }
  4. 如果動作成功,LeaseBlob 工作的 connectorOutputPayload 回應參數值會類似於下列內容:

    [{
    "LeaseId": "7aae9ca2-f015-41b6-9bdf-5fd3401fc493",
    "Success": "true"
    }]

範例 - 重新命名 Blob

這個範例會重新命名 Blob。

  1. 在「Configure connector task」對話方塊中,按一下 Actions
  2. 選取 RenameObject 動作,然後按一下「完成」
  3. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "Path": "testblob",
    "RenameTo": "testblob6"
    }
  4. 如果動作成功,RenameObject 工作項目的 connectorOutputPayload 回應參數會包含類似下列內容的值:

    [{
    "Success": true
    }]

實體作業範例

本節說明如何使用這個連接器執行部分實體作業。

範例 - 列出所有記錄

這個範例會列出 Resource 實體中的所有記錄。

  1. 在「Configure connector task」對話方塊中,按一下 Entities
  2. Entity 清單中選取 Resource
  3. 選取「List」作業,然後按一下「完成」
  4. (選用) 在「連結器」工作的「工作輸入」部分,您可以指定篩選子句,篩選結果集。 請一律在單引號 (') 內指定篩選子句值。

範例 - 取得記錄

這個範例會從 Resource 實體取得具有指定 ID 的記錄。

  1. 在「Configure connector task」對話方塊中,按一下 Entities
  2. Entity 清單中選取 Resource
  3. 選取「Get」作業,然後按一下「完成」
  4. 在「連線器」工作的「工作輸入」部分,按一下「EntityId」,然後在「預設值」欄位中輸入 testdirectory1/testblob1

    其中 testdirectory1/testblob1Resource 實體中的專屬記錄 ID。

在整合中,使用 Azure Data Lake Storage 連線

建立連線後,Apigee Integration 和 Application Integration 都會提供該連線。您可以在整合中透過「連接器」工作使用連線。

  • 如要瞭解如何在 Apigee Integration 中建立及使用「連線器」工作,請參閱「連線器工作」。
  • 如要瞭解如何在 Application Integration 中建立及使用「連線器」工作,請參閱「連線器工作」。

向 Google Cloud 社群尋求協助

如要發布問題及討論這個連接器,請前往 Cloud 論壇的 Google Cloud 社群。

後續步驟