跳过主要内容

CLI命令

Dora 的 命令行接口 (CLI) 是控制和检查 Dora 数据流的主要途径。 CLI 提供命令在本地和远程机器上构建和运行数据流。 它还提供各种辅助命令,例如从模板创建新节点或可视化数据流图表。

本地构建 & 运行

启动时两个最重要的命令是 dora builddora run

  • dora build 读取数据流配置文件给定的 buildgit 字段并执行指定的克隆和构建指令。
    • 如果数据流包含 Python 节点, 您可以将 --uv 参数传递到 dora build 替换为 pip 命令为 uv 命令
  • dora run 启动一个本地数据流。 每个节点都是按照其 pathargs 字段生成的。
    • 它没有运行任何构建命令,所以您可能需要在此之前运行 dora build
    • dora run _附加_至已启动的数据流。 这意味着数据流日志被打印到终端,并且数据流被ctrl-c停止。
    • 如果数据流包含 Python 节点, 您可以将 --uv 参数传递到 dora run,通过uv.py结尾的path调用其节点。

只要有这两个命令,您就已经准备好开始!

辅助命令

Dora CLI 提供一些命令帮助开发:

  • dora new 有助于从模板创建新的节点和数据流
    • 示例:运行以下以创建一个新的 Python 节点: dora new my_node_name --kind node --lang python
  • dora graph 可视化给定的数据流配置文件为一个图形
    • 通过 --open 在您的浏览器中查看生成的图形
    • 通过 --mermaid 创建一个 mermaid 图描述
  • dora self 命令允许更新或卸载 dora
  • dora help 命令打印帮助文本

分布式的 构建 & 运行

数据流可以被流行的分布化运行, 它们的节点运行在不同的机器。 没有不可能,例如,移动计算密集节点至更强大的机器,如在云端。

分布式数据流的工作会有更多复杂性,需要额外的命令。 dora run 命令不支持分布式数据流。 相反,可以使用如下章节描述的命令。

安置

要安置一个分布式 Dora 网络,您需要一个您想要使用的所有机器都可以访问的机器。 在此机器上,生成dora coordinator,它是所有机器与CLI的中心联系点。 如果您喜欢,您可以通过命令行参数调整它监听的端口号。

在生成(coordinator)协调器后,在所有应运行数据流部分的机器上生成一个 dora daemon 实例。 为此使用以下命令:

dora daemon --machine-id SOME_UNIQUE_ID --coordinator-addr 0.0.0.0

每个守护进程实例需要有一个不同的 --machine-id 参数。 这些机器ID稍后可在一个数据流配置文件中引用来指定每个节点的目标机器。

设置 --coordinator-addr 参数到 dora coordinator 实例的 IP 地址。 如果您为(coordinator)协调器选择不同的端口号,您还需要指定一个附加的--coordinator-port参数。

分布式的构建,运行,与停止

构建一个分布式数据流使用与本地构建相同的 dora build 命令。 此命令将检查给定数据流规格文件并在其中查找 _unstable_deploy。 如它找到,它将做一个分布式构建而不是本地构建。

分布式构建的工作原理是指示协调器向所有连接的守护进程发送构建命令。 这样,每个节点都直接建立在机器上,然后运行。 如果 CLI 和 (coordinator)协调器 在不同的机器上运行,您需要指定一个 --coordinator-addr 参数:

dora start --coordinator-addr 0.0.0.0

您还可以指定一个--coordinator-port (如果(coordinator)协调器监听在一个非默认端口)。

要运行一个分布器数据流,使用 dora start 命令。 这个命令非常类似于 dora build, 但它是到 (coordinator)协调器而不是直接运行数据流。 您需要再次指定 --coordinator-addr (与 --coordinator-port) 参数。 像 dora run,您可以传递 --uv 通过uv生成 Python 节点。

默认情况dora start将_附加_至已启动的数据流。 这意味着数据流日志被打印到终端,并且数据流被ctrl-c停止。 您也可以使用 --detach 标志来让数据流在后台运行。

如果您想要停止数据流,您可以使用 dora stop 命令。

拆除一个 Dora 网络

dora destroy 命令指定(coordinator)协调器停止所有正在运行的数据流,然后告诉所有已连接的守护进程退出,并最终此命令自己停止运行。 因此,它提供了一个停止与Dora有关的一切关联的方法。

检查

您可以使用以下命令向(coordinator)协调器请求有关分布式数据流的信息:

  • 使用 list 获取所有正在运行的数据流实例列表
  • 使用 logs 检索一个正在运行或已结束的数据流的日志输出

所有命令

dora-rs cli 客户端

用法: dora <COMMAND>

命令:
check 检查协调器和守护进程是否正在运行
graph 使用 mermaid.js 生成给定图形的可视化。 使用 --open 打开浏览器
build 运行给定数据流提供的 build 命令
new 生成一个新项目或节点。 在 Rust, Python, C 或 C++ 之间选择语言
run 运行一个本地数据流
up 在本地模式(默认配置)生成一个协调器和一个守护进程。
destroy 销毁运行中的协调器和守护进程。 如果某些数据流仍在运行,则它们将首先停止
start 启动给定数据流路径。 使用 --name 将一个名称附加到正在运行的数据流。
stop 停止给定UUID的数据流。 如果没有提供ID,您将在运行中的数据流之间选择
list 列表出运行中的数据流
logs 显示一个给定数据流和节点日志
daemon 运行守护进程
runtime 运行运行时
coordinator 运行协调器
help 打印本帮助信息或给定子命令的帮助信息

选项:
-h, --help 打印帮助信息
-V, --version 打印版本信息

up

在本地模式下生成 Coordinator 和守护进程(默认配置)

用法:dora up

选项:
-h, --help 打印帮助

new

生成一个新的项目或结点。 在 Rust, Python, C 或 C++ 之间选择语言

用法: dora new [选项] <NAME> [路径]

参数:
<NAME> Desired name of the entity

选项:
--kind <KIND> 已创建实体 [默认: dataflow] [可能的选项: dataflow, operator, custom-node]
--lang <LANG> 已使用编程语言 [默认: rust] [可能的选项: rust, python, c, cxx]
-h, --help 打印帮助信息

start

从给定数据流路径启动。 使用 --name 附加一个名称至运行中的数据流

用法: dora start [选项] <PATH>

参数:
<PATH> 数据流描述符文件的路径

选项:
--name <NAME> 分配一个名称至数据流
--coordinator-addr <IP> dora 协调器的地址 [默认: 127.0.0.1]
--coordinator-port <PORT> 协调器控制服务的端口号 [默认: 6012]
--attach 附加至数据流并等待其完成
--detach 在后台运行数据流
--hot-reload 启用热重载 (仅 Python)
--uv
-h, --help 打印帮助信息

list

列出正在运行的数据流

用法:dora list [选项]

选项:
--coordinator-addr <IP> dora 协调器的地址 [默认: 127.0.0.1]
--coordinator-端口 <PORT> 协调器控制服务的端口号[默认:6012]
- h, --help 打印帮助

logs

显示一个给定数据流和结点的日志

用法: dora logs [选项] [UUID 或 名称] <NAME>

参数:
[UUID 或 名称] 数据流的标识符
<NAME> 显示给定结点的日志

选项:
--coordinator-addr <IP> dora 协调器的地址 [默认: 127.0.0.1]
--coordinator-port <PORT> 协调器控制服务的端口号 [默认: 6012]
-h, --help 打印帮助信息

check

检查协调器和守护进程是否运行

用法:dora 检查 [OPTIONS]

选项:
--dataflow <PATH> 到 data flow 描述文件的路径(启用额外检查)
--coordinator-addr <IP> dora coordinator [默认: 127.0.0.1]
--coordinator-端口 <PORT> 协调器控制服务的端口号[默认: 6012]
- h, --help 打印帮助

stop

停止给定UUID的数据流。 如果没有已提供的ID, 您将可以在已运行的数据流中进行选择

用法: dora stop [选项] [UUID]

参数:
[UUID] 将被停止数据流的UUID

选项:
--name <NAME> 将被停止的数据流名称
--grace-duration <DURATION> 在给定的持续时间之后数据流还没有停止,将被杀掉
--coordinator-addr <IP> dora 协调器 的地址 [默认: 127.0.0.1]
--coordinator-port <PORT> 协调器控制服务的端口号 [默认: 6012]
-h, --help 打印帮助信息

destroy

销毁运行中的协调器和守护进程。 如果一些数据流还在运行,他们将首先被停止

用法: dora destroy [选项]

选项:
--coordinator-addr <IP> dora 协调器的地址 [默认: 127.0.0.1]
--coordinator-port <PORT> 协调器控制服务的端口号 [默认: 6012]
-h, --help 打印帮助信息

graph

对给定图使用 mermaid.js 生成可视化。 使用 --open 打开浏览器

用法: dora graph [选项] <PATH>

参数:
<PATH> 数据流描述文件的路径

选项:
--mermaid 可视化数据流做为一个 Mermaid图 (而不是 HTML)
--open 在浏览器中打开可视化的HTML
-h, --help 打印帮助信息

--version

返回 dora 的当前版本

这个命令将显示 dora 的当前版本。