CLI命令
Dora 的 命令行接口 (CLI) 是控制和检查 Dora 数据流的主要途径。 CLI 提供命令在本地和远程机器上构建和运行数据流。 它还提供各种辅助命令,例如从模板创建新节点或可视化数据流图表。
本地构建 & 运行
启动时两个最重要的命令是 dora build
和 dora run
。
dora build
读取数据流配置文件给定的 build 与 git 字段并执行指定的克隆和构建指令。- 如果数据流包含 Python 节点, 您可以将
--uv
参数传递到dora build
替换为pip
命令为uv
命令
- 如果数据流包含 Python 节点, 您可以将
dora run
启动一个本地数据流。 每个节点都是按照其path
与args
字段生成的。- 它没有运行任何构建命令,所以您可能需要在此之前运行
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
- 示例:运行以下以创建一个新的 Python 节点:
dora graph
可视化给定的数据流配置文件为一个图形- 通过
--open
在您的浏览器中查看生成的图形 - 通过
--mermaid
创建一个 mermaid 图描述
- 通过
dora self
命令允许更新或卸载 doradora 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
命令。