URL 데이터베이스 엔진

URL 데이터베이스 엔진

테이블 이름을 URL로 취급하고 그 URL의 데이터를 테이블로 노출하는 데이터베이스 엔진이에요. url 테이블 함수를 사용하며, 각 URL을 file, s3, HDFS, Azure Blob Storage, HTTP 같은 적절한 백엔드로 라우팅해요.

출처: 문서

본문

URL 데이터베이스 엔진은 테이블 이름을 URL로 취급하고 그 URL의 데이터를 테이블로 노출해요. url 테이블 함수를 사용하며, 각 URL을 file, s3, HDFS, Azure Blob Storage, HTTP 같은 적절한 백엔드로 라우팅해요.

데이터베이스 만들기 (Creating a database)

CREATE DATABASE web_data
ENGINE = URL([base_url]);

base_url이 지정되면 상대 테이블 이름이 그것에 대해 해석돼요. 기본 URL이 없으면 모든 테이블 이름이 완전한 URL이어야 해요.

사용 (Usage)

CREATE DATABASE web_data
ENGINE = URL('https://example.com/data/');

SELECT * FROM web_data.`daily.csv`;

데이터베이스는 테이블 정의를 소유하지 않아요. 각 테이블은 사용될 때 그 URL에서 해석되므로 그 스키마는 현재 데이터에서 추론돼요. 테이블 이름은 전체 URL을 사용할 수도 있어요. 예: web_data.s3://bucket/data/events.parquet`.

접근 제어 (Access control)

이 데이터베이스를 만들려면 table_engines_require_grant와 무관하게 URL에 대한 READWRITE 소스 권한이 필요해요. 테이블을 읽으려면 해석된 백엔드에 대한 READ 소스 권한도 필요하고, 쓰려면 그에 맞는 WRITE 권한이 필요해요. 예를 들어:

GRANT READ, WRITE ON URL TO user_name;
GRANT READ, WRITE ON S3 TO user_name;

file:// 기본 URL이 있는 데이터베이스의 경우 사용자는 READ ON FILE이 필요해요. ClickHouse 서버에서 로컬 파일은 추가로 user_files_path로 제한돼요. 버전·호환성 세부사항은 SOURCES 권한을 참고해요.

더 알아보기 (Learn more)