メインコンテンツへスキップ
メインコンテンツへスキップ

SQLite

SQLite データベースに接続し、INSERT および SELECT クエリを実行して、ClickHouse と SQLite 間でデータを交換できるようにします。

データベースの作成

    CREATE DATABASE sqlite_database
    ENGINE = SQLite('db_path')

エンジンパラメータ

  • db_path — SQLite データベースファイルのパス。

データ型のサポート

SQLiteClickHouse
INTEGERInt32
REALFloat32
TEXTString
BLOBString

詳細と推奨事項

SQLite は、データベース全体(定義、テーブル、インデックス、および実データ)をホストマシン上の 1 つのクロスプラットフォームファイルとして保存します。書き込み中、SQLite はデータベースファイル全体をロックするため、書き込み操作は逐次的に実行されます。一方で、読み取り操作は並行して実行できます。 SQLite には、サービスとしての管理(起動スクリプトなど)や、GRANT やパスワードに基づくアクセス制御は必要ありません。アクセス制御は、データベースファイル自体に付与されたファイルシステムのパーミッションによって行われます。

使用例

SQLite に接続された ClickHouse のデータベース:

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 │
└───────┴──────┘