SQLite
SQLite データベースに接続し、INSERT および SELECT クエリを実行して、ClickHouse と SQLite 間でデータを交換できるようにします。
データベースの作成
エンジンパラメータ
db_path— SQLite データベースファイルのパス。
データ型サポート
下表は、ClickHouse が SQLite からスキーマを自動推論する際に使用するデフォルトの型マッピングを示します。
| SQLite | ClickHouse |
|---|---|
| INTEGER | Int32 |
| REAL | Float32 |
| TEXT | String |
| TEXT | UUID |
| BLOB | String |
SQLite table engine を使って特定の ClickHouse 型でテーブルを明示的に定義する場合、SQLite の TEXT カラムからは次の ClickHouse 型を解釈できます。
- 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 は、データベース全体(定義、テーブル、インデックス、および実データ)をホストマシン上の 1 つのクロスプラットフォームファイルとして保存します。書き込み中、SQLite はデータベースファイル全体をロックするため、書き込み操作は逐次的に実行されます。一方で、読み取り操作は並行して実行できます。
SQLite には、サービスとしての管理(起動スクリプトなど)や、GRANT やパスワードに基づくアクセス制御は必要ありません。アクセス制御は、データベースファイル自体に付与されたファイルシステムのパーミッションによって行われます。
使用例
SQLite に接続された ClickHouse のデータベース:
テーブル一覧を表示します:
ClickHouse のテーブルから SQLite のテーブルにデータを挿入する: