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

azureBlobStorage 表函数

提供类似表的接口以在 Azure Blob Storage 中选择/插入文件。该表函数类似于 s3 函数

语法

参数

  • connection_string|storage_account_url — connection_string 包括账户名称和密钥 (创建连接字符串),或者您也可以在此提供存储帐户 URL,并将账户名称和账户密钥作为单独的参数传递(参见参数 account_name 和 account_key)
  • container_name - 容器名称
  • blobpath - 文件路径。在只读模式下支持以下通配符:*, **, ?, {abc,def}{N..M},其中 NM — 数字,'abc''def' — 字符串。
  • account_name - 如果使用了 storage_account_url,则可以在此指定账户名称
  • account_key - 如果使用了 storage_account_url,则可以在此指定账户密钥
  • format — 文件的 格式
  • compression — 支持的值:none, gzip/gz, brotli/br, xz/LZMA, zstd/zst。默认情况下,它将通过文件扩展名自动检测压缩。(与设置为 auto 相同)。
  • structure — 表的结构。格式为 'column1_name column1_type, column2_name column2_type, ...'

返回值

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

示例

类似于 AzureBlobStorage 表引擎,用户可以使用 Azurite 模拟器进行本地 Azure 存储开发。更多细节 在此。下面我们假设 Azurite 可用,其主机名为 azurite1

使用以下方式将数据写入 azure blob storage:

然后可以使用以下方式读取数据:

或者使用 connection_string

虚拟列

  • _path — 文件路径。类型:LowCardinality(String)
  • _file — 文件名称。类型:LowCardinality(String)
  • _size — 文件大小(以字节为单位)。类型:Nullable(UInt64)。如果文件大小未知,值为 NULL
  • _time — 文件的最后修改时间。类型:Nullable(DateTime)。如果时间未知,值为 NULL

参见

Hive 风格分区

当设置 use_hive_partitioning 为 1 时,ClickHouse 将在路径中检测 Hive 风格的分区(/name=value/),并允许在查询中将分区列用作虚拟列。这些虚拟列将与分区路径中的名称相同,但以 _ 开头。

示例

使用虚拟列,创建了 Hive 风格的分区

使用共享访问签名 (SAS)

共享访问签名 (SAS) 是一种 URI,允许对 Azure 存储容器或文件进行有限制的访问。使用它可以提供时间限制的存储帐户资源访问,而无需共享您的存储帐户密钥。更多细节 在此

azureBlobStorage 函数支持共享访问签名 (SAS)。

一个 Blob SAS 令牌 包含身份验证请求所需的所有信息,包括目标 blob、权限和有效期。要构建 blob URL,请将 SAS 令牌附加到 blob 服务端点。例如,如果端点是 https://clickhousedocstest.blob.core.windows.net/,则请求变为:

或者,用户可以使用生成的 Blob SAS URL