使用Notebook开发

更新时间:
复制 MD 格式

本文介绍如何使用DMS Jupyter Notebook进行数据查询和分析。Notebook相当于一个交互式的页面,能够在同一个页面中集成代码、文字和图表,以便于向其他用户传达信息。

Notebook界面介绍

Notebook界面由顶部工具栏和下方单元格编辑区域组成,工具栏中各按钮功能如下:

  • image:保存在Notebook编辑的内容。

  • image:在当前单元格的上方插入一个单元格。

  • image:删除所选中的单元格。

  • image:剪切选中的单元格。

  • image:复制选中的单元格。

  • image:粘贴复制的内容到选中的单元格。

  • image:执行所选中的单元格的内容。

  • image:中断内核。

  • image:重启内核。

  • image:重启内核,并重新运行整个Notebook。

  • image:切换单元格的属性,Code、SQL、MarkdownRaw。

  • image:单击Copilot即可进入对话界面。

DMS Jupyter Notebook支持的功能

DMS Jupyter Notebook兼容开源Jupyter Notebook。此外,DMS Jupyter Notebook还增强了SQL查询和可视化的能力。如下为您介绍DMS Jupyter Notebook支持的功能:

Ipython kernel(内核)

使用pip安装扩展包、支持公网访问,与开源Jupyter Notebook的使用方式基本一致。

  • Notebook使用Spark语法查询表数据。语法示例如下:

    • 语法一:

      df = spark.sql("select * from customer limit 10").show();
    • 语法二:

      %%spark_sql 
      select * from customer limit 10;
    • 语法三:

      Cell中选择SQL > Spark SQL,再输入相关SQL。

      CREATE TABLE IF NOT EXISTS 'default'.'select_2' AS SELECT 2;
      说明

      Spark SQL Cell 默认分页展示的行数上限为3000行。如需调整显示的行数,请修改环境变量DMS_SPARK_SQL_DEFAULT_LIMIT,在Cell中输入如下代码:

      os.environ['DMS_SPARK_SQL_DEFAULT_LIMIT'] = '3000';
  • Notebook的工具栏区域,将单元格属性从Code切换至SQL。

    SQL Cells使用语法与逻辑数仓基本相同,支持跨库查询、实时分析,权限要求与DMS细粒度的权限要求一致。逻辑数仓语法,请参见逻辑数仓SQL语法

  • SQLCellPythonCell中引用变量(引用格式为${变量名称})、自定义变量名称、查看变量类型。如下为您介绍如何在Notebook中输入变量、输出变量、引用变量。

    • 输入变量并引用变量

      Ipython中的变量,可通过${var}(varIpython内的变量名),引用到SQL中使用。

      target_table = 'archieve_partitions'
      SELECT
          *
      FROM
          `datafactory`.`${target_table}`;
    • 输出变量

      可在Ipython中直接使用变量名称(在结果集左下角),变量类型为pandas.core.frame.DataFrame。如需自定义变量名称,请单击变量名称即可修改。

  • 查询的SQL结果集一键可视化,支持表格和图表两种展示形式。

    图表视图左侧为配置面板,可设置图表类型(如折线图)、XY字段、分组筛选条件;顶部提供换一个下载图片按钮。

PySpark kernel(内核)

默认支持AnalyticDB Spark,也可支持开源Spark。

spark magic通过%%help magic可以快捷列出支持的命令列表。

说明

Spark Magic是一个Jupyter Notebook扩展。

使用AnalyticDB Spark

在完成购买湖仓版AnalyticDB实例开通并购买资源组创建数据库账号操作后,您可以使用如下命令:

命令

说明

%%info

确认或排查ADB Spark配置。

%%sql

提交SQLADB Spark。

进行DDL,使用读写C-Store的语法。更多信息,请参见读写内表数据

%%spark

提交python代码到ADB Spark。

说明

新创建的session,ADB Spark会保留20分钟,超时后会被删除。您可通过重启kernel创建新的session。

文件的上传与下载

使用ossutil上传、下载所需要的数据集。配置ossutil的操作,请参见配置ossutil

操作步骤

  1. 创建Notebook。

    在文件image页签下,单击image,选择Notebook

  2. 在文字和代码的展示区域,使用SQL、Code、MarkdownRaw的格式写入数据。

  3. 使用Copilot生成SQL

  4. 确认生成的SQL无误后,执行SQL并查看生成的结果集。

    1. Copilot生成的SQL区域,单击执行查询

      SQL会自动插入左侧的文档中,生成的查询结果也会显示在SQL下方。

      • 以表格形式展示

        查询结果返回7ORDERS表数据,包含O_ORDERKEY(订单号)、O_CUSTKEY(客户号)、O_ORDERSTATUS(订单状态)等字段,所有记录的订单状态均为O

      • 以图表形式展示

        在数据可视化配置面板中,将图表类型设置为折线图,X轴字段选择O_ORDERDATE,Y轴字段选择[总计] O_ORDERKEY,即可生成按订单日期汇总的O_ORDERKEY趋势折线图。

  5. 执行SQL成功后,该执行结果可以变量的形式被其他SQLCell引用。同时可以自定义变量的名称。

    例如,SQL 查询结果自动生成变量名 SQL_949364,在 Python 代码单元中执行 SQL_RES=SQL_949364 即可将结果赋值给自定义变量 SQL_RES,返回值为 pandas DataFrame 格式。

  6. 预测数据变化趋势。

    1. 引入Python机器学习包,单击执行按钮进行安装。如下为示例Code。

      pip install pandas numpy matplotlib scikit-Learn
    2. 引入包成功后,输入可预测数据、可视化形式展示数据的Python代码。

下一步操作

发布AI Agent

常见问题

Q:哪些用户可以查看Notebook中生成的文档?

A:目前只允许同一租户下的用户,并且是该项目空间的成员才能查看。如果目标用户不在当前租户内,需要将其添加到与项目创建者相同的租户,并将其添加为项目成员。