url 表函数
url
函数从给定的 URL
创建一个具有指定 format
和 structure
的表。
url
函数可以在 URL 表上的 SELECT
和 INSERT
查询中使用。
语法
参数
URL
— 可接受GET
或POST
请求的 HTTP 或 HTTPS 服务器地址(对应于SELECT
或INSERT
查询)。类型: String。format
— 数据的 Format。类型: String。structure
— 表结构,格式为'UserID UInt64, Name String'
。确定列名和类型。类型: String。headers
- 以'headers('key1'='value1', 'key2'='value2')'
格式的头部。可以为 HTTP 调用设置头部。
返回值
一个具有指定格式和结构的表,同时包含来自定义 URL
的数据。
示例
获取来自 HTTP 服务器的包含 String
和 UInt32 类型列的表的前 3 行,该服务器以 CSV 格式响应。
从 URL
插入数据到表中:
URL 中的 glob 模式
在大括号 { }
中的模式用于生成一组分片或指定故障转移地址。支持的模式类型和示例请参见 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))
。
Hive 风格的分区
当 use_hive_partitioning
设置为 1 时,ClickHouse 将检测路径中的 Hive 风格分区(/name=value/
),并允许在查询中将分区列用作虚拟列。这些虚拟列将具有与分区路径中相同的名称,但以 _
开头。
示例
使用使用 Hive 风格分区创建的虚拟列
存储设置
- engine_url_skip_empty_files - 允许在读取时跳过空文件。默认情况下禁用。
- enable_url_encoding - 允许启用/禁用 uri 路径的解码/编码。默认情况下启用。
另见