DataWorks是一站式智能大数据开发治理平台,深度适配阿里云MaxCompute、EMR、Hologres、Flink、PAI 等数十种大数据和AI计算服务,为数据仓库、数据湖、OpenLake湖仓一体、Data+AI解决方案提供全链路智能化的数据集成、大数据AI一体化开发、数据分析与主动式数据资产治理服务,帮助企业进行Data+AI全生命周期数据管理。自2009年以来,DataWorks以阿里巴巴集团大数据建设方法论为基础,不断沉淀数据治理最佳实践,现已广泛应用于包括政务、金融、零售、互联网、汽车、制造等众多行业,数以万计的客户信赖并选择DataWorks进行数字化升级和价值创造。
一、基础信息
1.实验信息
实验名称:DataWorks智能交互式数据开发与分析之旅
实验级别:入门
实验时长:1小时
2.实验目的
1、掌握阿里云数据开发分析工具DataWorks Notebook的使用;
2、掌握阿里云 DataWorks智能助手 Copilot的使用;
3、掌握多引擎交互式数据开发数据探索分析的基本操作;
3.实验环境
实验平台:阿里云云起实验室。
云产品及软件:大数据开发治理平台DataWorks、云原生大数据计算服务MaxCompute。
4.前置技能
熟悉大数据开发治理平台DataWorks、云原生大数据计算服务MaxCompute的基本操作和理论知识。
大数据开发治理平台DataWorks 准备工作。
云原生大数据计算服务MaxCompute 准备工作含创建项目。
5.实验介绍
DataWorks Notebook是智能化交互式数据开发和分析工具,能够面向多种数据引擎开展SQL或Python分析,即时运行或调试代码,获取可视化数据结果。同时,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,体验智能的数据开发与分析体验。
二、实验步骤
1.开通DataWorks
- 开通DataWorks
进入大数据开发治理平台DataWorks产品详情页,如未登陆需要登陆阿里云账号,点击立即购买按钮进入DataWorks购买页。
- 按需选择地域:华东1(上海)
开通会默认开通DataWorks按量付费、DataWorks基础版1个月、Dataworks资源组按量付费、MaxCompute按量付费
- 以上配置都选择完成后,点击确定订单并支付,进入DataWorks产品控制台。
提示:您也可以在开通后购买Serverless资源组抵扣包,以抵扣实验所产生的资源组按量费用,抵扣包规格300CU·H,有效期3个月,限时7折优惠,单用户限领1次,购买地址>>
选择大数据体验下的DataWorks Gallery,点击Notebook快速入门的载入案例
【操作注意】进入控制台后需要选择刚刚创建资源的对应地域
2.创建个人开发环境
- 在载入案例弹出框内,点击创建工作空间(若在DataWorks下无工作空间),并填写工作空间名称
- 若之前没有创建过资源组,则按照指引新建资源组,并绑定到刚刚创建的工作空间上。
- 创建个人开发环境实例,给实例命名,并选择资源组,设定资源配合,最小2CU即可满足实验要求。
- 填写完实例信息后点击确定,显示个人开发环境创建中
- 创建完成后,状态显示运行中
- 工作空间和个人开发环境实例创建完后,点击确定后进入个人开发空间
- 新建Notebook
方式一:在个人目录下新建Notebook
方式二:在项目目录新建Notebook
并为Notebook命名
- 创建完后可看到如下界面
3.以MaxCompute为例进行交互式开发
- 点击 ,在弹出的SQL Cell中选择您想运行的大数据引擎,以MaxCompute为例
- 如提示运行前请选择计算资源
- 可点击SQL Cell的请选择计算资源,在弹出框下选择要绑定的计算资源,若您在MaxCompute下无资源,则需点击“+绑定计算资源”
- 选择资源类型 MaxCompute,并点击绑定计算资源
- 新建MaxCompute项目后进行绑定
- 输入以下SQL命令
SELECT 'James' AS name, '25' AS age, 'Hangzhou' AS city;
- 再次点击执行SQL,可得到执行结果
- (可选)同样,在Notebook中,支持新增各种SQL Cell,面向多样化大数据引擎进行数据开发与分析。您可以选择其他大数据引擎进行开发分析,以下是SQL示例。
注意:如果您选择其他大数据引擎进行开发分析,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
a. Hologres SQL Cell
SELECT 'James' AS name, '25' AS age, 'Hangzhou' AS city;
b. EMR Spark SQL Cell
SELECT 'James' AS name, '25' AS age, 'Hangzhou' AS city;
c. StarRocks SQL Cell
SELECT 'James' AS name, '25' AS age, 'Hangzhou' AS city;
d. 以上输入的输出结果均为
e. 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;
输出结果
4.使用Python进行数据分析
1. 在Notebook中,能够新增Python Cell,编写Python代码进行数据处理和开发等。
- 点击+Python,唤出Python Cell
- 在Python Cell中输入示例代码
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()
- 运行后即可获得示例柱状图
2. 交互式分析
在Notebook中,您可以使用Python封装ipywidgets交互组件,并在SQL中引用该交互组件的变量,以实现灵活的交互式查询。
a. 在Python Cell中输入以下内容,使用Python构建ipywidgest交互组件
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='查询年龄:'))
可得到下面的输出结果
b. 使用SQL引用交互组件中对象进行查询
SELECT '${query_age}' AS age;
5.体验智能助手Copilot
DataWorks Copilot⽀持根据⾃然语⾔对已有代码进⾏纠错、注释⽣成及代码解释等操作。同时,还⽀持为您解答SQL相关的语法及函数问题。
- SQL改写
在代码编辑器中,输⼊并选中下面的代码,单击顶部菜单栏右侧的Copilot ,进⼊Copilot Chat功能界⾯,在Chat输⼊框中,输⼊您的改写要求,单击发送,等待Copilot返回结果。
预设代码:
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_p er_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 ;
预设指令:
修改SQL,将其结果从列转置为行,使用unpivot
- SQL 解释
预设代码:
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 ;
预设指令:
解释这段代码
- 生成注释
预设代码:
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 '';
预设指令:
为每个字短添加注释
- 智能建表
在Data Studio⻚⾯,单击左侧⼀级菜单栏中的数据⽬录,在数据⽬录列表中,选择任意⼀个数据⽬录,新建表,进⼊新建表的功能界⾯,单击⻚⾯顶部中的Copilot 建表,进⼊Copilot 建表功能界⾯,在输⼊框中,输⼊您的指令,单击发送,等待Copilot返回结果。
以上,所有的实验内容就操作完成了。