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로 설정되면 이것을 실행하는 SELECT나 INSERT는 거부돼요.