CREATE TEMPORARY TABLE
CREATE TEMPORARY TABLE
임시 테이블은 복제되지 않는다는 점에 유의하세요. 결과적으로 임시 테이블에 삽입된 데이터가 다른 리플리카에서 사용 가능하다는 보장은 없습니다. 임시 테이블이 유용한 주요 사용 사례는 단일 세션 동안 작은 외부 데이터셋을 쿼리하거나 조인하는 것입니다.
출처: 문서
본문
Temporary table support
임시 테이블은 복제되지 않는다는 점에 유의하세요. 결과적으로 임시 테이블에 삽입된 데이터가 다른 리플리카에서 사용 가능하다는 보장은 없습니다. 임시 테이블이 유용한 주요 사용 사례는 단일 세션 동안 작은 외부 데이터셋을 쿼리하거나 조인하는 것입니다.
ClickHouse는 다음 특성을 가진 임시 테이블을 지원합니다:
- 임시 테이블은 연결이 끊어지는 것을 포함해 세션이 끝나면 사라져요.
- 임시 테이블은 엔진이 지정되지 않으면 Memory 테이블 엔진을 사용하며, Replicated와
KeeperMap엔진을 제외한 어떤 테이블 엔진도 사용할 수 있어요. - 임시 테이블에는 DB를 지정할 수 없습니다. 데이터베이스 외부에 만들어져요.
ON CLUSTER를 사용하는 분산 DDL 쿼리로 모든 클러스터 서버에 임시 테이블을 만들 수 없습니다. 이 테이블은 현재 세션에서만 존재합니다.- 임시 테이블이 다른 테이블과 같은 이름을 가지고 쿼리가 DB를 지정하지 않고 테이블 이름을 지정하면 임시 테이블이 사용됩니다.
- 분산 쿼리 처리를 위해 쿼리에 사용된 Memory 엔진의 임시 테이블은 원격 서버로 전달됩니다.
Syntax
임시 테이블을 만들려면 다음 문법을 사용하세요:
CREATE [OR REPLACE] TEMPORARY TABLE [IF NOT EXISTS] table_name
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
...
) [ENGINE = engine]
대부분의 경우 임시 테이블은 수동으로 만들지 않고, 쿼리에 외부 데이터를 사용하거나 분산 (GLOBAL) IN을 위해 사용합니다. 자세한 내용은 해당 섹션을 참고하세요.
임시 테이블 대신 ENGINE = Memory 테이블을 사용하는 것도 가능합니다.