玩转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公共数据集完成可视化增强分析】

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
8月前
|
数据采集 人工智能 算法
数据没洗干净,分析全白干:聊聊大数据里的“洗澡水”工程
数据没洗干净,分析全白干:聊聊大数据里的“洗澡水”工程
265 1
|
5月前
|
SQL 存储 分布式计算
【万字长文,建议收藏】《高性能ODPS SQL章法》——用古人智慧驾驭大数据战场
本文旨在帮助非专业数据研发但是有高频ODPS使用需求的同学们(如数分、算法、产品等)能够快速上手ODPS查询优化,实现高性能查数看数,避免日常工作中因SQL任务卡壳、失败等情况造成的工作产出delay甚至集群资源稳定性问题。
1273 36
【万字长文,建议收藏】《高性能ODPS SQL章法》——用古人智慧驾驭大数据战场
|
4月前
|
数据可视化 大数据 关系型数据库
基于python大数据技术的医疗数据分析与研究
在数字化时代,医疗数据呈爆炸式增长,涵盖患者信息、检查指标、生活方式等。大数据技术助力疾病预测、资源优化与智慧医疗发展,结合Python、MySQL与B/S架构,推动医疗系统高效实现。
|
4月前
|
机器学习/深度学习 搜索推荐 数据挖掘
数据分析真能让音乐产业更好听吗?——聊聊大数据在音乐里的那些事
数据分析真能让音乐产业更好听吗?——聊聊大数据在音乐里的那些事
209 9
|
5月前
|
数据可视化 数据挖掘 大数据
基于python大数据的水文数据分析可视化系统
本研究针对水文数据分析中的整合难、分析单一和可视化不足等问题,提出构建基于Python的水文数据分析可视化系统。通过整合多源数据,结合大数据、云计算与人工智能技术,实现水文数据的高效处理、深度挖掘与直观展示,为水资源管理、防洪减灾和生态保护提供科学决策支持,具有重要的应用价值和社会意义。
|
6月前
|
存储 数据挖掘 大数据
基于python大数据的用户行为数据分析系统
本系统基于Python大数据技术,深入研究用户行为数据分析,结合Pandas、NumPy等工具提升数据处理效率,利用B/S架构与MySQL数据库实现高效存储与访问。研究涵盖技术背景、学术与商业意义、国内外研究现状及PyCharm、Python语言等关键技术,助力企业精准营销与产品优化,具有广泛的应用前景与社会价值。
|
6月前
|
SQL 分布式计算 大数据
SparkSQL 入门指南:小白也能懂的大数据 SQL 处理神器
在大数据处理的领域,SparkSQL 是一种非常强大的工具,它可以让开发人员以 SQL 的方式处理和查询大规模数据集。SparkSQL 集成了 SQL 查询引擎和 Spark 的分布式计算引擎,使得我们可以在分布式环境下执行 SQL 查询,并能利用 Spark 的强大计算能力进行数据分析。
|
7月前
|
机器学习/深度学习 Java 大数据
Java 大视界 -- Java 大数据在智能政务公共资源交易数据分析与监管中的应用(202)
本篇文章深入探讨了 Java 大数据在智能政务公共资源交易监管中的创新应用。通过构建高效的数据采集、智能分析与可视化决策系统,Java 大数据技术成功破解了传统监管中的数据孤岛、效率低下和监管滞后等难题,为公共资源交易打造了“智慧卫士”,助力政务监管迈向智能化、精准化新时代。
|
7月前
|
数据采集 自然语言处理 分布式计算
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合

热门文章

最新文章

相关产品

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