玩转MaxCompute SQL! 30分钟搞定数据分析挖掘

简介: 本教程将指导开发者通过MaxCompute SQL分析,快速体验MaxCompute产品,完成开通、执行SQL语句查询数据。无需进行数据同步,可直接上手体验数据分析。

用MaxCompute在数据里面挖呀挖呀挖,写花样的sql分析花样的数!云原生大数据计算服务 MaxCompute 是企业级Serverless智能数仓,向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。

本教程将指导开发者通过MaxCompute SQL分析,快速体验MaxCompute产品,完成开通、执行SQL语句查询数据。无需进行数据同步,可直接上手体验数据分析。


第一步:领取免费试用

新用户点击领取MaxCompute 免费试用资源,个人认证用户可领取包含500CU*H计算抵扣包,100GB存储抵扣包,企业认证用户可领取包含5000CU*H计算抵扣包,100GB存储抵扣包。

文1..png

注:若您的按钮显示“无试用资格”,可能是以下原因导致:

1)您的账号需要完成个人实名认证或企业认证;

2)同一用户仅能对同一产品申请试用一次,建议检查下是否因为有同人注册账号已经参与过活动,导致对应账号无法试用;

3)历史未付费购买过该试用产品,如有过购买记录则无法再试用

如您此前已购买开通过MaxCompute产品,无法领取免费试用,可开通MaxCompute按量付费闲时版来进行数据分析,同等作业类型的计算费用与按量付费标准版相比,至高可节省2/3,点此处开通及了解计费说明

第二步:创建MaxCompute项目

进入MaxCompute控制台,左上角【可用区】选择华东2(上海),点击左侧导航栏【项目管理】,选择【新建项目】。

截屏2023-09-20 14.33.38.png

项目配置如下所示,注意项目名称有可能和其他人项目名称重复,如收到提示,请更换项目名称。

参数

说明

项目名称

自定义项目名称。本教程设置为jlcs。【扩展知识】:项目名称需全局唯一,如果界面提示您项目名称已存在,您可根据提示修改项目名称。

计算资源付费类型

本教程选择:按量付费【注意】您通过免费试用选购的资源抵扣包仅可用于抵扣后付费资源消耗,本教程选择“按量付费”。

默认Quota

用于实现计算资源分配。本教程选择:

  • 领取免费试用用户-选择【默认后付费Quota】
  • 开通按量付费闲时版用户-选择【
    os_SpotQuota】

单SQL消费限制

本教程不设置。本参数为单SQL消费的最高阈值。单位:扫描量(GB)*复杂度。非必填项,当选择按量付费计费类型时建议设置,可以避免非预期的单SQL消费过高。同时也建议配置实时消费监控告警,多方位监控限制消费超出预期,详情请参见消费监控告警

数据类型

MaxCompute数据类型包含1.0数据类型2.0数据类型Hive兼容类型本教程选择:2.0数据类型

是否加密

指定创建的MaxCompute项目是否需要开启数据加密功能。更多数据加密信息,请参见数据加密

本教程选择:不加密

截屏2023-09-20 14.35.07.png

第三步:连接公开数据集

MaxComputeSQL内置多个公开数据集,您可以通过MaxComputeSQL分析连接获取到公开数据集中的表,并查询这些表,以便快速试用MaxCompute。

此步骤现在不用在控制台操作,后续在写SQL会用到。

MaxCompute开放的公开数据集类别包括:

  • Github公开事件数据
  • 国家统计数据
  • TPC性能测试数据
  • 数字商业类数据
  • 生活服务类数据
  • 金融股票类数据

所有的数据均存储在MaxCompute产品的公开项目BIGDATA_PUBLIC_DATASET的不同Schema中。使用公开数据集操作详见文档


第四步:SQL分析页面配置

  1. 在左侧导航栏单击工作区>SQL分析(Beta),进入SQL分析页面。
  2. 单击左侧放大镜上方图标,选择公共数据集DEMO中的样例文件或者自行在SQL代码编辑框输入SQL。

截屏2023-09-20 14.51.34.png

  1. 单击运行参数配置,配置如下参数:
  • 项目:必选项,指定该SQL在哪个项目内执行,因此需要选择当前账号有create instance权限的项目。
  • 计算配额:非必选,即实现作业级别指定Quota。如果要选择,则需要选择当前账号有对应usage权限的Quota;如果不选择,则SQL会在项目配置的默认计算Quota里执行。

image.png

  1. 单击运行,在结果页签查看运行结果并进行可视化分析。

第五步:开启SQL分析

以下提供了基于github公开数据集的Query样例及分析结果,欢迎各位开发者来进行数据分析,或者尝试基于MaxCompute内置的其他公开数据集自己写一些SQL,来实现自己想要的数据分析。

探索开源数据库

查看过去5年(2018~2022)最受欢迎的前十开源数据库项目

  • Query样例:
SET odps.namespace.schema = TRUE;
SELECT dws.repo_id AS repo_id,
 repos.name AS repo_name,
 SUM(dws.stars) AS stars
FROM bigdata_public_dataset.github_events.dws_overview_by_repo_month dws
JOIN bigdata_public_dataset.github_events.db_repos repos ON dws.repo_id = repos.id
WHERE MONTH >= '2018-01' AND MONTH <='2022-12'
GROUP BY dws.repo_id,
 repos.name
ORDER BY stars DESC LIMIT 10;
  • 分析结果:过去5年开源数据库项目中elasticsearch最受欢迎,其次是redisprometheus
  • image.png

查看过去5年(2018~2022)受欢迎Top10开源数据库项目排行榜变化

  • Query样例:
SET odps.namespace.schema = TRUE;
SET odps.sql.validate.orderby.limit=FALSE;
 WITH tmp as
 (SELECT dws.repo_id AS repo_id, repos.name AS repo_name, SUM(dws.stars) AS stars, SUBSTR(MONTH,1,4) AS YEAR, row_number() over (partition BY SUBSTR(MONTH,1,4)
 ORDER BY SUM(dws.stars) DESC) AS ranknum
 FROM bigdata_public_dataset.github_events.dws_overview_by_repo_month dws
 JOIN bigdata_public_dataset.github_events.db_repos repos ON dws.repo_id = repos.id
 WHERE MONTH>='2018-01'
 GROUP BY dws.repo_id, repos.name,SUBSTR(MONTH,1,4))
SELECT repo_id,
 repo_name,
 stars,
 ranknum,
 YEAR
FROM tmp
WHERE YEAR<=2022
 AND ranknum<=10
ORDER BY YEAR ASC,ranknum ASC;
  • 分析结果:在过去5年,各开源数据库在开发者心中Top10的地位此起彼伏,其中clickhouse是排名上升最快的项目,从2018年第十名迅速升至2021年的第一名,于2022年被稳步上升的redis超越。反观taosdata/TDengine在2019年排名第一,短短一年时间下降至第九名。
  • image.png

查看过去5年(2018~2022)最受欢迎的前十开源数据库项目获星按月成长趋势

  • Query样例:
set odps.namespace.schema = true;
set odps.sql.validate.orderby.limit=false;
WITH top_10_repos AS (
 SELECT
 dws.repo_id as repo_id, 
 repos.name as repo_name, 
 SUM(dws.stars) as stars
 FROM bigdata_public_dataset.github_events.dws_overview_by_repo_month dws
 join bigdata_public_dataset.github_events.db_repos repos on dws.repo_id = repos.id
 where month >= '2018-01' AND MONTH <='2022-12'
 group by dws.repo_id, repos.name
 ORDER BY stars DESC
 LIMIT 10
),
tmp AS (
 SELECT
 month,
 repo_id,
 stars,
 SUM(stars) OVER (partition by repo_id ORDER BY month ASC ) AS total_stars
 FROM bigdata_public_dataset.github_events.dws_overview_by_repo_month
 where month >= '2015-01' and stars is not null
 and repo_id in (select repo_id from top_10_repos)
 group by repo_id,month,stars
 ORDER BY month ASC,repo_id)
SELECT
 tmp.month as month,
 top_10_repos.repo_name as repo_name,
 tmp.total_stars as total_stars
 from tmp
 join top_10_repos ON top_10_repos.repo_id = tmp.repo_id
 group by month,repo_name,total_stars
 ORDER BY month ASC,repo_name
;
  • 分析结果:Top10开源数据库项目中elasticsearch一直是最受欢迎的开源数据库,clickhouse自2021年增速较快。
  • image.png

哪些数据库在2023年上半年最受欢迎

  • Query样例:
set odps.namespace.schema = true;
SELECT
 repos.name AS repo_name,
 sum(dws.stars) AS stars
FROM bigdata_public_dataset.github_events.dws_overview_by_repo_month dws
JOIN bigdata_public_dataset.github_events.db_repos repos ON repos.id = dws.repo_id
WHERE month >= '2023-01' AND month <= '2023-06'
GROUP BY repo_name
ORDER BY stars DESC
LIMIT 10;
  • 分析结果:clickhouse数据库在2023年上半年最受欢迎,其次是prometheusredis
  • image.png

哪些数据库在2023年上半年保持活跃的维护与更新

  • Query样例:
set odps.namespace.schema = true;
SELECT
 repos.name AS repo_name,
 COUNT(dwd.id) AS num
FROM bigdata_public_dataset.github_events.dwd_github_events_odps dwd
 JOIN bigdata_public_dataset.github_events.db_repos repos ON repos.id = dwd.repo_id
WHERE type = 'PullRequestEvent'
 AND ds>='2023-01-01' and ds<='2023-06-30'
 AND action = 'opened'
GROUP BY repos.name
ORDER BY num DESC
LIMIT 10;
  • 分析结果:在2023上半年,StarRocks保持最活跃的维护与更新(定义开启PullRequest为项目活跃的表现)。
  • image.png

2023年上半年最活跃的开源数据库项目中主要的个人贡献者是谁

  • Query样例:
SET odps.namespace.schema=true; 
WITH a AS 
(
 SELECT repo_id
 ,repo_name
 ,actor_id
 ,actor_login
 ,COUNT(*) AS contribution
 ,ds
 FROM bigdata_public_dataset.github_events.dwd_github_events_odps
 WHERE ds >='2021-01-01' and ds<='2021-12-31'
 AND (
 (
 type = 'PullRequestEvent'
 AND action = 'opened'
 )
 OR (
 type = 'IssuesEvent'
 AND action = 'opened'
 )
 OR (
 type = 'IssueCommentEvent'
 AND action = 'created'
 )
 OR (
 type = 'PullRequestReviewEvent'
 AND action = 'created'
 )
 OR (
 type = 'PullRequestReviewCommentEvent'
 AND action = 'created'
 )
 OR (
 type = 'PushEvent'
 AND action IS NULL
 )
 )
 GROUP BY repo_id
 ,repo_name
 ,actor_id
 ,actor_login
 ,ds
)
SELECT repo_name
 ,actor_login
 ,SUM(contribution) AS contribution
FROM a
WHERE repo_name = 'StarRocks/starrocks'
AND actor_login NOT LIKE '%[bot]'
AND actor_login NOT LIKE 'cockroach%'
GROUP BY repo_name
 ,actor_login
ORDER BY contribution DESC
LIMIT 10
;
  • 分析结果:在2023年上半年,最活跃的开源数据库项目中主要的个人贡献者是kangkaisen
  • image.png

探索编程语言

统计过去一年使用最多的十个编程语言

  • Query样例:
SET odps.namespace.schema=true; 
SELECT
 language,
 count(*) total
FROM
 bigdata_public_dataset.github_events.dwd_github_events_odps
WHERE
 ds>=date_add(getdate(), -365)
 AND language IS NOT NULL
GROUP BY
 language
ORDER BY
 total DESC
LIMIT 10;
  • 分析结果:使用最多的编程语言是JavaScript,其次是TypeScriptPython等语言。
  • image.png

查看过去5年(2018~2022)最受欢迎的十个编程语言项目

  • Query样例:
SET odps.namespace.schema = TRUE;
SELECT dws.repo_id AS repo_id,
 repos.name AS repo_name,
 SUM(dws.stars) AS stars
FROM bigdata_public_dataset.github_events.dws_overview_by_repo_month dws
JOIN bigdata_public_dataset.github_events.programming_language_repos repos ON dws.repo_id = repos.id
WHERE MONTH >= '2015-01'
GROUP BY dws.repo_id,
 repos.name
ORDER BY stars DESC LIMIT 10;
  • 分析结果:过去五年最受欢迎的编程语言是Go,收获了81,642颗星,其次是TypeScriptNode等语言。
  • image.png

查看过去5年(2018~2022)最受欢迎的十个编程语言项目获星按月成长趋势

  • Query样例:
set odps.namespace.schema = true;
set odps.sql.validate.orderby.limit=false;
WITH top_10_repos AS (
 SELECT
 dws.repo_id as repo_id, 
 repos.name as repo_name, 
 SUM(dws.stars) as stars
 FROM bigdata_public_dataset.github_events.dws_overview_by_repo_by_month dws
 join bigdata_public_dataset.github_events.programming_language_repos repos on dws.repo_id = repos.id
 where month >= '2018-01' and month <='2022-12'
 group by dws.repo_id, repos.name
 ORDER BY stars DESC
 LIMIT 10
),
tmp AS (
 SELECT
 month,
 repo_id,
 stars,
 SUM(stars) OVER (partition by repo_id ORDER BY month ASC ) AS total_stars
 FROM bigdata_public_dataset.github_events.dws_overview_by_repo_by_month
 where month >= '2015-01' and stars is not null
 and repo_id in (select repo_id from top_10_repos)
 group by repo_id,month,stars
 ORDER BY month ASC,repo_id)
SELECT
 tmp.month as month,
 top_10_repos.repo_name as repo_name,
 tmp.total_stars as total_stars
 from tmp
 join top_10_repos ON top_10_repos.repo_id = tmp.repo_id
 group by month,repo_name,total_stars
 ORDER BY month ASC,repo_name
;
  • 分析结果:在过去5年,Go是受欢迎程度增长最快的编程语言。
  • image.png

第六步 资源释放

完成教程后,如果后续您不再使用MaxCompute的话,请及时将MaxCompute资源释放(删除项目),避免不必要的费用产生。

欢迎通过申请链接搜索(钉钉群号:11782920)加入MaxCompute开发者社区钉群与我们沟通交流。

如果您有兴趣,还可以体验更多数据分析可视化相关教程:使用Hologres实时同步分析Github公开数据集】使用DataWorks公共数据集完成可视化增强分析】

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
3月前
|
JSON 数据挖掘 API
结合数据分析工具,深入挖掘淘宝API接口的商业价值
随着电子商务的蓬勃发展,淘宝作为国内领先的电商平台,不仅为消费者提供了便捷的购物环境,同时也为开发者和数据分析师提供了丰富的数据资源。通过有效地调用淘宝API接口获取商品详情,再结合数据分析工具进行深入的数据挖掘,可以为商家、市场分析师及研究人员等带来巨大的商业价值
|
4月前
|
SQL 分布式计算 数据可视化
Spark SQL案例【电商购买数据分析】
Spark SQL案例【电商购买数据分析】
|
4月前
|
SQL 存储 大数据
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
【大数据技术Hadoop+Spark】Hive基础SQL语法DDL、DML、DQL讲解及演示(附SQL语句)
78 0
|
4月前
|
SQL 分布式计算 数据库
【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
【大数据技术Spark】Spark SQL操作Dataframe、读写MySQL、Hive数据库实战(附源码)
102 0
|
4月前
|
SQL 分布式计算 大数据
【大数据技术Hadoop+Spark】Spark SQL、DataFrame、Dataset的讲解及操作演示(图文解释)
【大数据技术Hadoop+Spark】Spark SQL、DataFrame、Dataset的讲解及操作演示(图文解释)
55 0
|
3月前
|
数据挖掘 API
京东商品详情API:数据分析和挖掘以优化销售策略
商品关联分析:通过分析商品之间的关联规则,商家可以发现哪些商品经常一起被购买,从而制定捆绑销售或搭配销售策略,提高客单价和用户满意度。
|
5天前
|
SQL 分布式计算 资源调度
一文解析 ODPS SQL 任务优化方法原理
本文重点尝试从ODPS SQL的逻辑执行计划和Logview中的执行计划出发,分析日常数据研发过程中各种优化方法背后的原理,覆盖了部分调优方法的分析,从知道怎么优化,到为什么这样优化,以及还能怎样优化。
|
4月前
|
SQL 分布式计算 数据挖掘
Spark_Day07:Spark SQL(DataFrame是什么和数据分析(案例讲解))
Spark_Day07:Spark SQL(DataFrame是什么和数据分析(案例讲解))
77 0
|
15天前
|
机器学习/深度学习 数据可视化 数据挖掘
用Python进行健康数据分析:挖掘医疗统计中的信息
【4月更文挑战第12天】Python在医疗健康数据分析中扮演重要角色,具备数据处理、机器学习、可视化及丰富生态的优势。基本流程包括数据获取、预处理、探索、模型选择与训练、评估优化及结果可视化。应用案例包括疾病预测、药物效果分析和医疗资源优化,例如使用RandomForestClassifier进行疾病预测,Logit模型分析药物效果,以及linprog优化医疗资源配置。
|
3月前
|
SQL 数据挖掘 数据库
SQL数据分析实战:从导入到高级查询的完整指南
SQL数据分析实战:从导入到高级查询的完整指南
62 0

相关产品

  • 云原生大数据计算服务 MaxCompute