跳到主要内容
跳到主要内容

azureBlobStorageCluster 表函数

允许在指定集群中的多个节点上并行处理来自 Azure Blob Storage 的文件。在发起节点上,它会与集群中的所有节点建立连接,展开 S3 文件路径中的星号通配符,并动态分发各个文件。在工作节点上,它向发起节点请求下一个要处理的任务并对其进行处理。该过程会重复进行,直到所有任务处理完毕。 此表函数类似于 s3Cluster 函数

语法

azureBlobStorageCluster(cluster_name, connection_string|storage_account_url, container_name, blobpath, [account_name, account_key, format, compression, structure])

参数

ArgumentDescription
cluster_name用于构建远程和本地服务器地址集合以及连接参数的集群名称。
connection_stringstorage_account_urlconnection_string 包含帐户名称和密钥(创建连接字符串),也可以仅在此处提供存储帐户 URL,并通过单独的参数提供帐户名称和帐户密钥(参见参数 account_nameaccount_key)。
container_name容器名称
blobpath文件路径。在只读模式下支持以下通配符:***?{abc,def}{N..M},其中 NM 为数字,'abc''def' 为字符串。
account_name如果使用 storage_account_url,则可以在此处指定帐户名称。
account_key如果使用 storage_account_url,则可以在此处指定帐户密钥。
format文件的格式
compression支持的取值:nonegzip/gzbrotli/brxz/LZMAzstd/zst。默认情况下,会根据文件扩展名自动检测压缩格式(等同于设置为 auto)。
structure表结构。格式为 'column1_name column1_type, column2_name column2_type, ...'

返回值

具有指定结构的表,用于在指定文件中读取或写入数据。

示例

AzureBlobStorage 表引擎类似,用户可以使用 Azurite 模拟器在本地进行 Azure 存储开发。更多详情请参见此处。下面我们假设 Azurite 可通过主机名 azurite1 访问。

cluster_simple 集群的所有节点上,对文件 test_cluster_*.csv 执行计数查询:

SELECT count(*) FROM azureBlobStorageCluster(
        'cluster_simple', 'http://azurite1:10000/devstoreaccount1', 'testcontainer', 'test_cluster_count.csv', 'devstoreaccount1',
        'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==', 'CSV',
        'auto', 'key UInt64')

使用共享访问签名 (SAS)

示例请参见 azureBlobStorage