clickhouse-static-files-disk-uploader

clickhouse-static-files-disk-uploader

clickhouse-static-files-disk-uploader는 지정한 ClickHouse 테이블의 메타데이터를 포함한 데이터 디렉터리를 출력하는 도구예요. 이 메타데이터를 이용하면 web 디스크로 백업되는 읽기 전용 데이터셋을 가진 테이블을 다른 서버에서 만들 수 있습니다.

출처: 문서

본문

지정한 ClickHouse 테이블의 메타데이터를 포함한 데이터 디렉터리를 출력합니다. 이 메타데이터를 사용하면 web 디스크로 백업되는 읽기 전용 데이터셋을 가진 ClickHouse 테이블을 다른 서버에서 만들 수 있어요.

데이터 마이그레이션에는 이 도구를 사용하지 마세요. 대신 BACKUPRESTORE 명령을 사용하세요.

사용법 (Usage)

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

명령 (Commands)

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

지정한 테이블의 메타데이터 경로 가져오기 (Retrieve metadata path for the specified table)

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 table metadata directory to the local filesystem)

대상 출력 디렉터리 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로 출력하기 (Output table metadata directory to an external 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 테이블 만들기 (Using the table metadata directory to create a ClickHouse table)

테이블 메타데이터 디렉터리를 확보했다면, 이를 사용해 다른 서버에 ClickHouse 테이블을 만들 수 있습니다.

이 GitHub 저장소에서 데모를 확인해 보세요. 예시에서는 web 디스크를 사용해 테이블을 만들고, 이를 통해 테이블을 다른 서버의 데이터셋에 연결(attach)할 수 있게 합니다.

더 알아보기 (Learn more)