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 (連接器 API)

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

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

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

設定連接器

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

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

    前往「連線」頁面

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

      支援的連接器地區包括:

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

    2. 點按「Next」
  4. 在「連線詳細資料」部分中,完成下列操作:
    1. 連接器:從可用連接器的下拉式清單中選取「Azure Data Lake Storage」
    2. 連接器版本:從可用版本的下拉式清單中選取連接器版本。
    3. 在「Connection Name」欄位中,輸入連線例項的名稱。

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

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

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

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

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

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

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

    3. 點按「Next」
  6. 查看:查看連線和驗證詳細資料。
  7. 按一下 [建立]。

連線設定範例

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

共用存取簽章連線類型

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

帳戶存取金鑰連線類型

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

設定驗證機制

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

  • 共用存取權簽名

    如果您想使用匿名登入功能,請選取「不適用」

    • 共用存取簽章:包含共用存取簽章的 Secret Manager 密鑰。
  • 帳戶存取權金鑰

    如果您想使用匿名登入功能,請選取「不適用」

    • 帳戶存取金鑰:包含帳戶存取金鑰的 Secret Manager 密鑰。

實體、作業和動作

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

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

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

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

    從可用清單中選取實體後,系統會產生可用於該實體的作業清單。如需作業的詳細說明,請參閱連接器工作中的實體作業。不過,如果連接器不支援任何實體作業,則 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 動作,然後按一下「Done」
  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 動作,然後按一下「Done」
  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 動作,然後按一下「Done」
  3. 在「Connectors」任務的「Task Input」部分,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似以下的值:
    {
    "path": "testdirectory1/testblob"
    }
  4. 如果動作成功,CreateFile 工作項的 connectorOutputPayload 回應參數會包含類似以下的值:

    [{
    "Success": "true"
    }]

範例:複製檔案

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

  1. Configure connector task 對話方塊中,按一下 Actions
  2. 選取 CopyFile 動作,然後按一下「Done」
  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 動作,然後按一下「Done」
  3. 在「Connectors」任務的「Task Input」部分,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似以下的值:
    {
    "path": "testdirectory1/testblob"
    }
  4. 如果動作成功,DeleteObject 工作項的 connectorOutputPayload 回應參數會包含類似以下的值:

    [{
    "Success": "true"
    }]

範例:租用 blob

本範例會租用指定的 Blob。

  1. Configure connector task 對話方塊中,按一下 Actions
  2. 選取 LeaseBlob 動作,然後按一下「Done」
  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 動作,然後按一下「Done」
  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 作業,然後按一下「Done」
  4. 您也可以在 Connector 工作中的「Task Input」部分,指定篩選子句來篩選結果集。請一律在單引號 (') 內指定篩選器子句值。

範例 - 取得記錄

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

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

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

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

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

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

向 Google Cloud 社群尋求協助

如有任何問題,歡迎在 雲端論壇中發問,並與 Google Cloud 社群成員討論這個連接器。

後續步驟