説明
SQLite フォーマットは、SQLite データベースファイルの読み取りと書き込みを行います。
出力時には、ClickHouse はクエリ結果を SQLite データベース内の単一のテーブルに書き込みます。入力時には、ClickHouse は SQLite データベースから単一のテーブルを読み取ります。
ローカルの通常ファイルの場合、ClickHouse は SQLite データベースファイルを直接開きます。それ以外の入力ストリームおよび出力ストリームの場合は、SQLite データベースをメモリ上にマテリアライズします。
入力時、ClickHouse はデフォルトで SQLite データベースの最初のテーブルを読み取ります。読み取るテーブルは input_format_sqlite_table_name 設定で変更できます。出力時のデフォルトのテーブル名は table で、output_format_sqlite_table_name 設定で変更できます。
使用例
データ型の対応
ClickHouse はSQLite フォーマットでデータを書き込む際、次の宣言型を持つ SQLite テーブルを作成します。
Float32 および Float64 カラムでは、NaN 以外の値は SQLite ネイティブのストレージクラスで書き込まれ、NaN 値は ClickHouse のテキストシリアライゼーションで書き込まれます。Bool および通常の整数値も SQLite ネイティブのストレージクラスで書き込まれます。ワイド整数と複合型は ClickHouse のテキストシリアライゼーションで書き込まれます。NULL 値は SQLite の NULL として書き込まれます。
ClickHouse が SQLite の入力からスキーマを推論する場合は、SQLite データベースエンジン と同じ対応関係が使用されます。
デフォルトでは、対応する SQLite カラムが
NULL を許容する場合、ClickHouse は推論した型を Nullable でラップします。NOT NULL カラムは Nullable にはなりません。この動作は schema_inference_make_columns_nullable 設定で変更できます。
スキーマ推論では、元の ClickHouse データ型は保持されません。たとえば、Bool は SQLite の INTEGER として書き込まれ、Int64 として推論されます。また、Date、DateTime、Decimal、UUID、IPv4、IPv6、Enum、Array、Tuple、Map は SQLite の TEXT として書き込まれ、String として推論されます。
ClickHouse のテーブル構造を明示的に指定した場合、浮動小数点値は SQLite の REAL 値として読み込まれ、NaN の場合はテキストにフォールバックします。その他の SQLite の値はテキストとして読み込まれ、指定された ClickHouse の型にパースされます。