Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

SQLite テーブルエンジン

ClickHouse Cloud ではサポートされていません

このエンジンでは、SQLite との間でデータをインポートおよびエクスポートできるほか、ClickHouse から SQLite のテーブルに対して直接クエリを実行できます。

テーブルの作成

    CREATE TABLE [IF NOT EXISTS] [db.]table_name
    (
        name1 [type1],
        name2 [type2], ...
    ) ENGINE = SQLite('db_path', 'table')

エンジンパラメータ

  • db_path — データベースを含む SQLite ファイルへのパス。
  • table — SQLite データベース内のテーブル名、またはそのまま SQLite に渡されるクエリ (テーブル名の代わりにクエリを渡す を参照) 。

テーブル名の代わりにクエリを渡す

テーブル名の代わりに、table 引数には、そのまま SQLite に渡される SELECT クエリを指定できます。テーブルの構造はクエリ結果から推論されます。クエリは、サブクエリとして記述することも、query 関数でラップすることもできます。

CREATE TABLE sqlite_table ENGINE = SQLite('sqlite.db', (SELECT col1, col2 FROM table1 WHERE col2 > 1));
CREATE TABLE sqlite_table ENGINE = SQLite('sqlite.db', query('SELECT col1, col2 FROM table1 WHERE col2 > 1'));

このようなテーブルは読み取り専用で、これに対する INSERT は許可されていません。同じ構文は、sqlite テーブル関数でもサポートされています。

サポートされるデータ型

テーブル定義で ClickHouse のカラム型を明示的に指定すると、SQLite の TEXT カラムから以下の ClickHouse 型をパースできます。

デフォルトの型マッピングについては、SQLite データベースエンジン を参照してください。

使用例

SQLite のテーブルを作成するクエリを示します。

SHOW CREATE TABLE sqlite_db.table2;
CREATE TABLE SQLite.table2
(
    `col1` Nullable(Int32),
    `col2` Nullable(String)
)
ENGINE = SQLite('sqlite.db','table2');

テーブルのデータを返します:

SELECT * FROM sqlite_db.table2 ORDER BY col1;
┌─col1─┬─col2──┐
│    1 │ text1 │
│    2 │ text2 │
│    3 │ text3 │
└──────┴───────┘

関連項目

Navigation