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에 대한 READ와 WRITE 소스 권한이 필요해요. 테이블을 읽으려면 해석된 백엔드에 대한 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 권한을 참고해요.