一、引言
DataWorks是一站式智慧大資料開發治理平臺,深度適配阿里雲MaxCompute、EMR、Hologres、Flink、PAI 等數十種大資料和AI計算服務,為資料倉庫、資料湖、OpenLake湖倉一體、Data+AI解決方案提供全鏈路智慧化的資料整合、大資料AI一體化開發、資料分析與主動式資料資產治理服務,幫助企業進行Data+AI全生命週期資料管理。

二、操作教程
產品開通
建立個人開發環境
應用體驗

,在彈出的SQL Cell中選擇您想執行的大資料引擎
2.點選SQL Cell的請選擇計算資源,在彈出框下選擇要繫結的計算資源,若您在MaxCompute下無資源,則需點選“+繫結計算資源”
SELECT'James'ASname, '25'AS age, 'Hangzhou'AS city;

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

-- @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。
CREATETEMPORARYTABLE datagen_source(
randstr VARCHAR
) WITH (
'connector' = 'datagen'-- datagen聯結器
);
--建立臨時結果表print_table。
CREATETEMPORARYTABLE print_table(
randstr VARCHAR
) WITH (
'connector' = 'print', -- print聯結器
'logger' = 'true'-- 控制檯顯示計算結果
);
--將randstr欄位擷取後打印出來。
INSERTINTO print_table
SELECTSUBSTRING(randstr,0,8) from datagen_source;

(二)使用Python進行資料分析
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. 互動式分析
from ipywidgets import interactive,IntSlider
query_age = 20
deff(age):
global query_age
query_age = age
interactive(f, age=IntSlider(value=20, min=1, max=100, step=1, description='查詢年齡:'))

SELECT'${query_age}'AS age;

(三)體驗智慧助手Copilot
1.SQL改寫

,進⼊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'
GROUPBY ds
,spu_id
ORDERBY total_sales DESC
LIMIT10
;
修改SQL,將其結果從列轉置為行,使用unpivot

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
;
解釋這段程式碼

CREATETABLE ods_mbr_user_info
(
idBIGINT
,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'';
為每個字短添加註釋


