Notebook 查询与分析

DataWorksNotebook支持多种类型的单元格,提供一个交互式且模块化的分析环境,旨在帮助用户高效地完成数据处理、分析、可视化以及模型构建。

功能介绍

DataWorks中,可以通过Notebook节点构建交互式、模块化的可复用分析环境。

  • 多引擎开发:DataWorks Notebook拥有SQL Cell功能,支持多种大数据引擎的SQL开发与分析。

  • 交互式分析

    • 交互式SQL查询:通过Python编写Widgets组件,通过在组件中直观选择或设置参数的取值,后续可以进一步在SQL中引用相同参数及取值,从而实现PythonSQL间的交互式查询功能。

    • SQL查询结果写入DataFrame:SQL查询结果可直接存储在Pandas DataFrame 或 MaxFrame DataFrame对象中,以变量的形式传递至后续单元格。

    • 可视化图表生成:基于DataFrame中的数据内容,您可以在Python Cell中读取DataFrame变量并绘制图表,实现PythonSQL的高效联动。

  • 大数据+AI一体化开发:在DataWorks Notebook中可以使用Pandas等库进行数据清洗与准备,使数据内容满足算法模型的输入要求。随后,基于清洗后的数据,轻松完成算法模型的开发、训练与评估,实现大数据与AI的无缝衔接。

  • 智能代码生成:DataWorks Notebook内置智能编程助手,支持通过DataWorks Copilot辅助生成SQL代码和Python代码,提升开发效率。

支持的单元格类型

  • SQL单元格:

    • 支持的单元格类型:MaxCompute SQLHologres SQLEMR SPARK SQLStarRocks SQLFlink SQL BatchFlink SQL Streaming

    • 支持的计算资源: MaxComputeHologresEMR Serverless SparkEMR Serverless StarRocks全托管Flink

  • Python单元格。

  • Markdown单元格。

创建Notebook

  1. 登录DataWorks数据分析,切换至目标地域后,单击进入数据分析页面。

    1. 若在导航栏看到前往新版数据分析,单击切换进入新版数据分析页面。

    2. 若在导航栏看到返回旧版数据分析,则表示已进入新版数据分析页面。

  2. 鼠标移至个人目录 > 我的文件,单击右侧的image > 新建Notebook文件

    您也可以单击新建文件夹,自定义规划Notebook文件的目录结构。

准备Notebook环境

1. 创建个人开发环境实例

Notebook运行依赖个人开发环境实例,使用前需先创建并切换至目标实例。您可以通过个人开发环境实例安装Notebook节点开发依赖的环境,如Python第三方依赖。

2. 选择个人开发环境

在数据分析页面上方手动选择Notebook运行依赖的个人开发环境实例,作为Notebook运行的环境。

3. (可选)切换Python内核

单击Notebook节点右上角的image按钮,确认当前Python单元格运行的Python内核版本,切换其他Python内核版本。

开发Notebook

1. 添加单元格

Notebook节点工具栏中,可以根据需要,选择SQLPythonMarkdown新增按钮,快速创建对应的单元格。

鼠标移至单元格上下边缘时展示新增按钮,单击新增按钮即可在当前单元格上方或者下方插入一个新单元格。

若您想重新调整单元格位置,可通过鼠标悬浮在单元格前蓝色线条上拖拽调整单元格顺序。

2. (可选)切换单元格类型

在单元格中,通过单元格右下角的单元格类型按钮,相互切换单元格类型。更多单元格类型可参见:支持的单元格类型

  • SQL单元格从MaxCompute SQL单元格变更为Hologres SQL或其他SQL单元格。

  • SQL单元格变更为Python单元格或Markdown单元格,或者将Python单元格或Markdown单元格切换为SQL单元格。

说明

在切换单元格类型时,编辑内容将保留,需手动将单元格内的代码调整为合适的类型。

3. 开发单元格代码

在相应的单元格内可编辑SQLPython以及Markdown代码。z可使用DataWorks Copilot Ask辅助编程,以下为进入智能助手的方式:

  • 单元格工具栏进入:单击单元格右上方的image按钮,唤起Copilot的编辑器内聊天框,进行辅助编程。

  • 单元格右键菜单进入:选中单元格右键选择Copilot > 编辑器内聊天框,进行辅助编程。

  • 快捷键进入:

    • Mac系统Command+I键快捷呼出智能助手聊天框。

    • Windows系统Ctrl+I键快捷呼出智能助手聊天框。

Python开发

Python单元格默认采用个人开发环境实例内核运行Python单元格中的代码。若需要访问指定计算资源服务,您也可以通过使用内置Magic Command建立计算资源连接

SQL开发

使用SQL单元格开发时,需确保SQL语法与选择的SQL单元格类型,即计算资源类型匹配。点击SQL单元格右下角image按钮,指定已绑定计算资源,运行单元格时会将SQL使用指定计算资源运行。

Markdown开发

使用Markdown语法进行文字内容开发。

运行Notebook

完成Notebook的单元格开发后,对所有单元格进行测试运行,也可以仅对单个单元格进行测试运行。

  • 运行全部单元格:编辑完成Notebook后,单击上方image按钮,测试运行该Notebook节点下的所有单元格。

  • 运行单个单元格:编辑完成Notebook内部的单元格后,单击单元格左侧image按钮,测试运行。

SQL单元格

单元格内支持撰写多种类型的SQL脚本,在运行SQL脚本后,将在单元格下方打印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天,超出后数据将被自动删除,这是一个可选设置
  • 场景二:若SQL包含SELECT语句,单元格运行之后将展示运行日志,并提供两种查看方式:表格和可视化图表。同时,系统会自动将查询结果生成一个DataFrame变量

    SELECT 
    product_id,
    product_name,
    product_type,
    price 
    FROM product;
    • 生成DataFrame数据对象:

      SQL单元格自动生成返回变量,可通过单击SQL单元格左下方的df_*变量名,为生成的DataFrame变量重新命名

      image

    • 查看SQL查询的表格:

      SQL查询运行完成后,在日志区域默认展示SQL查询表格。

      image

    • 查看SQL查询的可视化图表

      SQL查询运行完成后,在日志区域左侧单击image按钮,可以查看通过SQL查询生成的表数据的可视化图表。

      image

Python单元格

单元格内支持撰写Python脚本,在运行Python脚本后,将在单元格下方打印Python代码的运行结果。

  • 场景一:仅打印输出文本。

    print("Hello World")
  • 场景二:打印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()

    image

Markdown单元格

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

# DataWorks Notebook
说明

在已展示的格式效果的Markdown单元格中,单击image按钮,可继续编辑该单元格。

相关文档

更多实践,请参见场景与实践