DataWorks智能交互式数据开发与分析之旅

更新时间:
复制为 MD 格式

本次实验将带您进行DataWorks Notebook的快速入门,包含:Notebook新建、多引擎SQL开发与分析、Python开发、交互式分析等,同时,使用DataWorks Copilot体验智能数据开发。

场景简介

DataWorks Notebook是智能化交互式数据开发和分析工具,能够面向多种数据引擎开展SQLPython分析,即时运行或调试代码,获取可视化数据结果。同时,DataWorks Notebook能够与其他任务节点混合编排为工作流,提交至调度系统运行,助力复杂业务场景的灵活实现。DataWorks Copilot是您在DataWorks的智能助手,当前阶段可根据自然语言快速转换为需要的SQL命令,包括SQL生成、SQL改写、SQL纠错、生成注释等,帮助您轻松高效地完成数据ETL及数据分析工作。

本次实验将带您进行DataWorks Notebook的快速入门,包含:Notebook新建、多引擎SQL开发与分析、Python开发、交互式分析等,同时,使用DataWorks Copilot体验智能数据开发,使用请按照下方步骤引导进行操作,开启交互式数据探索之旅。

实验背景

在本次DataWorks智能交互式数据开发与分析实验中,将使用数据开发Data Studio中的Notebook开发环境,创建一个独享的个人开发环境实例,并在该实例上,连接并使用MaxComputede等计算资源,进行SQL数据开发,也可以连接并使用本地的Python环境进行数据开发与分析。同时在此过程中,可使用DataWorks智能助手Copilot,体验智能的数据开发与分析体验。

image

体验目的

  • 掌握阿里云数据开发分析工具DataWorks Notebook的使用;

  • 掌握阿里云DataWorks智能助手Copilot的使用;

  • 掌握多引擎交互式数据开发数据探索分析的基本操作;

背景知识

本场景主要涉及以下云产品和服务:

  • 大数据开发治理平台DataWorks

    DataWorks是一站式智能大数据开发治理平台,内置阿里巴巴15年大数据建设方法论,深度适配阿里云MaxCompute、EMR、Hologres、Flink、PAI等数十种大数据和AI计算服务,为数仓、数据湖、OpenLake湖仓一体数据架构提供智能化ETL开发、数据分析与主动式数据资产治理服务,助力”Data+AI“全生命周期的数据管理。

  • 大数据计算服务MaxCompute

    MaxCompute是面向分析的企业级SaaS模式云数据仓库,以Serverless架构提供快速、全托管的在线数据仓库服务,消除了传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您可以经济并高效的分析处理海量数据。数以万计的企业正基于MaxCompute进行数据计算与分析,将数据高效转换为业务洞察。

前提条件

云起实验室将在您的账号下开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。

重要

所以本实验预计1个小时产生费用1元(仅限Copilot在公测阶段)。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。

进入实操前,请确保阿里云账号满足以下条件:

  • 已通过实名认证并且账户余额充足。

  • 云资源产生的费用需您自行承担,云起实验室不会向您征收额外费用。

  • 所有实验操作将保留至您的账号,请谨慎操作。

  • 实操结束后,您可以选择继续付费保留资源,或参考手册自动/手动释放资源。

创建专有网络VPC和交换机

  1. 在实验页面,勾我已阅读并同意《阿里云云起实践平台服务协议》后,单击进入实操

    image

  2. 登录专有网络管理控制台

  3. 在左侧导航栏中,单击专有网络

    image

  4. 专有网络页⾯,在右上角切换⾄华东1(杭州)地域,单击创建专有网络

    Image 29.png

  5. 创建专有网络页⾯,根据下方参数说明配置1个专有网络(VPC)和1台交换机,然后单击确定。更多关于创建专有网络和交换机信息,详情请参见创建和管理专有网络

    配置项

    说明

    专有网络

    地域

    选择华东2(上海)。

    名称

    自定义名称。

    IPv4网段

    选择手动输入IPv4地址段。

    输入IPv4网段

    输入IPv4网段,建议您使用RFC私网地址作为专有网络的网段如10.0.0.0/8172.16.0.0/12192.168.0.0/16

    交换机

    名称

    自定义名称。

    可用区

    选择上海可用区B。

    IPv4网段

    使用默认的IPv4网段即可。

    image

    image

  6. 创建专有网络页面,您可查看到创建的专有网络VPC和交换机的ID实例名称等信息。

    image

开通DataWorks

说明

如果您已开通华东2(上海)地域的DataWorksMaxCompute,可跳过此章节。

  1. 进入大数据开发治理平台DataWorks控制台,选择地域为华东2(上海),单击0元组合购买

    image

  2. 进入DataWorks购买页,按照如下参数选择后,单击确认订单并支付

    说明

    该步骤会同时开通上海地域的MaxCompute。

    配置项

    说明

    地域

    选择华东2(上海)。

    DataWorks版本

    选择基础版。

    购买时长

    1个月,可根据自身需求选择是否到期自动续费。

    DataWork资源组

    自定义资源组名称。

    专有网络(VPC)

    选择刚刚创建的专有网络。

    交换机(V-Switch)

    选择刚刚创建的交换机。

    服务关联角色

    若未创建,需单击创建按钮进行创建。

    image

    image

  3. 资源校验对话框中,单击下一步:价格清单。在价格清单对话框中,单击下一步:创建订单

    image

    image

  4. 在订单支付页面,单击支付

    image

准备工作

  1. 创建MaxCompute项目。

    1. 进入MaxCompute控制台

    2. 在左侧导航栏选择项目管理,地域选择为华东2(上海),单击新建项目。在新增项目对话框中输入项目名称计算资源付费类型选择按量付费默认Quta可根据自身情况选择(本场景使用的是开通MaxCompute时自动购买的os_默认后付费Quota_p),单击确定

      image

  2. 创建DataWorks工作空间。

    1. 进入DataWorks产品控制台

    2. 在左侧导航栏中,单击工作空间 > 创建工作空间

      image

    3. 在创建工作空间页面,输入工作空间名称,按照如下图配置后单击创建工作空间

      image

    4. 绑定计算资源页面单击下一步后,单击完成

  3. 创建资源组。

    1. 在左侧导航栏中,单击资源组 > 独享资源组 > 新建资源组

      image

    2. 资源组购买页,按照如下参数选择后,单击立即购买立即开通

      配置项

      说明

      地域和可用区

      华东2(上海)

      付费模式

      按量付费

      资源组名称

      自定义资源组名称

      专有网络(VPC)

      选择刚刚创建的专有网络。

      交换机(V-Switch)

      选择刚刚创建的交换机。

      服务关联角色

      若未创建,需单击创建按钮进行创建。

      image

    3. 资源组列表页面,等待目标资源组的状态变为运行中,单击绑定工作空间

      image

    4. 绑定工作空间页面,找到目标工作空间单击右侧的绑定

      image

创建个人开发环境

  1. 在左侧导航栏选择大数据体验 > DataWorks Gallery,单击DataWorks Notebook快速入门载入案例

    image

  2. 载入案例对话框中,选择刚刚创建的工作空间。在实例下拉框中,单击创建实例

    image

  3. 新建实例页面,创建个人开发环境实例,设置实例名称,并选择刚刚创建的资源组,设定资源配额,最小2CU即可满足实验要求。

    说明

    当不需要开发和分析时,请及时在新版数据开发页 > 个人开发环境 > 管理环境中,手动单击停止。单击停止后,资源组资源将不再继续消耗。

    image

  4. 单击确定后,等待实例状态运行中

    image

  5. 返回大数据体验 > DataWorks Gallery页面,在载入案例对话框中,选择刚刚创建的工作空间实例,单击确认后进入个人开发空间。

    image

    image

  6. 新建Notebook。

    1. 方法一:在个人目录中,单击新建Notebook

      image

    2. 方法二:在项目目录,选择 > 新建节点 > Notebook后,输入文件名。

      image

      image

MaxCompute为例进行交互式开发

  1. 单击image,在弹出的SQL Cell中选择您想运行的大数据引擎,本场景以MaxCompute为例。

    image

  2. 运行前需要选择计算资源,可单击SQL Cell右侧的请选择计算资源 > +绑定计算资源

    image

  3. 在绑定计算资源面板,单击绑定计算资源,选择MaxCompute

    image

  4. 绑定MaxCompute计算资源面板,根据如下参数填写后,单击确认

    配置项

    说明

    MaxCompute项目

    选择前面步骤中创建的MaxCompute项目。

    默认访问身份

    阿里云主账号

    Endpoint

    默认

    计算资源实例名称

    默认

    image

    创建成功后如下图所示。

    image

  5. 返回Notebook文件编辑页,输入如下命令后,单击image执行按钮。

    SELECT 'James' AS name, '25' AS age, 'Hangzhou' AS city;

    image

  6. (可选)同样,在Notebook中,支持新增各种SQL Cell,面向多样化大数据引擎进行数据开发与分析。您可以选择其他大数据引擎进行开发分析,以下是SQL示例。

    重要

    如果您选择其他大数据引擎进行开发分析,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。

    1. Hologres SQL Cell。

      SELECT 'James' AS name, '25' AS age, 'Hangzhou' AS city;
    2. EMR Spark SQL Cell。

      SELECT 'James' AS name, '25' AS age, 'Hangzhou' AS city;
    3. StarRocks SQL Cell。

      SELECT 'James' AS name, '25' AS age, 'Hangzhou' AS city;
    4. 以上三条SQL Cell输出结果如图所示。

      image

    5. Flink SQL Cell。

      -- @conf name = flink_vvp_job_quick_start
      -- @conf engineVersion=vvr-8.0.8-flink-1.17
      -- @conf flinkConf."execution.checkpointing.interval"=10second
      -- @conf flinkConf."taskmanager.numberOfTaskSlots"=4
      -- @conf flinkConf."table.exec.state.ttl"=1hour
      -- @conf flinkConf."execution.checkpointing.min-pause"=10second
      -- @conf streamingResourceSetting.resourceSettingMode=BASIC
      -- @conf streamingResourceSetting.basicResourceSetting.parallelism=4
      -- @conf streamingResourceSetting.basicResourceSetting.taskmanagerResourceSettingSpec.memory=4GiB
      -- @conf streamingResourceSetting.basicResourceSetting.taskmanagerResourceSettingSpec.cpu=1
      -- @conf streamingResourceSetting.basicResourceSetting.jobmanagerResourceSettingSpec.memory=4GiB
      -- @conf streamingResourceSetting.basicResourceSetting.jobmanagerResourceSettingSpec.cpu=1
      
      --创建临时源表datagen_source。
      CREATE TEMPORARY TABLE datagen_source(
        randstr VARCHAR
      ) WITH (
        'connector' = 'datagen' -- datagen连接器
      );
      
      --创建临时结果表print_table。
      CREATE TEMPORARY TABLE print_table(
        randstr  VARCHAR
      ) WITH (
        'connector' = 'print',   -- print连接器
        'logger' = 'true'        -- 控制台显示计算结果
      );
      
      --将randstr字段截取后打印出来。
      INSERT INTO print_table
      SELECT SUBSTRING(randstr,0,8) from datagen_source;

      输出结果如图所示。

      image

使用Python进行数据分析

  1. Notebook中,能够新增Python Cell,编写Python代码进行数据处理和开发等。

    1. 单击+Python,唤出Python Cell。

      image

    2. Python Cell中输入示例代码,单击image执行按钮。

      import matplotlib.pyplot as plt
      
      # 数据准备
      categories = ['Category A', 'Category B', 'Category C', 'Category D']
      values = [23, 45, 17, 56]
      
      # 创建柱状图
      plt.figure(figsize=(10, 6))  # 设置图形大小
      plt.bar(categories, values, color=['blue', 'green', 'red', 'purple'])  # 绘制柱状图,可自定义颜色
      
      # 添加标题和轴标签
      plt.title('Sample Bar Chart')
      plt.xlabel('Categories')
      plt.ylabel('Values')
      
      # 显示数值
      for i in range(len(values)):
          plt.text(i, values[i], str(values[i]), ha='center', va='bottom')  # 在每个柱子下方显示数值
      
      # 显示图形
      plt.show()

      image

      运行后即可获得如图所示的柱状图。

      image

  2. 交互式分析。

    Notebook中,您可以使用Python封装ipywidgets交互组件,并在SQL中引用该交互组件的变量,以实现灵活的交互式查询。

    1. Python Cell中执行入以下内容,构建ipywidgets交互组件。

      from ipywidgets import interactive,IntSlider
      query_age = 20
      def f(age):
          global query_age
          query_age = age
      interactive(f, age=IntSlider(value=20, min=1, max=100, step=1, description='查询年龄:'))

    2. 执行如下命令,使用SQL引用交互组件中对象进行查询

      SELECT '${query_age}' AS age;

      image

体验智能助手Copilot

DataWorks Copilot⽀持根据⾃然语⾔对已有代码进⾏纠错、注释⽣成及代码解释等操作。同时,还⽀持为您解答SQL相关的语法及函数问题。

  1. SQL改写。在代码编辑器中,输⼊并选中下面的代码,单击顶部菜单栏右侧的Copilotimage,进⼊Copilot Chat功能界⾯,在Chat输⼊框中,输⼊您的改写要求,单击发送,等待Copilot返回结果。

    1. 预设代码如下。

      SELECT ds
      ,spu_id
      ,SUM(sales_amt) AS total_sales
      ,COUNT(DISTINCT order_id) AS total_orders
      ,COUNT(DISTINCT sku_id) AS total_skus
      ,COUNT(DISTINCT buyer_id) AS total_buyers
      ,COUNT(DISTINCT buyer_id) / COUNT(DISTINCT order_id) AS avg_buyers_per_order
      ,COUNT(DISTINCT buyer_id) / COUNT(DISTINCT sku_id) AS avg_buyers_per_sku
      ,SUM(sales_amt) / COUNT(DISTINCT order_id) AS avg_sales_per_order
      ,SUM(sales_amt) / COUNT(DISTINCT sku_id) AS avg_sales_per_sku
      FROM default.dwd_ec_trd_create_ord_di
      WHERE order_date BETWEEN '2024-09-01' AND '2024-09-18'
      GROUP BY ds
      ,spu_id
      ORDER BY total_sales DESC
      LIMIT 10
      ;
    2. 预设指令如下。

      修改SQL,将其结果从列转置为行,使用unpivot

      image

  2. SQL解释。在代码编辑器中,输⼊并选中下面的代码,单击顶部菜单栏右侧的Copilotimage,进⼊Copilot Chat功能界⾯,在Chat输⼊框中,输⼊您的改写要求,单击发送,等待Copilot返回结果。

    1. 预设代码如下。

      SELECT season
      ,SUM(tran_amt) AS total
      FROM mf_cop_sales
      PIVOT (SUM(tran_amt) FOR season IN ('Q1' AS spring,'Q2' AS summer,'Q3' AS a
      utumn,'Q4' AS winter))AS pivot_tablel
      ;
    2. 预设指令如下。

      解释这段代码

      image

  3. 生成注释。在代码编辑器中,输⼊并选中下面的代码,右击选择Copilot > 生成注释,进⼊Copilot Chat功能界⾯,在Chat输⼊框中,输⼊您的改写要求,单击image发送,等待Copilot返回结果。

    1. 预设代码如下。

      CREATE TABLE ods_mbr_user_info
      (
      id BIGINT
      ,gmt_create STRING
      ,gmt_modified STRING
      ,id_card_number STRING
      ,id_card_type STRING
      ,is_delete STRING
      ,nick STRING
      ,reg_address STRING
      ,reg_birthdate STRING
      ,reg_city_id STRING
      ,reg_email STRING
      ,reg_fullname STRING
      ,reg_gender STRING
      ,reg_mobile_phone STRING
      ,reg_nation_id STRING
      ,reg_prov_id STRING
      ,user_active_time STRING
      ,user_active_type STRING
      ,user_id BIGINT
      ,user_regdate STRING
      ,user_regip STRING
      ,vip_level STRING
      )
      COMMENT '';
    2. 预设指令如下。

      为每个字段添加注释

      image

      image

  4. 智能建表。在Data Studio⻚⾯,单击左侧⼀级菜单栏中的数据⽬录,在数据⽬录列表中,选择任意⼀个数据⽬录,右键新建 > 新建表。进⼊新建表的功能界⾯,单击页面顶部中的Copilot建表,进⼊Copilot建表功能界⾯。在输⼊框中,输⼊您的指令如会员注册信息表,单击生成并替换,等待Copilot返回结果。

    image

    image

清理资源

  • 在完成实验后,如果无需继续使用资源,请根据以下步骤,先删除相关资源后,再结束实操,否则资源会持续运行产生费用。

    • 删除资源组和工作空间。

      1. 登录DataWorks控制台

      2. 在页面右上角,地域切换至华东2(上海),然后在左侧导航栏中,单击工作空间列表

        image

      3. 工作空间列表页面,找到目标工作空间,单击其右侧操作列下的删除

        image

      4. 在删除工作空间对话框中,勾选我确认该DataWorks空间及其所包含的所有实体将被永久删除,且不可恢复我确认该DataWorks空间对应的AI工作空间将被永久删除,且不可恢复,单击确认

        image

      5. DataWorks控制台左侧导航栏中,单击资源组列表,找到您创建的资源组,选择其右侧操作列下的image > 退订

        image

      6. 退订对话框中,单击确认

        image

    • 删除MaxCompute项目。

      1. 登录MaxCompute管理控制台

      2. 在页面上方的菜单栏中,地域切换至华东2(上海)。在项目管理页面,找到创建的MaxCompute项目,单击其右侧操作列下的删除

        image

      3. 删除项目对话框中,勾选你确认要继续执行删除MaxCompute项目的操作吗,单击确定

        image

    • 删除VPC及交换机。

      1. 登录专有网络

      2. 在页面上方的菜单栏中,地域切换至华东2(上海)

        image

      3. 专有网络页面,找到您创建的VPC,单击其右侧操作列下的删除

        image

      4. 删除专有网络对话框中,勾选强制删除,单击确定

        image

    • 删除相关资源后,单击结束实操。在结束实操对话框中,单击确定

      image

  • 在完成实验后,如果需要继续使用资源,您可跳过释放相关资源的操作,直接单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。

    image