SQLite
用于连接 SQLite 数据库,并执行 INSERT 和 SELECT 查询,以在 ClickHouse 与 SQLite 之间交换数据。
创建数据库
引擎参数
db_path— SQLite 数据库文件路径。
数据类型支持
下表显示了当 ClickHouse 从 SQLite 自动推断 schema(表结构)时的默认类型映射:
| SQLite | ClickHouse |
|---|---|
| INTEGER | Int32 |
| REAL | Float32 |
| TEXT | String |
| TEXT | UUID |
| BLOB | String |
当使用 SQLite 表引擎 显式定义带有特定 ClickHouse 类型的表时,以下 ClickHouse 类型可以从 SQLite 的 TEXT 列中解析:
- Date、Date32
- DateTime、DateTime64
- UUID
- Enum8, Enum16
- Decimal32, Decimal64, Decimal128, Decimal256
- FixedString
- 所有整数类型(UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64)
- Float32, Float64
SQLite 具有动态类型,其类型访问函数会自动执行类型转换。例如,将一个 TEXT 列按整数读取时,如果文本无法解析为数字,将返回 0。这意味着,如果 ClickHouse 表中定义的类型与底层 SQLite 列的类型不同,值可能会被静默转换,而不是触发错误。
细节与建议
SQLite 将整个数据库(定义、表、索引以及数据本身)作为一个单一的跨平台文件存储在主机上。写入期间,SQLite 会锁定整个数据库文件,因此写操作是顺序执行的,而读操作可以并发处理。
SQLite 不需要服务管理(例如启动脚本)或基于 GRANT 和密码的访问控制。访问控制是通过为数据库文件本身设置文件系统权限来实现的。
使用示例
ClickHouse 中连接到 SQLite 的数据库:
显示表的内容:
将 ClickHouse 表中的数据插入 SQLite 表: