You need to enable JavaScript to run this app.
导航

DolphinScheduler

最近更新时间2023.10.31 17:47:38

首次发布时间2023.10.31 17:47:38

DolphinScheduler 是一个分布式、可扩展的工作流调度程序平台,以其强大的容错性和易用性而闻名。

前提条件

在使用之前,请提前准备好以下安装程序和用户账户。

  1. Dolphin scheduler v3.1.5 或以上版本。

注:出于演示目的,我们将使用独立部署环境。

DOLPHINSCHEDULER_VERSION=3.1.8
docker run --name dolphinscheduler-standalone-server -p 12345:12345 -p 25333:25333 -d apache/dolphinscheduler-standalone-server:"${DOLPHINSCHEDULER_VERSION}"
  1. ByteHouse Python 驱动程序 v1.0.2 或以上版本,您可 点此 获取安装程序。
  2. Python v3.9 及以上版本,您可 点此 获取安装程序。
  3. 火山引擎账户。

配置与使用

  1. 访问 DolphinScheduler 主页,如 http://localhost:12345/dolphinscheduler/ui/login ,并填写账号与用户名。
    1. Username: admin
    2. Password: dolphinscheduler123
  2. 单击“Create a project”来创建一个项目。

图片

  1. 单击该项目,然后转到 Workflow > Workflow Definition > Create Workflow,来创建一个工作流。

图片
目前 ByteHouse 上可以运行的任务类型有两种:

  • Python
  • HTTP

创建 Python 工作流

通过选择 Python 节点并输入以下内容来创建 Python 工作流程:

  1. 节点名称
  2. 脚本

示例脚本:

注意:您所在地区的 Host:Port字段可以参考支持的地域及可用区 获取;API 密钥 <API_KEY> 请参考 获取 API Token 设置。

from bytehouse_driver import Client

client = Client.from_url('bytehouse://{HOST}:{PORT}/?user=bytehouse&password=<API_KEY>')
result = client.execute("SELECT * FROM <db>.<table> limit 10;")
assert len(result) == 10, "invalid result size"

图片
如果您使用的是 Python 工作流,请在 docker file 中使用提供的映像和附加 Python 设置。

FROM apache/dolphinscheduler-standalone-server:3.1.5

RUN apt-get update
RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:deadsnakes/ppa
RUN apt-get install -y python3.9 python3-pip
RUN mkdir -p /opt/soft
RUN ln -s /usr/bin/python3 /opt/soft/python
RUN pip install bytehouse-driver

CMD ./bin/start.sh

创建 HTTP 工作流

通过选择 HTTP 节点并输入以下内容来创建 HTTP 工作流:

  1. Node Name 节点名称
  2. HTTP Url 网址:设置为 <PUBLIC_API_DOMAIN>/v1/sql/sync。 您可以在此处找到您的公共 API 域。
  3. HTTP Method 方法:设置为 POST
  4. 添加HTTP参数可参考:

Prop

Type

Value

Authorization

Headers

Bearer <API_KEY>

x-user-activerole

Headers

SystemAdmin

Content-Type

Headers

application/json

query

Body

SELECT * FROM . limit 10;

mode

Body

clickhouse_sql

图片

使用限制

  1. 如果 DolphinScheduler 在本机安装,它将依赖于主机的环境,因此它必须支持所有的设置。 (例如,DolphinScheduler 要求,必须将 Python 安装路径链接到 /opt/soft/python)。
  2. HTTP 模块似乎不支持嵌套 JSON 结构,因此只能进行单级请求。

支持的示例:

{
    "query": "SELECT * FROM <db>.<table> limit 10;",
    "mode": "clickhouse_sql"
}

不支持的示例:

{
"body": {
    "query": "SELECT * FROM <db>.<table> limit 10;",
    "mode": "clickhouse_sql"
    }
}