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 타입으로 테이블을 명시적으로 정의하는 경우, 다음 ClickHouse 타입들을 SQLite TEXT 컬럼에서 파싱할 수 있습니다:
- Date, Date32
- DateTime, DateTime64
- UUID
- Enum8, Enum16
- Decimal32, Decimal64, Decimal128, Decimal256
- FixedString
- 모든 정수 타입(UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64)
- Float32, Float64
SQLite는 동적 타입을 사용하며, 타입 접근 함수들은 자동 형 변환(automatic type coercion)을 수행합니다. 예를 들어, TEXT 컬럼을 정수로 읽을 때 해당 텍스트를 숫자로 파싱할 수 없으면 0을 반환합니다. 이는 ClickHouse 테이블이 기본 SQLite 컬럼과 다른 타입으로 정의되어 있는 경우, 오류를 발생시키지 않고 값이 조용히 다른 타입으로 강제 변환될 수 있음을 의미합니다.
세부 사항 및 권장 사항
SQLite는 전체 데이터베이스(정의, 테이블, 인덱스 및 데이터 자체)를 호스트 머신의 단일 크로스플랫폼 파일 하나에 저장합니다. 쓰기 작업 중에는 SQLite가 전체 데이터베이스 파일을 잠그므로 쓰기 작업은 순차적으로 수행됩니다. 읽기 작업은 여러 작업을 동시에 수행할 수 있습니다.
SQLite는 서비스 관리(예: startup 스크립트)나 GRANT 및 비밀번호를 기반으로 한 액세스 제어를 필요로 하지 않습니다. 액세스 제어는 데이터베이스 파일 자체에 부여된 파일 시스템 권한을 통해 처리됩니다.
사용 예시
SQLite에 연결된 ClickHouse 데이터베이스:
테이블 목록을 표시합니다:
ClickHouse 테이블의 데이터를 SQLite 테이블에 삽입하기: