> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# clickhouse-static-files-disk-uploader

> 介绍 clickhouse-static-files-disk-uploader 工具

输出一个数据目录，其中包含指定 ClickHouse 表的元数据。这些元数据可用于在另一台服务器上创建一个由 `web` 磁盘 支持的只读数据集对应的 ClickHouse 表。

请勿使用此工具迁移数据。请改用 [`BACKUP` 和 `RESTORE` 命令](/docs/zh/concepts/features/backup-restore/overview)。

<div id="usage">
  ## 用法
</div>

```bash theme={null}
$ clickhouse static-files-disk-uploader [args]
```

<div id="commands">
  ## 命令
</div>

| 命令                       | 说明                                        |
| ------------------------ | ----------------------------------------- |
| `-h`, `--help`           | 打印帮助信息                                    |
| `--metadata-path [path]` | 包含指定表元数据的路径                               |
| `--test-mode`            | 启用 `test` 模式；该模式会将表元数据通过 PUT 请求提交到指定的 URL |
| `--link`                 | 创建符号链接，而不是将文件复制到输出目录                      |
| `--url [url]`            | `test` 模式使用的 Web 服务器 URL                  |
| `--output-dir [dir]`     | 在 `non-test` 模式下用于输出文件的目录                 |

<div id="retrieve-metadata-path-for-the-specified-table">
  ## 获取指定表的 元数据路径
</div>

使用 `clickhouse-static-files-disk-uploader` 时，您必须先获取目标表的 元数据路径。

1. 运行以下查询，并指定目标表和数据库：

<br />

```sql theme={null}
SELECT data_paths
  FROM system.tables
  WHERE name = 'mytable' AND database = 'default';
```

2. 这将返回指定表的数据目录路径：

<br />

```response theme={null}
┌─data_paths────────────────────────────────────────────┐
│ ['./store/bcc/bccc1cfd-d43d-43cf-a5b6-1cda8178f1ee/'] │
└───────────────────────────────────────────────────────┘
```

<div id="output-table-metadata-directory-to-the-local-filesystem">
  ## 将表元数据目录导出到本地文件系统
</div>

使用目标输出目录 `output` 和给定的元数据路径，执行以下命令：

```bash theme={null}
$ clickhouse static-files-disk-uploader --output-dir output --metadata-path ./store/bcc/bccc1cfd-d43d-43cf-a5b6-1cda8178f1ee/
```

如果操作成功，你应会看到以下消息，且 `output` 目录中应包含指定表的元数据：

```repsonse theme={null}
Data path: "/Users/john/store/bcc/bccc1cfd-d43d-43cf-a5b6-1cda8178f1ee", destination path: "output"
```

<div id="output-table-metadata-directory-to-an-external-url">
  ## 将表元数据目录导出到外部 URL
</div>

此步骤与将数据目录导出到本地文件系统类似，但需要额外添加 `--test-mode` 标志。无需指定输出目录，而是必须通过 `--url` 标志指定目标 URL。

启用 `test` 模式后，表元数据目录会通过 PUT 请求上传到指定的 URL。

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

<div id="using-the-table-metadata-directory-to-create-a-clickhouse-table">
  ## 使用表元数据目录创建 ClickHouse 表
</div>

获得表元数据目录后，您就可以用它在另一台服务器上创建 ClickHouse 表。

请参阅[此 GitHub 仓库](https://github.com/ClickHouse/web-tables-demo)了解演示。在该示例中，我们使用 `web` 磁盘创建表，这使我们能够将该表关联到另一台服务器上的数据集。
