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 的实例。