创建表
db_path— SQLite 数据库文件的路径。table— SQLite 数据库中的表名,或原样传递给 SQLite 的查询 (请参见传递查询而非表名) 。
传入查询而非表名
table 参数不一定非得是表名,也可以是一个原样传递给 SQLite 的 SELECT 查询。表的结构将根据查询结果自动推断。该查询既可以写成子查询,也可以封装在 query 函数中:
INSERT。sqlite 表函数也支持相同的语法。
子查询形式
(SELECT ...) 会先由 ClickHouse 解析并重新序列化,再发送给 SQLite。因此,它必须是有效的 ClickHouse SQL。若要传递 ClickHouse 无法解析的 SQLite 特有语法,请使用 query('...') 形式,其文本会原样发送给 SQLite。周围 ClickHouse 查询中的任何外层 WHERE、LIMIT、聚合等都不会下推到传入的查询中——而是会在拉取完整查询结果后由 ClickHouse 应用。若要限制从 SQLite 读取的数据,请将过滤条件放在传入的查询内部。启用 external_table_strict_query = 1 时,无法下推的外层过滤条件会直接报错拒绝,而不是在本地应用。数据类型支持
- Date, Date32
- DateTime, DateTime64
- UUID
- Enum8, Enum16
- Decimal32, Decimal64, Decimal128, Decimal256
- FixedString
- 所有整数类型 (UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64)
- Float32, Float64