메인 콘텐츠로 건너뛰기
테이블 함수는 테이블을 생성하는 방법입니다.
페이지설명
azureBlobStorageAzure Blob Storage에서 파일을 선택하거나 삽입할 수 있는 테이블 형태의 인터페이스를 제공합니다. s3 함수와 비슷합니다.
azureBlobStorageCluster지정된 클러스터의 여러 노드에서 Azure Blob Storage의 파일을 병렬로 처리할 수 있습니다.
clusterAllReplicas분산 테이블을 생성하지 않고도 클러스터의 모든 세그먼트(remote_servers 섹션에 구성됨)에 액세스할 수 있습니다.
deltaLakeAmazon S3의 Delta Lake 테이블에 대한 읽기 전용 테이블 형태의 인터페이스를 제공합니다.
deltaLakeClusterdeltaLake 테이블 함수의 확장 기능입니다.
dictionary딕셔너리 데이터를 ClickHouse 테이블로 표시합니다. Dictionary 엔진과 동일한 방식으로 동작합니다.
executableexecutable 테이블 함수는 stdout에 행을 출력하는 스크립트에서 정의한 사용자 정의 함수(UDF)의 출력을 기반으로 테이블을 생성합니다.
file파일에서 SELECT하고 파일에 INSERT할 수 있는 테이블 형태의 인터페이스를 제공하는 테이블 엔진이며, s3 테이블 함수와 비슷합니다. 로컬 파일로 작업할 때는 file()을 사용하고, S3, GCS, MinIO와 같은 객체 스토리지의 버킷으로 작업할 때는 s3()를 사용합니다.
fileCluster클러스터 내 여러 노드에서 지정된 경로와 일치하는 파일을 동시에 처리할 수 있습니다. initiator는 worker 노드와 연결을 설정하고, 파일 경로의 글롭 패턴을 확장하며, 파일 읽기 작업을 worker 노드에 위임합니다. 각 worker 노드는 처리할 다음 파일을 얻기 위해 initiator에 쿼리하며, 모든 작업이 완료될 때까지(즉, 모든 파일을 읽을 때까지) 이를 반복합니다.
filesystem파일을 나열하고 해당 메타데이터와 내용을 반환할 수 있도록 파일 시스템에 대한 액세스를 제공합니다.
format지정된 입력 형식에 따라 인수의 데이터를 파싱합니다. structure 인수를 지정하지 않으면 데이터에서 추출합니다.
gcsGoogle Cloud Storage의 데이터를 SELECTINSERT할 수 있는 테이블 형태의 인터페이스를 제공합니다. Storage Object User IAM role이 필요합니다.
fuzzQuery지정된 쿼리 문자열에 무작위 변형을 가합니다.
fuzzJSONJSON 문자열에 무작위 변형을 가합니다.
generateRandom지정된 schema로 무작위 데이터를 생성합니다. 이 데이터를 사용해 테스트 테이블을 채울 수 있습니다. 모든 타입이 지원되는 것은 아닙니다.
mergeTreeTextIndexMergeTree 테이블의 텍스트 인덱스 딕셔너리를 나타냅니다. 내부 검사에 사용할 수 있습니다.
mergeTreeProjectionMergeTree 테이블의 일부 projection 내용을 나타냅니다. 내부 검사에 사용할 수 있습니다.
mergeTreeIndexMergeTree 테이블의 인덱스 및 마크 파일 내용을 나타냅니다. 내부 검사에 사용할 수 있습니다.
hdfsHDFS의 파일에서 테이블을 생성합니다. 이 테이블 함수는 url 및 file 테이블 함수와 비슷합니다.
hdfsCluster지정된 클러스터의 여러 노드에서 HDFS의 파일을 병렬로 처리할 수 있습니다.
hudiAmazon S3의 Apache Hudi 테이블에 대한 읽기 전용 테이블 형태의 인터페이스를 제공합니다.
ytsaurus이 테이블 함수는 YTsaurus 클러스터에서 데이터를 읽을 수 있게 합니다.
hudiCluster Table Functionhudi 테이블 함수의 확장 기능입니다. 지정된 클러스터의 여러 노드에서 Amazon S3의 Apache Hudi 테이블 파일을 병렬로 처리할 수 있습니다.
icebergAmazon S3, Azure, HDFS 또는 로컬에 저장된 Apache Iceberg 테이블에 대한 읽기 전용 테이블 형태의 인터페이스를 제공합니다.
paimonAmazon S3, Azure, HDFS 또는 로컬에 저장된 Apache Paimon 테이블에 대한 읽기 전용 테이블 형태의 인터페이스를 제공합니다.
icebergClustericeberg 테이블 함수의 확장 기능으로, 지정된 클러스터의 여러 노드에서 Apache Iceberg의 파일을 병렬로 처리할 수 있습니다.
paimonClusterpaimon 테이블 함수의 확장 기능으로, 지정된 클러스터의 여러 노드에서 Apache Paimon의 파일을 병렬로 처리할 수 있습니다.
input주어진 structure로 server에 전송된 데이터를 다른 structure를 가진 테이블에 맞게 효율적으로 변환하고 삽입할 수 있게 하는 테이블 함수입니다.
jdbcJDBC 드라이버를 통해 연결된 테이블을 반환합니다.
merge임시 Merge 테이블을 생성합니다. 구조는 하위 테이블의 컬럼 union을 사용하고 공통 타입을 도출하여 결정됩니다.
mongodb원격 MongoDB 서버에 저장된 데이터에 대해 SELECT 쿼리를 수행할 수 있습니다.
mysql원격 MySQL 서버에 저장된 데이터에 대해 SELECTINSERT 쿼리를 수행할 수 있습니다.
nullNull table engine을 사용하여 지정된 구조의 임시 테이블을 생성합니다. 이 함수는 테스트 작성과 데모를 편리하게 수행할 수 있도록 사용됩니다.
timeSeriesMetricstimeSeriesMetrics는 테이블 엔진이 TimeSeries 엔진인 db_name.time_series_table 테이블에서 사용하는 Metrics 테이블을 반환합니다.
timeSeriesSelector셀렉터로 필터링되고 지정된 인터벌 내 timestamp를 가진 TimeSeries 테이블의 시계열을 읽습니다.
timeSeriesTagstimeSeriesTags 테이블 함수는 테이블 엔진이 TimeSeries 엔진인 db_name.time_series_table 테이블에서 사용하는 Tags 테이블을 반환합니다.
prometheusQueryRangeTimeSeries 테이블의 데이터를 사용해 Prometheus 쿼리를 평가합니다.
zeros테스트 용도로 많은 행을 생성하는 가장 빠른 메서드로 사용됩니다. system.zerossystem.zeros_mt system table과 유사합니다.
primes소수가 들어 있는 단일 prime 컬럼을 가진 테이블을 반환합니다.
timeSeriesDatatimeSeriesData는 테이블 엔진이 TimeSeries인 db_name.time_series_table 테이블에서 사용하는 데이터 테이블을 반환합니다.
numbers정수 시퀀스를 포함하는 단일 number 컬럼을 가진 테이블을 반환합니다.
prometheusQueryTimeSeries 테이블의 데이터를 사용해 Prometheus 쿼리를 평가합니다.
generate_series (generateSeries)start부터 stop까지의 정수를 포함하는 단일 generate_series 컬럼(UInt64)을 가진 테이블을 반환합니다.
odbcODBC를 통해 연결된 테이블을 반환합니다.
postgresql원격 PostgreSQL 서버에 저장된 데이터에 대해 SELECTINSERT 쿼리를 수행할 수 있습니다.
redis이 테이블 함수는 ClickHouse를 Redis와 통합할 수 있게 해줍니다.
remote, remoteSecure테이블 함수 remote를 사용하면 분산 테이블을 생성하지 않고도 즉시 원격 서버에 접근할 수 있습니다. 테이블 함수 remoteSecureremote와 동일하지만 보안 연결을 사용합니다.
s3 Table FunctionAmazon S3 및 Google Cloud Storage의 파일을 select/insert할 수 있는 테이블형 인터페이스를 제공합니다. 이 테이블 함수는 hdfs 함수와 유사하지만 S3 전용 기능을 제공합니다.
s3Clusters3 테이블 함수의 확장 기능으로, 지정된 cluster의 여러 노드에서 Amazon S3 및 Google Cloud Storage의 파일을 병렬로 처리할 수 있습니다.
sqliteSQLite DB에 저장된 데이터에 대해 쿼리를 수행할 수 있습니다.
arrowFlightApache Arrow Flight 서버를 통해 노출된 데이터에 대해 쿼리를 수행할 수 있습니다.
url지정된 formatstructure를 사용해 URL에서 테이블을 생성합니다
urlCluster지정된 cluster의 여러 노드에서 URL의 파일을 병렬로 처리할 수 있습니다.
viewsubquery를 테이블로 변환합니다. 이 함수는 view를 구현합니다.
values값으로 컬럼을 채우는 임시 저장소를 생성합니다.
loopClickHouse의 loop 테이블 함수는 쿼리 결과를 무한 반복으로 반환하는 데 사용됩니다.

사용법

테이블 함수는 SELECT 쿼리의 FROM 절에서 사용할 수 있습니다. 예를 들어, file 테이블 함수를 사용하면 로컬 머신의 파일에서 데이터를 SELECT할 수 있습니다.
Query
echo "1, 2, 3" > example.csv
Response
./clickhouse client
:) SELECT * FROM file('example.csv')
┌─c1─┬─c2─┬─c3─┐
│  1 │  2 │  3 │
└────┴────┴────┘
현재 쿼리에서만 사용 가능한 임시 테이블을 생성할 때도 테이블 함수를 사용할 수 있습니다. 예시:
Query
SELECT * FROM generateSeries(1,5);
Response
┌─generate_series─┐
│               1 │
│               2 │
│               3 │
│               4 │
│               5 │
└─────────────────┘
테이블은 쿼리가 종료되면 삭제됩니다. 테이블 함수는 다음 구문을 사용해 테이블을 생성하는 데 사용할 수 있습니다:
Query
CREATE TABLE [IF NOT EXISTS] [db.]table_name AS table_function()
예시:
Query
CREATE TABLE series AS generateSeries(1, 5);
SELECT * FROM series;
Response
┌─generate_series─┐
│               1 │
│               2 │
│               3 │
│               4 │
│               5 │
└─────────────────┘
마지막으로, 테이블 함수를 사용해 테이블에 데이터를 INSERT할 수 있습니다. 예를 들어, 이전 예시에서 생성한 테이블의 내용을 다시 file 테이블 함수를 사용해 디스크의 파일에 기록할 수 있습니다:
Query
INSERT INTO FUNCTION file('numbers.csv', 'CSV') SELECT * FROM series;
Query
cat numbers.csv
1
2
3
4
5
allow_ddl 설정이 비활성화된 경우 테이블 함수를 사용할 수 없습니다.
마지막 수정일 2026년 6월 10일