专栏名称: 阿里开发者
阿里巴巴官方技术号,关于阿里的技术创新均将呈现于此
目录
相关文章推荐
海外独角兽  ·  Decagon:用 AI Agent ... ·  2 天前  
阿里开发者  ·  Mysql索引学习笔记 ·  3 天前  
51好读  ›  专栏  ›  阿里开发者

轻松搞定,数据开发与分析也能如此简单方便!

阿里开发者  · 公众号  · 科技公司  · 2025-01-24 08:30

正文

一、引言

DataWorks是一站式智能大数据开发治理平台,深度适配阿里云MaxCompute、EMR、Hologres、Flink、PAI 等数十种大数据和AI计算服务,为数据仓库、数据湖、OpenLake湖仓一体、Data+AI解决方案提供全链路智能化的数据集成、大数据AI一体化开发、数据分析与主动式数据资产治理服务,帮助企业进行Data+AI全生命周期数据管理。


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



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

二、操作教程


产品开通

1.请先确保具有DataWork产品,若无该产品可前往官网按需购买开通;按需选择地域:华东1(上海)。
2.进入DataWorks产品控制台,选择大数据体验下的DataWorks Gallery,点击Notebook快速入门的载入案例。
(https://dataworks.console.aliyun.com)
【操作注意】进入控制台后需要选择刚刚创建资源的对应地域


创建个人开发环境

1.在载入案例弹出框内,点击创建工作空间(若在DataWorks下无工作空间),并填写工作空间名称。若之前没有创建过资源组,则按照指引新建资源组,并绑定到刚刚创建的工作空间上。

2.创建个人开发环境实例,给实例命名,并选择资源组,设定资源配合,最小2CU即可满足实验要求。待个人开发状态显示为运行中。

3.工作空间和个人开发环境实例创建完后,点击确定后进入个人开发空间。并新建Notebook。


应用体验

(一)以MaxCompute为例进行交互式开发
1.点击,在弹出的SQL Cell中选择您想运行的大数据引擎

2.点击SQL Cell的请选择计算资源,在弹出框下选择要绑定的计算资源,若您在MaxCompute下无资源,则需点击“+绑定计算资源”


3.选择资源类型 MaxCompute,并点击绑定计算资源

4.新建MaxCompute项目后进行绑定

5.输入以下SQL命令
SELECT 'James' AS name, '25' AS age, 'Hangzhou' AS city;
6.再次点击执行SQL,可得到执行结果


7.(可选)同样,在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_tableSELECT SUBSTRING(randstr,0,8) from datagen_source;
输出结果


(二)使用Python进行数据分析

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

在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,IntSliderquery_age = 20def f(age):    global query_age    query_age = ageinteractive(f, age=IntSlider(value=20, min=1, max=100, step=1, description='查询年龄:'))
可得到下面的输出结果


b. 使用SQL引用交互组件中对象进行查询
SELECT '${query_age}' AS age;




(三)体验智能助手Copilot

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

1.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_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_skuFROM default.dwd_ec_trd_create_ord_diWHERE order_date BETWEEN '2024-09-01' AND '2024-09-18'GROUP BY ds,spu_idORDER BY total_sales DESCLIMIT 10;
预设指令:
修改SQL,将其结果从列转置为行,使用unpivot


2.SQL 解释
预设代码:
SELECT season,SUM(tran_amt) AS totalFROM mf_cop_salesPIVOT (SUM(tran_amt) FOR season IN ('Q1' AS spring,'Q2' AS summer,'Q3' AS autumn,'Q4' AS winter))AS pivot_tablel;
预设指令:
解释这段代码


3.生成注释
预设代码:
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 '';
预设指令:
为每个字短添加注释


4.智能建表
在Data Studio⻚⾯,单击左侧⼀级菜单栏中的数据⽬录,在数据⽬录列表中,选择任意⼀个数据⽬录,新建表,进⼊新建表的功能界⾯,单击⻚⾯顶部中的Copilot 建表,进⼊Copilot 建表功能界⾯,在输⼊框中,输⼊您的指令,单击发送,等待Copilot返回结果。




点击阅读原文,体验DataWorks智能交互式数据开发与分析之旅,完成指定任务,可获得新年礼物,先到先得~