url 表函数
url
函数根据给定的 format
和 structure
从 URL
创建一个表。
url
函数可以在 URL 表的数据的 SELECT
和 INSERT
查询中使用。
语法
参数
参数 | 描述 |
---|---|
URL | 单引号括起来的 HTTP 或 HTTPS 服务器地址,可以接受 GET 或 POST 请求(分别用于 SELECT 或 INSERT 查询)。类型: String。 |
format | 数据的 格式。类型: String。 |
structure | 表结构,格式为 'UserID UInt64, Name String' 。确定列名和类型。类型: String。 |
headers | 以 'headers('key1'='value1', 'key2'='value2')' 格式提供的头部信息。可以为 HTTP 请求设置头部。 |
返回值
一个具有指定格式和结构,并包含来自定义 URL
数据的表。
示例
获取一个包含 String
类型和 UInt32 类型列的表的前 3 行,该表来自以 CSV 格式响应的 HTTP 服务器。
从 URL
向表中插入数据:
URL 中的通配符
大括号 { }
中的模式用于生成一组分片或指定故障转移地址。支持的模式类型和示例请参见 remote 函数的描述。
模式中的字符 |
用于指定故障转移地址。它们按照在模式中列出的顺序进行迭代。生成的地址数量由 glob_expansion_max_elements 设置限制。
虚拟列
_path
—URL
的路径。类型:LowCardinality(String)
。_file
—URL
的资源名称。类型:LowCardinality(String)
。_size
— 资源的字节大小。类型:Nullable(UInt64)
。如果大小未知,则值为NULL
。_time
— 文件的最后修改时间。类型:Nullable(DateTime)
。如果时间未知,则值为NULL
。_headers
- HTTP 响应头。类型:Map(LowCardinality(String), LowCardinality(String))
。
use_hive_partitioning 设置
当设置 use_hive_partitioning
为 1 时,ClickHouse 将在路径中检测到 Hive 风格的分区(/name=value/
),并允许在查询中将分区列用作虚拟列。这些虚拟列将具有与分区路径中相同的名称,但以 _
开头。
示例
使用 Hive 风格分区创建的虚拟列
存储设置
- engine_url_skip_empty_files - 允许在读取时跳过空文件。默认为禁用。
- enable_url_encoding - 允许启用/禁用 URI 路径的解码/编码。默认为启用。
权限
url
函数需要 CREATE TEMPORARY TABLE
权限。因此,它将无法在 readonly = 1 设置的用户中使用。至少需要 readonly = 2。