특수 테이블 엔진

특수 테이블 엔진 (Special Table Engines)

테이블 엔진에는 세 가지 주요 범주가 있어요.

나머지 엔진들은 목적이 독특해서 아직 패밀리로 그룹화되지 않았어요. 그래서 이 "특수" 범주에 배치됐어요.

Page Description
Alias table engine Alias 테이블 엔진은 다른 테이블에 대한 투명한 프록시를 만들어요. 모든 연산은 대상 테이블로 전달되며 alias 자체는 데이터를 저장하지 않아요
Distributed table engine Distributed 엔진의 테이블은 자체 데이터를 저장하지 않지만 여러 서버에서 분산 쿼리 처리를 허용해요. 읽기는 자동으로 병렬화돼요. 읽는 동안 원격 서버의 테이블 인덱스가 있으면 사용돼요
Dictionary table engine Dictionary 엔진은 딕셔너리 데이터를 ClickHouse 테이블로 표시해요
Merge table engine Merge 엔진(MergeTree와 혼동하지 마세요)은 자체적으로 데이터를 저장하지 않지만 다른 테이블 여러 개에서 동시에 읽는 것을 허용해요
Executable and ExecutablePool table engines ExecutableExecutablePool 테이블 엔진은 정의한 스크립트(행을 stdout에 쓰는)에서 행이 생성되는 테이블을 정의할 수 있게 해줘요
File table engine File 테이블 엔진은 지원되는 파일 형식(TabSeparated, Native 등) 중 하나로 데이터를 파일에 보관해요
Null table engine Null 테이블에 쓰면 데이터는 무시돼요. Null 테이블에서 읽으면 응답은 비어 있어요
Set table engine 항상 RAM에 있는 데이터 집합. IN 연산자의 오른쪽에서 사용하기 위한 것이에요
Join table engine JOIN 연산에서 사용하기 위한 선택적 준비 데이터 구조
URL table engine 원격 HTTP/HTTPS 서버와 데이터를 주고받아요. 이 엔진은 File 엔진과 비슷해요
View table engine 뷰 구현에 사용돼요 (자세한 내용은 CREATE VIEW query 참고). 데이터를 저장하지 않고 지정된 SELECT 쿼리만 저장해요. 테이블에서 읽을 때 이 쿼리를 실행해요 (쿼리에서 불필요한 컬럼을 모두 삭제)
Memory table engine Memory 엔진은 압축되지 않은 형태로 RAM에 데이터를 저장해요. 데이터는 읽을 때 받은 정확히 같은 형태로 저장돼요. 즉, 이 테이블에서 읽는 것은 완전히 무료예요
Buffer table engine 쓸 데이터를 RAM에 버퍼링하고 주기적으로 다른 테이블로 flush해요. 읽는 동안 데이터는 버퍼와 다른 테이블에서 동시에 읽혀요
쿼리 처리를 위한 외부 데이터 ClickHouse는 쿼리 처리에 필요한 데이터를 SELECT 쿼리와 함께 서버로 보낼 수 있게 해줘요. 이 데이터는 임시 테이블에 놓이고 쿼리에서 사용할 수 있어요 (예: IN 연산자)
GenerateRandom table engine GenerateRandom 테이블 엔진은 주어진 테이블 스키마에 대해 임의 데이터를 생성해요
KeeperMap table engine 이 엔진은 선형화 가능한 쓰기와 순차적으로 일관된 읽기가 있는 일관된 키-값 저장소로 Keeper/ZooKeeper 클러스터를 사용할 수 있게 해줘요
FileLog table engine 이 엔진은 애플리케이션 로그 파일을 레코드 스트림으로 처리할 수 있게 해줘요

출처: 문서

본문

특수 테이블 엔진들은 목적이 독특해서 별도 범주로 분류된 엔진들이에요. 위 표에서 각 엔진의 용도를 확인할 수 있어요.

더 알아보기 (Learn more)