clickhouse-static-files-disk-uploader
输出一个包含指定 ClickHouse 表元数据的 data 目录。此元数据可用于在另一个服务器上创建一个 ClickHouse 表,该表包含由 web
磁盘支持的只读数据集。
请勿使用此工具迁移数据。请改用 BACKUP
和 RESTORE
命令。
用法
$ clickhouse static-files-disk-uploader [args]
命令
命令 | 描述 |
---|---|
-h , --help | 打印帮助信息 |
--metadata-path [path] | 包含指定表元数据的路径 |
--test-mode | 启用 test 模式,该模式向给定 URL 提交包含表元数据的 PUT 请求 |
--link | 创建符号链接而不是将文件复制到输出目录 |
--url [url] | test 模式的 Web 服务器 URL |
--output-dir [dir] | 在 non-test 模式下输出文件的目录 |
检索指定表的元数据路径
使用 clickhouse-static-files-disk-uploader
时,您必须获取所需表的元数据路径。
- 运行以下查询,指定您的目标表和数据库
SELECT data_paths
FROM system.tables
WHERE name = 'mytable' AND database = 'default';
- 这将返回指定表的 data 目录的路径
┌─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
此步骤类似于将 data 目录输出到本地文件系统,但增加了 --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
磁盘创建了一个表,这使我们可以将表附加到另一台服务器上的数据集。