输出一个数据目录,其中包含指定 ClickHouse 表的元数据。这些元数据可用于在另一台服务器上创建一个由 web 磁盘 支持的只读数据集对应的 ClickHouse 表。
请勿使用此工具迁移数据。请改用 BACKUP 和 RESTORE 命令。
用法
$ clickhouse static-files-disk-uploader [args]命令
| 命令 | 说明 |
|---|---|
-h, --help |
打印帮助信息 |
--metadata-path [path] |
包含指定表元数据的路径 |
--test-mode |
启用 test 模式;该模式会将表元数据通过 PUT 请求提交到指定的 URL |
--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_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 磁盘创建表,这使我们能够将该表关联到另一台服务器上的数据集。