跳到主要内容

开发环境

点击左侧导航栏数智开发-开发环境按钮,进入开发环境管理界面,可以看到当前工作空间下的开发任务列表,在当前页面,可以创建、编辑开发任务、以及对当前开发任务的启停、日志查看和进入任务 IDE界面等操作。

创建开发任务

点击创建开发任务按钮,在弹出任务配置页面。按要求依次输入名称、资源配置信息包括CPU、内存、存储等大小以及描述信息,完成后点击创建按钮,可以创建一个新开发任务信息。

查看详情、编辑、删除、开发任务启停以及日志查询

对列表中的开发任务记录,右侧包含 查看详情,编辑,删除,任务启停,查看日志,以及 进入IDE 按钮,对当前开发任务进行查看、编辑、启动停止以及日志查看等操作。

点击去开发按钮,进入任务 IDE编辑界面

对于启动后运行中的开发任务,点击去开发按钮可以进入其界面进行代码开发,包括Flink SQL、Spark SQL以及Python相关代码编写,并将编写完成的代码发布为审批任务。

进入任务 IDE界面后,选择/home/coder/work-dir目录进行代码的编辑。

在左侧树下,点击鼠标右键,创建一个名为user-demo.sql的Flink/Spark SQL note,在创建成功后,可以在其中进行Flink/Spark SQL的编辑,并对其中的SQL进行运行

  • 点击Run on activate connection在弹出的SQL Tool Connection中选择lakesoul-flink-global/lakesoul-spark-global连接信息,可以执行当前SQL。

  • 选中要执行的代码,点击右键,选择Run Selected Query在弹出的SQL Tool Connection中选择lakesoul-flink-global/lakesoul-spark-global连接信息,可以执行当前选中的SQL。

  • 运行完成后,会在右侧输出当前SQL或者选中的SQL执行或的结果

  • 发布编写后的Flink/Spark SQL代码。点击右上角的任务配置按钮,可以对Flink流/批方式、Spark以批的方式发布上线审批,发布后可以对其进行流式或者批式的定时调度配置。

在任务配置面板,选择是否是新建任务还是更新已上线任务,选择对应的Flink/Spark SQL文件获取SQL内容,选择对应的Flink、Spark处理引擎以及如果是Flink引擎的话设置任务的流还是批运行模式,设置对应的资源信息,点击发布按钮可以将其发布到任务管理的审批任务界面。

开发 SQL 语句时, 可以使用 ${scheduleTime} 的方式, 获取当前任务的调度时间 timestamp.

用法: ${scheduleTime}

使用示例:

  1. SQL 中增加 ${scheduleTime}
insert into `lakesoul`.`test_cdc`.`test` values (8, FROM_UNIXTIME(${scheduleTime}/1000,'yyyy-MM-dd HH:mm:ss'), 'test-8', 'aa-8');

创建Python任务并发布审批

在左侧树面板点击鼠标右键,创建一个名为user-note-1.py 或者user-note-1.ipynb的Python任务,在创建成功后,可以在其中进行Python相关任务的代码开发。

  • 运行编辑后的Python代码

    • 创建Python运行环境

      IDE内内置了conda命令,可以通过如下方式创建一个Python的虚拟运行环境,以便对开发项目相关依赖的隔离

      conda create -n lakesoul_venv python=3.10

      conda activate lakesoul_venv

      conda install -y -n lakesoul_venv -c conda-forge conda-pack
    • 在创建完环境后,点击界面右下角的环境选择,选择最新创建的运行环境

选中运行后环境,点击右上角的运行Python文件,可以执行当前Python代码,并可以查看输出结果

- 以Jupyter的方式运行Python代码

点击右上角的Select Kernel,在出现的Python环境选择列表选中对应的Python环境

点击Run ALL按钮或者对应的cell的Execute Cell按钮,执行其对应的代码

- 将编写后的Python代码,发布为审批任务,在审批后可以进行任务上线以定时调度方式运行

1. 审批上线时需要将当前的虚拟环境通过`conda pack -f -n lakesoul_venv -o lakesoul_venv.tar.gz`打包为tar文件,并通过上传包的功能,将其传到包文件管理。如果上线后的Python任务运行时,如果依赖环境出现缺失的情况可以通过`conda install`安装相关的依赖库。

    2. 点击右上角的**任务配置**按钮,可以对Python类型的任务发布进行配置

在任务配置面板,选择是否是新建任务还是更新已上线任务,选择对应的Python文件内容,选择Python处理引擎,选择Python运行依赖环境,可以选择已上传的环境依赖文件或者也可以点击右侧的上传包,将新的打包后的tar文件上传为新的包文件,然后设置对应的资源信息,点击发布按钮可以将其发布到任务管理的审批任务界面。

使用Python开发批调度任务时,可以使用--scheduleTime获取当前任务的调度时间戳,具体使用方法如下:

import argparse

if __name__ == "__main__":
parser = argparse.ArgumentParser(description="PySpark Batch Task")
parser.add_argument("--scheduleTime", type=str, required=True, help="Set scheduler Time")

args = parser.parse_args()
currentDate = int(args.scheduleTime)
previousDate = datetime.fromtimestamp(currentDate / 1000, tz=pytz.timezone("Asia/Shanghai")) - timedelta(days=1) # 获取当前时间的前一天时间
preDate = previousDate.strftime("%Y%m%d")
print(preDate)

创建Ray Job任务并发布审批

在左侧资源管理器的 /home/coder/work-dir 目录下创建 Python 文件,并编写 Ray、Daft 和 LakeSoul 相关代码。

点击界面右下角的 Python 运行环境,选择默认的 /home/coder/.venv/bin/python 运行环境。

点击右上角的运行按钮,选择 Run Python File,运行当前 Python 文件,并在终端查看执行结果。

代码验证完成后,点击右上角的任务配置按钮,选择 Ray Job 任务类型并完成相关配置。

Ray Job 任务配置说明:

  • Ray Runtime 包:可选,用于上传任务运行所需的项目文件或额外依赖包。Ray Runtime 镜像已内置 Ray、Daft 和 LakeSoul,不需要像 Python 任务一样上传 Conda 环境。
  • Worker 自动扩容:关闭时按照 Worker 数量创建固定数量的 Worker;开启后按照任务负载自动扩缩容,并使用最大 Worker 数限制扩容上限。
  • Worker CPU 数 / Worker 内存大小:每个 Worker Pod 的 CPU 和内存资源。
  • Head CPU 数 / Head 内存大小:Ray Head Pod 的 CPU 和内存资源。
  • Ray Runtime Env 配置:填写 Ray Runtime Env YAML,用于配置额外的 Python 依赖和环境变量。working_dir 由平台自动生成,不能手动覆盖;excludes 用于排除上传包中的文件。

例如:

pip:
- pendulum==3.0.0
env_vars:
MY_ENV: test
excludes:
- .venv/
- __pycache__/
- "*.log"
  • RayJob 配置:填写 RayJob 原生 YAML 配置。当前支持 activeDeadlineSecondspreRunningDeadlineSecondsttlSecondsAfterFinishedshutdownAfterJobFinishesbackoffLimitsubmitterConfig 等字段。

点击发布后,任务进入 生产任务-发布审批,审批通过后即可上线运行。

使用 Ray Job 开发批调度任务时,可以使用 --scheduleTime 获取当前任务的调度时间戳,用法与 Python 任务相同。