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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 本教程将指导开发者通过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的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
3月前
|
数据挖掘 PyTorch TensorFlow
|
14天前
|
SQL 算法 大数据
为什么大数据平台会回归SQL
在大数据领域,尽管非结构化数据占据了大数据平台80%以上的存储空间,结构化数据分析依然是核心任务。SQL因其广泛的应用基础和易于上手的特点成为大数据处理的主要语言,各大厂商纷纷支持SQL以提高市场竞争力。然而,SQL在处理复杂计算时表现出的性能和开发效率低下问题日益凸显,如难以充分利用现代硬件能力、复杂SQL优化困难等。为了解决这些问题,出现了像SPL这样的开源计算引擎,它通过提供更高效的开发体验和计算性能,以及对多种数据源的支持,为大数据处理带来了新的解决方案。
|
28天前
|
SQL 存储 算法
比 SQL 快出数量级的大数据计算技术
SQL 是大数据计算中最常用的工具,但在实际应用中,SQL 经常跑得很慢,浪费大量硬件资源。例如,某银行的反洗钱计算在 11 节点的 Vertica 集群上跑了 1.5 小时,而用 SPL 重写后,单机只需 26 秒。类似地,电商漏斗运算和时空碰撞任务在使用 SPL 后,性能也大幅提升。这是因为 SQL 无法写出低复杂度的算法,而 SPL 提供了更强大的数据类型和基础运算,能够实现高效计算。
|
28天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
2月前
|
数据采集 数据挖掘 API
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
在Python数据分析的世界里,Pandas和NumPy无疑是两颗璀璨的明星,它们为数据科学家和工程师提供了强大而灵活的工具集,用于处理、分析和探索数据。今天,我们将一起深入探索这两个库的高级功能,看看它们如何成为数据分析的加速器。
43 1
|
3月前
|
机器学习/深度学习 数据挖掘 大数据
大数据时代的“淘金术”:Python数据分析+深度学习框架实战指南
在大数据时代,数据被视为新财富源泉,而从海量信息中提取价值成为企业竞争的核心。本文通过对比方式探讨如何运用Python数据分析与深度学习框架实现这一目标。Python凭借其强大的数据处理能力及丰富库支持,已成为数据科学家首选工具;而TensorFlow和PyTorch等深度学习框架则为复杂模型构建提供强有力的技术支撑。通过融合Python数据分析与深度学习技术,我们能在各领域中发掘数据的无限潜力。无论是商业分析还是医疗健康,掌握这些技能都将为企业和社会带来巨大价值。
106 6
|
2月前
|
SQL 消息中间件 分布式计算
大数据-143 - ClickHouse 集群 SQL 超详细实践记录!(一)
大数据-143 - ClickHouse 集群 SQL 超详细实践记录!(一)
87 0
|
2月前
|
SQL 大数据
大数据-143 - ClickHouse 集群 SQL 超详细实践记录!(二)
大数据-143 - ClickHouse 集群 SQL 超详细实践记录!(二)
66 0
|
2月前
|
SQL 大数据 API
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
大数据-132 - Flink SQL 基本介绍 与 HelloWorld案例
49 0
|
2月前
|
SQL 分布式计算 大数据
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
57 0

相关产品

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