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

url 表函数

url 函数从给定的 URL 创建一个具有指定 formatstructure 的表。

url 函数可以在数据的 SELECTINSERT 查询中使用,数据来源于 URL 表。

语法

参数

参数描述
URLHTTP 或 HTTPS 服务器地址,能够接受 GETPOST 请求(分别对应 SELECTINSERT 查询)。类型: String
format数据的 Format。类型: String
structure表结构,格式为 'UserID UInt64, Name String'。确定列名称和类型。类型: String
headers'headers('key1'='value1', 'key2'='value2')' 格式的头信息。可以为 HTTP 调用设置头信息。

返回值

一个具有指定格式和结构的表,并且数据来自定义的 URL

示例

从 HTTP 服务器获取包含 StringUInt32 类型列的表的前 3 行,该服务器以 CSV 格式响应。

将数据从 URL 插入到表中:

URL 中的通配符

大括号 { } 中的模式用于生成一组分片或指定故障转移地址。支持的模式类型和示例见 remote 函数的描述。 模式中的字符 | 用于指定故障转移地址。它们按模式中列出的顺序进行迭代。生成的地址数量受到 glob_expansion_max_elements 设置的限制。

虚拟列

  • _pathURL 的路径。类型: LowCardinality(String)
  • _fileURL 的资源名称。类型: LowCardinality(String)
  • _size — 资源的字节大小。类型: Nullable(UInt64)。如果大小未知,值为 NULL
  • _time — 文件的最后修改时间。类型: Nullable(DateTime)。如果时间未知,值为 NULL
  • _headers - HTTP 响应头。类型: Map(LowCardinality(String), LowCardinality(String))

Hive 风格分区

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

示例

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

存储设置

权限

url 函数需要 CREATE TEMPORARY TABLE 权限。因此,无法用于具有 readonly = 1 设置的用户。至少需要 readonly = 2。