본문으로 바로가기
본문으로 바로가기

clickhouse-static-files-disk-uploader

지정된 ClickHouse 테이블의 메타데이터가 포함된 데이터 디렉터리를 생성합니다. 이 메타데이터는 web 디스크를 기반으로 하는 읽기 전용 데이터셋을 사용하는 ClickHouse 테이블을 다른 서버에 생성하는 데 사용할 수 있습니다.

이 도구를 사용하여 데이터를 마이그레이션하지 마십시오. 대신 BACKUPRESTORE 명령을 사용하십시오.

사용법

$ clickhouse static-files-disk-uploader [args]

Commands

CommandDescription
-h, --help도움말 정보를 출력합니다
--metadata-path [path]지정된 테이블의 메타데이터가 들어 있는 경로를 지정합니다
--test-mode테이블 메타데이터를 포함한 PUT 요청을 주어진 URL로 전송하는 test 모드를 활성화합니다
--link파일을 출력 디렉터리로 복사하는 대신 심볼릭 링크를 생성합니다
--url [url]test 모드에서 사용할 웹 서버 URL을 지정합니다
--output-dir [dir]non-test 모드에서 파일을 출력할 디렉터리를 지정합니다

지정된 테이블의 메타데이터 경로 가져오기

clickhouse-static-files-disk-uploader를 사용할 때는 대상 테이블의 메타데이터 경로를 반드시 얻어야 합니다.

  1. 대상 테이블과 데이터베이스를 지정하여 다음 쿼리를 실행합니다.

SELECT data_paths
  FROM system.tables
  WHERE name = 'mytable' AND database = 'default';
  1. 이렇게 하면 지정한 테이블의 데이터 디렉터리 경로가 반환됩니다:

┌─data_paths────────────────────────────────────────────┐
│ ['./store/bcc/bccc1cfd-d43d-43cf-a5b6-1cda8178f1ee/'] │
└───────────────────────────────────────────────────────┘

테이블 메타데이터 디렉터리를 로컬 파일 시스템으로 내보내기

대상 출력 디렉터리 output와 지정된 메타데이터 경로를 사용해 다음 명령을 실행하십시오:

$ clickhouse static-files-disk-uploader --output-dir output --metadata-path ./store/bcc/bccc1cfd-d43d-43cf-a5b6-1cda8178f1ee/

성공하면 다음과 같은 메시지가 표시되고, output 디렉터리에 지정한 테이블의 메타데이터가 저장됩니다:

Data path: "/Users/john/store/bcc/bccc1cfd-d43d-43cf-a5b6-1cda8178f1ee", destination path: "output"

테이블 메타데이터 디렉터리를 외부 URL로 내보내기

이 단계는 데이터 디렉터리를 로컬 파일 시스템으로 내보내는 과정과 유사하지만, 여기에 --test-mode 플래그를 추가로 사용해야 합니다. 출력 디렉터리를 지정하는 대신 --url 플래그를 통해 대상 URL을 지정해야 합니다.

test 모드가 활성화되면 테이블 메타데이터 디렉터리가 PUT 요청을 통해 지정된 URL로 업로드됩니다.

$ clickhouse static-files-disk-uploader --test-mode --url http://nginx:80/test1 --metadata-path ./store/bcc/bccc1cfd-d43d-43cf-a5b6-1cda8178f1ee/

테이블 메타데이터 디렉터리를 사용하여 ClickHouse 테이블 생성하기

테이블 메타데이터 디렉터리가 준비되면, 이를 사용하여 다른 서버에 ClickHouse 테이블을 생성할 수 있습니다.

데모를 제공하는 이 GitHub 리포지토리를 참고하십시오. 예제에서는 web 디스크를 사용해 테이블을 생성하며, 이를 통해 다른 서버의 데이터 세트에 테이블을 연결할 수 있습니다.