ClickHouse/docs/zh/engines/database-engines/sqlite.md
2022-08-26 15:07:59 -04:00

2.4 KiB
Raw Blame History

slug sidebar_position sidebar_label
/zh/engines/database-engines/sqlite 32 SQLite

SQLite

允许连接到SQLite数据库并支持ClickHouse和SQLite交换数据 执行 INSERTSELECT 查询。

创建一个数据库

    CREATE DATABASE sqlite_database 
    ENGINE = SQLite('db_path')

引擎参数

  • db_path — SQLite 数据库文件的路径.

数据类型的支持

SQLite ClickHouse
INTEGER Int32
REAL Float32
TEXT String
BLOB String

技术细节和建议

SQLite将整个数据库(定义、表、索引和数据本身)存储为主机上的单个跨平台文件。在写入过程中SQLite会锁定整个数据库文件因此写入操作是顺序执行的。读操作可以是多任务的。 SQLite不需要服务管理(如启动脚本)或基于GRANT和密码的访问控制。访问控制是通过授予数据库文件本身的文件系统权限来处理的。

使用示例

数据库在ClickHouse连接到SQLite:

CREATE DATABASE sqlite_db ENGINE = SQLite('sqlite.db');
SHOW TABLES FROM sqlite_db;
┌──name───┐
│ table1  │
│ table2  │  
└─────────┘

展示数据表中的内容:

SELECT * FROM sqlite_db.table1;
┌─col1──┬─col2─┐
│ line1 │    1 │
│ line2 │    2 │
│ line3 │    3 │
└───────┴──────┘

从ClickHouse表插入数据到SQLite表:

CREATE TABLE clickhouse_table(`col1` String,`col2` Int16) ENGINE = MergeTree() ORDER BY col2;
INSERT INTO clickhouse_table VALUES ('text',10);
INSERT INTO sqlite_db.table1 SELECT * FROM clickhouse_table;
SELECT * FROM sqlite_db.table1;
┌─col1──┬─col2─┐
│ line1 │    1 │
│ line2 │    2 │
│ line3 │    3 │
│ text  │   10 │
└───────┴──────┘