Filesystem 데이터베이스 엔진
Filesystem 데이터베이스 엔진
로컬 디렉토리의 파일을 읽기 전용 테이블로 노출하는 데이터베이스 엔진이에요. 테이블 이름은 데이터베이스 디렉토리에 상대적인 경로로 해석되며, file 테이블 함수로 읽혀요.
출처: 문서
본문
Filesystem 데이터베이스 엔진은 로컬 디렉토리의 파일을 읽기 전용 테이블로 노출해요. 테이블 이름은 데이터베이스 디렉토리에 상대적인 경로로 해석되고, file 테이블 함수를 사용해 읽혀요.
데이터베이스 만들기 (Creating a database)
CREATE DATABASE files
ENGINE = Filesystem([path]);
path는 파일을 포함한 디렉토리예요. 생략하면 ClickHouse는 clickhouse-local에서는 현재 디렉토리, ClickHouse 서버에서는 user_files 디렉토리를 사용해요.
사용 (Usage)
예를 들어 선택된 디렉토리에 data.csv가 있다면:
CREATE DATABASE files ENGINE = Filesystem('imports');
SELECT * FROM files.`data.csv`;
테이블 이름은 데이터베이스 디렉토리 아래의 상대 경로를 포함할 수 있어요. 테이블 스키마와 형식은 file 테이블 함수와 같은 방식으로 추론돼요. 데이터베이스는 테이블 정의를 소유하지 않아요. 테이블은 파일이 처음 해석될 때 만들어지고 이후 접근을 위해 캐시만 돼요. 이 데이터베이스를 통한 CREATE TABLE, INSERT 및 기타 쓰기는 지원되지 않아요.
접근 제어 (Access control)
ClickHouse 서버에서 데이터베이스 디렉토리와 해석된 모든 파일은 user_files_path 안에 있어야 해요. 이 제한은 심볼릭 링크를 따른 후에도 적용돼요. clickhouse-local은 user_files_path로 제한되지 않아요. 이 데이터베이스를 만들려면 table_engines_require_grant와 무관하게 FILE에 대한 READ와 WRITE 소스 권한이 필요해요. 예를 들어 다음으로 부여해요.
GRANT READ, WRITE ON FILE TO user_name;
버전·호환성 세부사항은 SOURCES 권한을 참고해요.