Source: https://dev-docs.yueshu.com.cn/v5.3.2/analytic/algorithms/prepare-data/ Documentation version: v5.3.2 # 准备算法示例数据 算法示例通过 CSV 文件导入点和边。本文说明如何在 Docker Compose 部署中准备文件;具体的导入语句和算法代码见各算法页面。 开始前,先完成[部署](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/deploy/)并[登录悦数图管理](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/#connect)。 在运行 Docker 的机器(下文称为宿主机)上打开终端,进入`compose.yaml`所在的部署目录。以下 Docker 命令均在该终端中执行。 ## 1. 确认目录挂载 配套 [compose.yaml](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/files/compose.yaml) 已在`services.graphd.volumes`中包含以下挂载,使用该文件部署时无需修改: ```` volumes: - ./examples:/examples ```` `./examples`是`compose.yaml`同级的宿主机目录,在`graphd`容器中对应`/examples`。将 CSV 保存到该宿主机目录后,Graph 服务就能通过容器路径读取,无需再复制到容器中。 现有 compose.yaml 中没有这条挂载 在`services.graphd.volumes`列表中添加`- ./examples:/examples`,保留其他配置,然后检查: ```` docker compose config --quiet ```` 检查通过后,应用配置: ```` docker compose up -d graphd ```` 此操作会重新创建 Graph 容器,已有临时图及其数据会被删除。按[检查服务状态](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/deploy/#check-services)确认服务正常后,重新连接悦数图管理。 ## 2. 下载并保存 CSV 文件 各算法页面的准备图数据一节提供 CSV 下载链接和保存目录。以下以 PageRank 为例: 1. 在部署目录下新建`examples/algorithms/pagerank`文件夹。 2. 下载 [pagerank_node.csv](https://dev-docs.yueshu.com.cn/v5.3.2/analytic/algorithms/files/pagerank/pagerank_node.csv) 和 [pagerank_edge.csv](https://dev-docs.yueshu.com.cn/v5.3.2/analytic/algorithms/files/pagerank/pagerank_edge.csv),保存到该文件夹,保留原文件名和`.csv`扩展名。 保存后,目录结构如下: ```` dev-quickstart/ ├── compose.yaml └── examples/ └── algorithms/ └── pagerank/ ├── pagerank_node.csv └── pagerank_edge.csv ```` 若文件下载到了浏览器的默认下载目录,将其移到上述位置;若浏览器直接显示 CSV 内容,使用“另存为”保存。其他算法使用各自页面指定的目录和文件。 在远程服务器上运行 Docker 时,文件也要保存到该服务器的部署目录中。 ## 3. 检查文件并运行算法 在宿主机终端中执行以下命令,确认容器能看到 PageRank 的 CSV 文件: ```` docker compose exec graphd ls -1 /examples/algorithms/pagerank/ ```` 输出应包含`pagerank_node.csv`和`pagerank_edge.csv`。检查其他算法时,将命令中的`pagerank`替换为对应的目录名。 文件可见后,回到 [PageRank](https://dev-docs.yueshu.com.cn/v5.3.2/analytic/algorithms/pagerank/#1_prepare_graph_data) 或所选算法页面,在悦数图管理的控制台中使用默认 Schema(`/default_schema`),按顺序执行该页示例。每个代码块执行成功后再继续。 重新运行或更换数据 仅修改算法参数时,重新调用过程即可。 修改 CSV 不会自动更新临时图。重新导入前,先删除原临时图及其数据。以 PageRank 为例,在悦数图管理控制台中执行以下语句;其他算法使用各自的临时图名称: ```` DROP GRAPH IF EXISTS #pagerank_graph ```` 随后按算法页面重新创建临时图、导入数据并核对点数,再调用过程。Graph 服务重启后,也需要重新创建临时图并导入数据。 使用 ngql 执行示例 按 [ngql 连接说明](https://dev-docs.yueshu.com.cn/v5.3.2/get-started/first-query/#ngql)登录后,也可执行各算法页面的 GQL 示例。多行示例已在首尾各加一行`'''`,复制时请包含这两行,无需重复添加。输入末尾的`'''`并按 Enter 后提交语句,详见 [ngql 使用指南](https://dev-docs.yueshu.com.cn/v5.3.2/utilities/ngql/usage/)。 ## 4. 查看结果 按算法页面的调用过程一节查看结果: - 表格结果:在悦数图管理的查询结果区查看。 - CSV 文件:按页面给出的路径,在宿主机上打开结果目录。例如,PageRank 的结果保存在部署目录下的`examples/algorithms/pagerank/output/`。 导出时会自动创建结果目录,文件名由系统生成。一次运行可能生成多个 CSV 文件,可按修改时间找到本次结果。 结果表未指定`ORDER BY`时,行顺序可能与页面示例不同,可按列名和数值核对。 ## 文件问题排查 | 问题 | 检查方法 | 提示文件不存在 | 核对[保存位置和文件名](https://dev-docs.yueshu.com.cn/v5.3.2/analytic/algorithms/prepare-data/#download),再[检查容器中的文件](https://dev-docs.yueshu.com.cn/v5.3.2/analytic/algorithms/prepare-data/#run)。容器看不到文件时,检查[目录挂载](https://dev-docs.yueshu.com.cn/v5.3.2/analytic/algorithms/prepare-data/#mount)。 | 提示权限不足 | 检查宿主机示例目录和 CSV 文件的权限,确保 Graph 服务可以读取输入文件、写入结果目录。 | 导入时提示`Import to non-empty graph` | 临时图中已有数据。继续使用现有数据时,跳过导入;需要换数据时,按[重新导入](https://dev-docs.yueshu.com.cn/v5.3.2/analytic/algorithms/prepare-data/#reload)操作。 | 调用时提示过程不存在 | 先成功执行算法页面中所需的过程定义,并确认定义和调用使用相同的 Schema。