Notebook

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

准备工作

  • 已创建工作空间,并选择参加数据开发(Data Studio)(新版)公测。

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

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

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

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

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据建模与开发 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发(新版)

  2. 单击顶部个人开发环境·请选择

    • 如果当前登录的云账号是首次使用,是没有个人开发环境的,需根据页面提示,单击前往新建

      新建个人开发环境

      1. (可选)创建文件存储并添加挂载点。详情请参见创建文件系统

      2. 在个人开发环境新建实例页面中,配置相关参数。

        参数

        说明

        实例名称

        个人开发环境的名称,自定义。

        资源组

        选择个人开发环境所使用的Serverless资源组。

        资源组配额

        选择个人开发环境的资源组可使用的规格,您可以在Serverless资源组的配额管理中设置个人开发环境的资源使用上限。

        选择镜像

        Data Studio提供多种镜像供您选择,按需选择即可。

        系统盘

        每个个人的开发环境提供30 GiB的免费云盘,停机后15天内会被回收。

        新增存储来源:(可选)您可以单击新增存储来源将存储在文件系统(NAS)中的项目文件接入Data Studio进行开发。

        数据存储

        支持文件存储(通用型NAS)和文件存储(极速型NAS)。

        文件系统

        选择已有的文件系统。

        文件系统挂载点

        选择文件系统下的挂载点,如果没有,可单击新建挂载点

        文件系统路径

        填写该文件系统下的子路径,请确保该路径存在,否则后续使用会出现错误。

        默认挂载路径

        填写个人开发环境挂载在NAS的默认挂载路径。

        专有网络

        可选择Notebook配置的Serverless资源组所绑定的VPC,建议选择目标数据源相同的VPC,以减少网络连通的额外配置。

        安全组

        请选择已经创建的安全组进行挂载。

        交换机

        可选,系统将会根据所选的专有网络默认随机选择一个交换机。

        实例RAM角色

        实例RAM角色允许您将一个角色关联到个人开发环境实例,在实例内部基于STS(Security Token Service)临时凭证访问其他云产品,临时凭证将周期性更新。既可以保证云账号AccessKey安全,还可以借助RAM访问控制实现精细化控制和权限管理。

        角色详情,请参见配置ServerIDE实例RAM角色

    • 如果您已有个人开发环境,则选择需要使用的个人开发环境。

      说明

      您只能选择由当前登录云账号创建的个人开发环境,无法选择和使用其他云账号创建的个人开发环境。

  1. 切换个人开发环境后,即可在个人目录中查看个人开发环境的存储空间或挂载的NAS文件系统。

  2. 代码开发。

    您可以在个人开发环境的存储空间或NAS中创建文件或对已有文件进行查看、修改等操作。

步骤二:新建Notebook

新建数据开发Notebook

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

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据建模与开发 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发(新版)

  2. 创建Notebook。

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

    • 项目目录下创建Notebook:

      • 单击image按钮,选中Notebook,来新建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
  • SQL Cell支持的SQL类型包括:MaxCompute SQLHologres SQLEMR SPARK SQLStarRocks SQLFlink SQL BatchFlink SQL Streaming

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

    • 单击Notebook页面内的Cell代码框的右下角image按钮可切换不同SQL的计算资源。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

Python Cell

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场景。

Markdown Cell

TCell内支持撰写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

  • 页面点击“复制Cell”,可以用快捷键Ctrl + C。

  • 页面点击“剪切Cell”,可以用快捷键Ctrl + X。

  • 页面点击“粘贴Cell”,可以用快捷键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页面的右上角的imageCopilot按钮,打开Copilot,基于prompt交互后,可将生成的SQLPython代码插入当前停留的SQL CellPython Cell中。

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

  2. 交互生成SQLPython代码。

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

    image

Workflow中使用Notebook

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

新增Notebook任务节点:

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

  2. Workflow页面的左侧新建节点内搜索Notebook,并将其拖拽至Workflow画布中。image

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

    image

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

步骤四:发布Notebook

项目目录下Notebook发布

  1. 单击image保存Notebook。

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

    image

个人目录下Notebook发布

  1. 单击image保存Notebook。

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

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

    image

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

步骤五:删除Notebook

项目目录下的Notebook

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

    image

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

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

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

      说明

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

      image

个人目录下的Notebook

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

image