airflow.providers.microsoft.azure.hooks.data_lake¶
屬性¶
類¶
與 Azure Data Lake 的整合。 |
|
與 ADLS gen2 儲存賬戶互動。 |
模組內容¶
- class airflow.providers.microsoft.azure.hooks.data_lake.AzureDataLakeHook(azure_data_lake_conn_id=default_conn_name)[source]¶
基類:
airflow.hooks.base.BaseHook與 Azure Data Lake 的整合。
AzureDataLakeHook 透過與 WebHDFS 相容的 REST API 進行通訊。請確保存在型別為
azure_data_lake的 Airflow 連線。授權可以透過提供 *登入名* (=Client ID),*密碼* (=Client Secret),以及 extra 欄位 *tenant* (Tenant) 和 *account_name* (Account Name) 來完成。請參閱連線azure_data_lake_default以獲取示例。Client ID 和 secret 應作為使用者和密碼引數。Tenant 和 account name 應作為 extra 欄位,格式為
{"tenant": "<TENANT>", "account_name": "ACCOUNT_NAME"}。- 引數:
azure_data_lake_conn_id (str) – 引用 Azure Data Lake 連線。
- upload_file(local_path, remote_path, nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304, **kwargs)[source]¶
將檔案上傳到 Azure Data Lake。
- 引數:
local_path (str) – 本地路徑。可以是單個檔案、目錄(此時會遞迴上傳)或 glob 模式。不支援使用 ** 的遞迴 glob 模式。
remote_path (str) – 遠端上傳路徑;如果檔案較多,這是寫入時的根目錄。
nthreads (int) – 使用的執行緒數。如果為 None,則使用 CPU 核數。
overwrite (bool) – 是否強制覆蓋現有檔案/目錄。如果為 False 且遠端路徑為目錄,則無論是否有檔案會被覆蓋都會退出。如果為 True,則只覆蓋匹配的檔名。
buffersize (int) – int [2**22] 內部緩衝區的位元組數。此塊不能大於一個 chunk,也不能小於一個 block。
blocksize (int) – int [2**22] 一個塊的位元組數。在每個 chunk 中,我們為每個 API 呼叫寫入一個較小的塊。此塊不能大於一個 chunk。
- download_file(local_path, remote_path, nthreads=64, overwrite=True, buffersize=4194304, blocksize=4194304, **kwargs)[source]¶
從 Azure Blob Storage 下載檔案。
- 引數:
local_path (str) – 本地路徑。如果下載單個檔案,將寫入此特定檔案,除非它是一個現有目錄,此時會在其中建立一個檔案。如果下載多個檔案,這是寫入時的根目錄。將根據需要建立目錄。
remote_path (str) – 用於查詢遠端檔案的遠端路徑/globstring。不支援使用 ** 的遞迴 glob 模式。
nthreads (int) – 使用的執行緒數。如果為 None,則使用 CPU 核數。
overwrite (bool) – 是否強制覆蓋現有檔案/目錄。如果為 False 且遠端路徑為目錄,則無論是否有檔案會被覆蓋都會退出。如果為 True,則只覆蓋匹配的檔名。
buffersize (int) – int [2**22] 內部緩衝區的位元組數。此塊不能大於一個 chunk,也不能小於一個 block。
blocksize (int) – int [2**22] 一個塊的位元組數。在每個 chunk 中,我們為每個 API 呼叫寫入一個較小的塊。此塊不能大於一個 chunk。
- class airflow.providers.microsoft.azure.hooks.data_lake.AzureDataLakeStorageV2Hook(adls_conn_id, public_read=False)[source]¶
基類:
airflow.hooks.base.BaseHook與 ADLS gen2 儲存賬戶互動。
它主要用於在具有分層名稱空間的儲存賬戶中建立和管理目錄和檔案。使用 Adls_v2 連線詳情建立 DataLakeServiceClient 物件。
由於 Wasb 被標記為舊版且 ADLS1 已退役,因此最好實現 ADLS gen2 hook 用於與儲存賬戶互動。
另請參閱
https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-directory-file-acl-python
- property service_client: azure.storage.filedatalake.DataLakeServiceClient[source]¶
返回 DataLakeServiceClient 物件(已快取)。
- create_file_system(file_system_name)[source]¶
在指定賬戶下建立新的檔案系統。
容器充當檔案系統。
如果同名檔案系統已存在,將引發 ResourceExistsError。此方法返回一個用於與新建立的檔案系統互動的客戶端。
- get_file_system(file_system)[source]¶
獲取一個用於與指定檔案系統互動的客戶端。
- 引數:
file_system (azure.storage.filedatalake.FileSystemProperties | str) – 這可以是檔案系統的名稱或 FileSystemProperties 的例項。
- upload_file(file_system_name, file_name, file_path, overwrite=False, **kwargs)[source]¶
在檔案系統下建立檔案並上傳資料。
- upload_file_to_directory(file_system_name, directory_name, file_name, file_path, overwrite=False, **kwargs)[source]¶
將資料上傳到檔案。
- delete_file_system(file_system_name)[source]¶
刪除檔案系統。
- 引數:
file_system_name (azure.storage.filedatalake.FileSystemProperties | str) – 檔案系統的名稱或 FileSystemProperties 的例項。