Notebook

更新时间:2025-03-03 03:34:59

DataWorksNotebook提供了一个交互式、灵活且可复用的数据处理和分析环境,增强了直观性、模块化和交互性,帮助您更轻松地进行数据处理、探索、可视化和模型构建。

使用限制

  • 必须使用数据开发(Data Studio)(新版)公测工作空间,可通过创建工作空间创建新版数据开发工作空间。

  • 必须使用Serverless资源组,新建Serverless资源组详情请参见使用Serverless资源组

步骤一:创建个人开发环境实例

Notebook开发依赖于个人开发环境实例,所以在创建Notebook前,需提前创建好个人开发环境实例。详情请参见创建个人开发环境实例

步骤二:新建Notebook

新建数据开发Notebook
  1. 进入数据开发(新版)页面。

    进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的快速进入 > Data Studio,进入Data Studio。

  2. 创建Notebook。

    在数据开发页面,左侧导航栏单击image按钮,进入数据开发页面,在项目目录个人目录下可以创建Notebook。

    • 项目目录下创建Notebook:

      • 单击image按钮,选中Notebook,来新建Notebook。

      • 若已创建的工作目录,鼠标悬浮在目录名上右键选择新建 > 新建节点 > Notebook新建Notebook。

      • 若已创建的工作流程,在工作流程的编辑工作流内,添加Notebook节点。

    • 个人目录下创建Notebook:

      • 单击image按钮,新建Notebook文件。

      • 单击image按钮,新增.ipynb格式的文件,实现新建Notebook。

      • 若已创建的文件夹,鼠标悬浮在文件夹名上右键选择新建Notebook来新建Notebook。

步骤三:开发Notebook

进入Notebook页面后,默认会存在一个空白Python Cell,除Python Cell外,还支持SQL CellMarkdown Cell

新建Cell

  1. 新增Cell。

    • Notebook页面顶部新增Cell:常驻新增SQLPythonMarkdown新增按钮,单击新增即可。

    • 从当前Cell上方新增Cell:鼠标悬浮至Cell上边缘时展示新增按钮,单击新增按钮即可在当前Cell上方插入一个新Cell。

    • 从当前Cell下方新增Cell:鼠标悬浮至Cell下边缘时展示新增按钮,单击新增按钮即可在当前Cell下方插入一个新Cell。

  2. 选择Cell内核。

    在运行Notebook时,无论是单个Cell运行还是全部Cell运行,运行前整体需要选择一个内核,在Notebook页面的右侧顶部单击image按钮,即可对Notebook内核进行切换,如果已经在页面顶部选择了个人开发环境实例,则会自动选择个人开发环境的官方镜像所对应的内核。

    image

Cell种类

SQL Cell
Python Cell
Markdown Cell
  • SQL Cell支持的SQL类型包括MaxCompute SQLHologres SQLEMR SPARK SQLStarRocks SQLFlink SQL BatchFlink SQL Streaming

    • 单击Notebook页面内的Cell代码框的右下角image按钮可以切换不同的SQL模式。image

    • 单击Notebook页面内的Cell代码框的右下角image按钮可切换不同SQL的计算资源。

      SQL Cell支持的计算资源包括:MaxComputeHologresEMR ON Spark全托管Flink

      image

  • 运行SQL脚本后,将在Cell下方打印SQL运行结果。

    场景

    示例代码

    运行结果

    示意图

    SQL不包含Select语句。

    CREATE TABLE IF NOT EXISTS product (
        product_id BIGINT,
        product_name STRING,
        product_type STRING,
        price DECIMAL(10, 2)
    )
    LIFECYCLE 30; -- 表示数据的生命周期为30天,超出后数据将被自动删除,这是一个可选设置
    

    运行日志

    image

    SQL包含Select语句。

    select 
    product_id,
    product_name,
    product_type,
    price 
    FROM product;

    表格

    image

    可视化图表

    image

    运行日志

    将查询结果自动生成DataFrame数据对象的变量。

    • SQL Cell中包含一段查询SQL,则自动获取的这段SQL的结果作为DataFrame变量。

    • SQL Cell中包含多段查询SQL,则获取的DataFrame变量是多段查询SQL的后一个查询结果。

    说明

    您可以通过单击返回变量名自定义修改变量名。

    image

Cell内支持撰写Python代码,并执行查看运行结果,以下为示例场景:

场景

示例代码

运行结果示意图

仅打印输出文本。

Print("Hello World")

image

使用Pandas DataFrame。

import pandas as pd

# 定义产品数据,包括详细信息:产品名称、区域和登录频率。
product_data = {
    'Product_Name': ['DataWorks', 'RDS MySQL', 'EMR Spark', 'MaxCompute'],
    'Product_Region': ['East China 2 (Shanghai)', 'North China 2 (Beijing)', 'South China 1 (Shenzhen)', 'Hong Kong'],
    'Login_Frequency': [33, 22, 11, 44]
}

# 根据给定的数据创建一个DataFrame。
df_products = pd.DataFrame(product_data)

# 打印DataFrame以显示产品信息。
print(df_products)

image

绘制图表。

import matplotlib.pyplot as plt

# 数据
categories = ['DataWorks', 'RDS MySQL', 'MaxCompute', 'EMR Spark', 'Hologres']
values = [23, 45, 56, 78, 30]

# 创建条形图
plt.figure(figsize=(10, 6))
plt.bar(categories, values, color=['blue', 'green', 'red', 'purple', 'orange'])

# 添加标题和标签
plt.title('Example Bar Chart')
plt.xlabel('category')
plt.ylabel('value')

# 显示图形
plt.show()

imageimage

说明

除却简单的打印输出、函数和绘图外,还支持更多Python场景。

Cell内支持撰写Markdown,以下为Markdown的编写的操作步骤:

  1. 在编写完成后,单击image按钮后,可展示Markdown的文本和格式效果。image

  2. 在已展示的格式效果的MarkdownCell中,单击image按钮,可继续编辑该Cell。

    image

Cell的通用操作

操作

位置

说明

操作

位置

说明

运行当前Cell。

image

点击image后,当前Cell开始运行。

停止运行当前Cell。

image

点击image后,正在运行的Cell停止运行。

展开和收起Cell运行结果。

image

运行Cell后的结果,默认均为展开,可单击运行结果前的蓝色线条对Cell运行输出进行折叠或展开。

说明

SQL查询结果不支持通过该方式进行隐藏或展开。

清空当前Cell结果。

image

单击左上角的image选择清除单元格输出,即可清除当前Cell的运行结果。

移除Cell。

image

点击image后,当前Cell将从Notebook中被移除。

运行当前Cell上方所有单元格。

运行当前Cell单元格及以下。

运行当前Cell上方所有单元格:

image

运行当前Cell单元格及以下:

image

在右上角点击批量运行的Menu Button,选择运行当前Cell上方所有单元格或运行当前Cell及下方所有单元格;多个Cell运行时,将按照Cell排列顺序进行串行执行。

复制/剪切/粘贴当前Cell。

image

单击左上角的image按钮可以进行以下操作:

  • 页面点击复制单元格,可以用快捷键Ctrl + C。

  • 页面点击剪切单元格,可以用快捷键Ctrl + X。

  • 页面点击粘贴单元格,可以用快捷键Ctrl + V。

插入Cell(在上方/在下方)。

上方插入

image

下方插入

image

上方插入:鼠标悬浮在已有Cell的上框线上,会出现添加不同Cell的按钮,单击需要增加的Cell即可。

下方插入:鼠标悬浮在已有Cell的下线框上,会出现添加不同Cell的按钮,单击需要增加的Cell即可。

移动Cell顺序(向上方/向下方)。

image

除了点击调整顺序的按钮,也支持拖拽Cell至目标位置。

SQL Cell结果传递至Python Cell

SQL Cell有输出结果时,将自动生成DataFrame变量,这些变量可被Python Cell获取,从而实现SQL CellPython Cell联动。

  1. 新建SQL Cell,编辑并运行,生成变量

    1. 运行查询SQL。

      image

    2. 自定义变量名。

      image

      说明

      如果一个单元格中包含多个查询SQL,那么DataFrame变量存储的数据内容将仅包含最后一个运行的查询SQL结果。

  1. Python Cell中获取DataFrame变量。

    image

公共头呼出Copilot

单击DataWorks页面的右上角的image,打开Copilot,基于prompt交互后,可将生成的SQLPython代码插入当前停留的SQL CellPython Cell中。

  1. 在右侧的Copilot对话框内,输入自己想要实现的内容。

  2. 交互生成SQLPython代码。

  3. 单击prompt回复的SQLPython代码右上角的插入按钮,即可将SQLPython代码插入当前停留的SQL CellPython Cell中。

    image

工作流中使用Notebook

若在数据开发中创建了工作流,那么可在工作流中新增Notebook任务节点或引用已有的Notebook节点。

新增Notebook任务节点:

  1. 在项目目录下,单击打开工作流编辑页面。

  2. Workflow页面左侧单击编辑工作流,在添加节点模块内搜索Notebook,并将其拖拽至工作流画布中。image

  3. 在新建节点的弹窗内,为Notebook自定义节点名称和调整节点类型,并单击确认,完成节点创建。

    image

  4. 创建完成Notebook节点后,可单击打开节点,对Workflow内的Notebook节点进行配置,配置开发操作详情请参见:开发Notebookimage

步骤四:发布Notebook

说明

节点发布流程中各步骤的详细说明,请参见节点/工作流发布

项目目录下Notebook发布
个人目录下Notebook发布
  1. 单击image保存Notebook。

  2. 单击image进入Notebook的发布流程中,分别对发布包构建上线到开发前检查发布到开发环境上线到生产前检查发布到生产环境步骤进行确认,从而完成发布操作。

    image

  1. 单击image保存Notebook。

  2. 单击image将个人目录下的Notebook提交至项目目录下。单击提交后,根据弹窗提示选择需要提交的Notebook文件以及存放的目录位置。

  3. 进入项目目录,根据配置的存放位置找到提交至项目目录下的Notebook,单击image进入Notebook的发布流程中,分别对发布包构建上线到开发前检查发布到开发环境上线到生产前检查发布到生产环境步骤进行确认,从而完成发布操作。

    image

Notebook发布成功后,可单击右上角下拉菜单中的前往运维查看周期实例前往运维查看周期任务查看Notebook的运行详情等信息。

步骤五:删除Notebook

项目目录下的Notebook
个人目录下的Notebook
  • 仅保存,未发布的Notebook:从目录树上右键目标文件,直接删除。

    image

  • 已发布的Notebook,需要先执行Notebook任务节点的下线;再回到数据开发,从目录树中删除任务节点。

    1. 选中需要删除的Notebook,右键选择删除,会出现下线弹窗,在弹窗内单击去下线,即可进入Notebook的下线流程。

    2. 在下线流程,单击开始下线,然后将节点下线前检查下线开发前检查从开发环境下线下线生产前检查以及从生产环境下线单击确认删除节点单击确认跳过,完成对Notebook的下线

      说明

      删除节点中选择确认时,会直接删除该Notebook,选择跳过时,则只会下线Notebook,不会删除该Notebook。

      image

如果Notebook是个人目录下的文件,可以从目录树上右键单击目标Notebook文件,直接删除Notebook文件。

image

场景:Notebook引用Python资源

NoteBook在进行开发时,可通过##@resource_reference{"自定义名.py"}的方式引用MaxCompute资源,以下为引用Python资源的简单示例:

说明

Notebook引用Python资源仅在生产环境下生效,在开发环境下无法正常获取资源,请将Notebook发布至生产环境后,在运维中心执行。

新建Python资源

  1. 添加Python资源文件。

    1. 进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的快速进入 > Data Studio,进入Data Studio。

    2. 在左侧导航栏单击image,进入资源管理。

    3. 资源管理页面,单击新建按钮或image,您也可以先新建目录,规划资源管理目录后,再在相应目录上右键,选择新建,选择具体创建的资源或函数类型。

      image

    4. 新建MaxCompute Python资源。

      本示例将该Python资源命名为:hello.py

  2. 编辑Python资源文件内容,示例代码如下:

    # your_script.py
    def greet(name):
        print(f"Hello, {name}!")
    

    编辑完成后,单击保存,保存Python代码。

  3. 完成代码的编辑与保存后,单击image按钮,保存hello.py资源。

  4. 资源保存成功后,单击image按钮,发布hello.py资源至开发以及生产环境。

引用Python资源

  1. 新增Notebook节点,详情可参见新建Notebook

  2. Notebook中新增Python Cell,详情可参见Cell种类

    Python Cell中编写的##@resource_reference{"hello.py"}引用步新建的MaxCompute Python资源,以下为示例代码:

    # 通过该注释在调度时引用一个名称为hello.py的Python资源
    ##@resource_reference{"hello.py"}
    
    import sys
    import os
    
    
    # 将当前工作目录添加到路径中
    sys.path.append(os.path.abspath('./hello.py'))  # 或者使用相对路径,根据实际情况进行调整
    
    from hello import greet  # 替换为实际的函数名
    
    greet('DataWorks')
    
  3. 完成Python Cell的代码编写与节点调度配置后,保存并发布Notebook节点。

  4. 进入运维中心(工作流),在周期任务运维 > 周期任务中找到已发布的Notebook节点,单击操作列补数据,对Notebook节点进行补数据,补数据详情可参见:执行补数据并查看补数据实例(新版)

  5. 完成补数据后,即可通过查看Notebook节点运行日志来确认Python Cell是否执行成功。

    image

  • 本页导读 (1)
  • 使用限制
  • 步骤一:创建个人开发环境实例
  • 步骤二:新建Notebook
  • 步骤三:开发Notebook
  • 新建Cell
  • Cell种类
  • Cell的通用操作
  • SQL Cell结果传递至Python Cell
  • 公共头呼出Copilot
  • 工作流中使用Notebook
  • 步骤四:发布Notebook
  • 步骤五:删除Notebook
  • 场景:Notebook引用Python资源
  • 新建Python资源
  • 引用Python资源
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等