Table Functions

Table Functions (테이블 함수)

테이블 함수는 테이블을 구성하는 방법이에요. SELECT 쿼리의 FROM 절이나 CREATE TABLE ... AS table_function() 같은 곳에서 테이블처럼 사용할 수 있어요.

출처: 문서

본문

테이블 함수는 테이블을 구성하는 메서드예요.

사용법 (Usage)

테이블 함수는 SELECT 쿼리의 FROM 절에서 사용할 수 있어요. 예를 들어 로컬 머신의 파일에서 file 테이블 함수를 사용해 데이터를 SELECT할 수 있어요.

쿼리:

echo "1, 2, 3" > example.csv

응답:

./clickhouse client
:) SELECT * FROM file('example.csv')
┌─c1─┬─c2─┬─c3─┐
│ 1 │ 2 │ 3 │
└────┴────┴────┘

테이블 함수를 사용해 현재 쿼리에서만 사용 가능한 임시 테이블을 만들 수도 있어요. 예를 들어:

쿼리:

SELECT * FROM generateSeries(1,5);

응답:

┌─generate_series─┐
│ 1 │
│ 2 │
│ 3 │
│ 4 │
│ 5 │
└─────────────────┘

쿼리가 끝나면 테이블은 삭제돼요.

테이블 함수는 다음 문법을 사용해 테이블을 만드는 방법으로도 사용할 수 있어요:

쿼리:

CREATE TABLE [IF NOT EXISTS] [db.]table_name AS table_function()

예를 들어:

쿼리:

CREATE TABLE series AS generateSeries(1, 5);
SELECT * FROM series;

응답:

┌─generate_series─┐
│ 1 │
│ 2 │
│ 3 │
│ 4 │
│ 5 │
└─────────────────┘

마지막으로, 테이블 함수는 테이블에 데이터를 INSERT하는 데도 사용할 수 있어요. 예를 들어 앞 예시에서 만든 테이블의 내용을 file 테이블 함수를 다시 사용해 디스크의 파일로 쓸 수 있어요:

쿼리:

INSERT INTO FUNCTION file('numbers.csv', 'CSV') SELECT * FROM series;

쿼리:

cat numbers.csv
1
2
3
4
5

대부분의 테이블 함수는 실행에 CREATE TEMPORARY TABLE 권한이 필요해요. 그래서 readonly가 1로 설정되면 이것을 실행하는 SELECTINSERT는 거부돼요.

더 알아보기 (Learn more)