操作手册
【试用教程】基于StarRocks分析世界杯数据
emapreduce
手动配置
25
教程简介
本教程基于历史世界杯数据集,在阿里云EMR Serverless StarRocks上创建StarRocks的数据库、数据表,并使用StarRocks进行数据查询,帮助您快速体验EMR Serverless StarRocks。
EMR Serverless StarRocks是一种全托管服务,可在阿里云上使用开源StarRocks,您可以通过此服务灵活地创建和管理StarRocks实例以及数据。作为兼容MySQL协议的OLAP分析引擎,StarRocks提供了极致的性能和丰富的OLAP场景模型,包括OLAP多维分析、数据湖分析、高并发查询和实时数据分析等功能,使其具有极速响应的优势。更多信息,请参见什么是EMR Serverless StarRocks。
我能学到什么
熟悉查询StarRocks中数据的操作。
初步了解EMR Serverless StarRocks的整体架构。
EMR Serverless StarRocks在OLAP多维分析、实时数据分析、高并发查询、统一分析等热门场景应用。
操作难度 | 中 |
所需时间 | 25分钟 |
使用的阿里云产品 | |
所需费用 | 0元,阿里云EMR Serverless StarRocks试用套餐包括:
说明:试用资源满足任何一个条件(容量或时长)后,涉及到的阿里云产品将正常计费,计费详情请参见Serverless StarRocks计费概述和CLB LCU计费。 |
准备环境和资源
10
开始教程前,请按以下步骤准备环境和资源:
访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。
成功登录后,在产品类别下选择大数据计算>数据湖,在EMR Serverless StarRocks卡片上,单击立即试用。
如果您第一次访问该服务,可能需要进行角色授权。请在弹出的授权请求页面,单击前往RAM进行授权后,单击同意授权,完成自动化角色授权。授权成功后,需返回立即试用页面。
配置教程参数。
完成本教程需要的配置如表格所示,未提及的配置保持默认或按需修改。
配置项
说明
地域
华南1(深圳)
可用区
可用区E
VPC ID
选择您已创建的专有网络。如果没有创建,请参见创建和管理专有网络创建。
vSwitch ID
选择您已创建的虚拟交换机。如果没有创建,请参见创建和管理交换机创建。
版本
Serverless StarRocks已发行版本。
3.1版本支持使用存算分离模式。如果您想使用存算分离功能,请选择3.1版本和存算分离。具体操作,请参见快速使用存算分离版实例。
实例名称
实例名称,长度限制为1~64个字符,仅可使用中文、字母、数字、短划线(-)和下划线(_)。例如,test-emr。
Admin用户密码
自定义密码。
服务协议
选中
单击立即试用,并根据页面提示,完成EMR Serverless StarRocks实例的创建。
实例创建需要约3~5分钟,请耐心等待。3~5分钟后,请在EMR Serverless StarRocks控制台查看创建好的StarRocks实例。
通过SQL Editor连接StarRocks实例
5
在EMR Serverless StarRocks控制台,单击右上角的StarRocks Manager。
在弹出的新建连接对话框中,配置以下信息。
参数
说明
地域
本教程为华南1(深圳)。
实例
选择EMR ServerLess StarRocks试用为您创建好的实例。
连接名称
会自动获取到实例名称。
用户名
默认初始用户名admin。
密码
admin用户的密码。
单击确定。
在左侧导航栏,单击SQL Editor。
创建表并导入数据
5
(可选)配置存算分离实例。
说明如果您按照本示例使用存算分离功能,则需要先执行以下代码配置下存储卷。如果选择的是2.5版本或者使用存算一体功能,则无需执行此步骤。
请将
LOCATIONS
和PROPERTIES
中的变量替换为实际值。
在SQL Editor的查询列表页面,单击
图标,输入以下命令,输入以下SQL语句,单击运行。
CREATE STORAGE VOLUME builtin_storage_volume TYPE = OSS LOCATIONS = ("oss://<your_oss_bucket>/") PROPERTIES ( "aliyun.oss.region" = "<your_region>", "aliyun.oss.endpoint" = "https://oss-<your_region>-internal.aliyuncs.com", "aliyun.oss.access_key" = "yourAccessKeyID", "aliyun.oss.secret_key" = "8mOV8*******************" );
执行以下命令,创建数据库和表。
world_cup_summary表包含了所有21届世界杯赛事(1930-2018)的比赛主办国、前四名队伍、总参赛队伍、总进球数、现场观众人数等汇总信息,包括如下字段:
Year: 举办年份
HostCountry: 举办国家
Winner: 冠军队伍
Second: 亚军队伍
Third: 季军队伍
Fourth: 第四名队伍
GoalsScored: 总进球数
QualifiedTeams: 总参赛队伍数
MatchesPlayed: 总比赛场数
Attendance: 现场观众总人数
HostContinent: 举办国所在洲
WinnerContinent: 冠军国家队所在洲
create database sr_db; create table if not exists sr_db.world_cup_summary( year varchar(20), HostCountry varchar(20), Winner varchar(50), Second varchar(50), Third varchar(50), Fourth varchar(50), GoalsScored bigint, QualifiedTeams bigint, MatchesPlayed bigint, Attendance bigint, HostContinent varchar(50), WinnerContinent varchar(50) ) distributed by hash(Attendance) buckets 2 properties( "replication_num"="1" );
单击上方的运行。
单击数据库区域右上角的
图标,即可看到创建的库表信息。
执行以下命令,写入数据到StarRocks。
insert into sr_db.world_cup_summary values ('1938', 'France', 'Italy', 'Hungary', 'Brazil', 'Sweden', 84, 15, 18, 375700, 'Europe', 'Europe'); insert into sr_db.world_cup_summary values ('1958', 'Sweden', 'Brazil', 'Sweden', 'France', 'Germany', 126, 16, 35, 819810, 'Europe', 'America'); insert into sr_db.world_cup_summary values ('1962', 'Chile', 'Brazil', 'Czechoslovakia', 'Chile', 'Yugoslavia', 89, 16, 32, 893172, 'America', 'America'); insert into sr_db.world_cup_summary values ('1974', 'Germany', 'Germany', 'Netherlands', 'Poland', 'Brazil', 97, 16, 38, 1865753, 'Europe', 'Europe'); insert into sr_db.world_cup_summary values ('1978', 'Argentina', 'Argentina', 'Netherlands', 'Brazil', 'Italy', 102, 16, 38, 1545791, 'America', 'America'); insert into sr_db.world_cup_summary values ('1986', 'Mexico', 'Argentina', 'Germany', 'France', 'Belgium', 132, 24, 52, 2394031, 'America', 'America'); insert into sr_db.world_cup_summary values ('1990', 'Italy', 'Germany', 'Argentina', 'Italy', 'England', 115, 24, 52, 2516215, 'Europe', 'Europe'); insert into sr_db.world_cup_summary values ('1998', 'France', 'France', 'Brazil', 'Croatia', 'Netherlands', 171, 32, 64, 2785100, 'Europe', 'Europe'); insert into sr_db.world_cup_summary values ('2002', 'Korea/Japan', 'Brazil', 'Germany', 'Turkey', 'Korea Republic', 161, 32, 64, 2705197, 'Asia', 'America'); insert into sr_db.world_cup_summary values ('2006', 'Germany', 'Italy', 'France', 'Germany', 'Portugal', 147, 32, 64, 3359439, 'Europe', 'Europe'); insert into sr_db.world_cup_summary values ('2014', 'Brazil', 'Germany', 'Argentina', 'Netherlands', 'Brazil', 171, 32, 64, 3386810, 'America', 'Europe'); insert into sr_db.world_cup_summary values ('1930', 'Uruguay', 'Uruguay', 'Argentina', 'USA', 'Yugoslavia', 70, 13, 18, 590549, 'America', 'America'); insert into sr_db.world_cup_summary values ('1934', 'Italy', 'Italy', 'Czechoslovakia', 'Germany', 'Austria', 70, 16, 17, 363000, 'Europe', 'Europe'); insert into sr_db.world_cup_summary values ('1950', 'Brazil', 'Uruguay', 'Brazil', 'Sweden', 'Spain', 88, 13, 22, 1045246, 'America', 'America'); insert into sr_db.world_cup_summary values ('1954', 'Switzerland', 'Germany', 'Hungary', 'Austria', 'Uruguay', 140, 16, 26, 768607, 'Europe', 'Europe'); insert into sr_db.world_cup_summary values ('1966', 'England', 'England', 'Germany', 'Portugal', 'Soviet Union', 89, 16, 32, 1563135, 'Europe', 'Europe'); insert into sr_db.world_cup_summary values ('1970', 'Mexico', 'Brazil', 'Italy', 'Germany', 'Uruguay', 95, 16, 32, 1603975, 'America', 'America'); insert into sr_db.world_cup_summary values ('1982', 'Spain', 'Italy', 'Germany', 'Poland', 'France', 146, 24, 52, 2109723, 'Europe', 'Europe'); insert into sr_db.world_cup_summary values ('1994', 'USA', 'Brazil', 'Italy', 'Sweden', 'Bulgaria', 141, 24, 52, 3587538, 'America', 'America'); insert into sr_db.world_cup_summary values ('2010', 'South Africa', 'Spain', 'Netherlands', 'Germany', 'Uruguay', 145, 32, 64, 3178856, 'Africa', 'Europe');
单击上方的运行。
OLAP分析数据
5
分析国家的夺冠次数的前5名,单击上方的运行,查看展示结果。
select Winner ,count('Winner') as Winner_count from sr_db.world_cup_summary group by Winner order by Winner_count desc limit 5;
分析东道主进入半决赛(4强)概率,单击上方的运行,查看展示结果。
select '进半决赛' as '主办方进半决赛圈', count(1) as count from (select year ,HostCountry, Winner , Second,Third,Fourth from sr_db.world_cup_summary where Winner=HostCountry or Second=HostCountry or Third=HostCountry or Fourth=HostCountry) a union select '没进半决赛' as '主办方进半决赛圈', count(1) as count from (select year ,HostCountry, Winner , Second,Third,Fourth from sr_db.world_cup_summary where Winner!=HostCountry and Second!=HostCountry and Third!=HostCountry and Fourth!=HostCountry) b;
分析东道主进入决赛概率,单击上方的运行,查看展示结果。
select '进决赛' as '主办方进决赛圈', count(1) as '历史次数' from (select year ,HostCountry, Winner , Second,Third,Fourth from sr_db.world_cup_summary where Winner=HostCountry or Second=HostCountry ) a union select '没进决赛' as '主办方进决赛圈', count(1) as '历史次数' from (select year ,HostCountry, Winner , Second,Third,Fourth from sr_db.world_cup_summary where Winner!=HostCountry and Second!=HostCountry ) b;
分析东道主夺得世界杯冠军的概率,单击上方的运行,查看展示结果。
select '夺得冠军' as 'host_top', count(1) as count ,'夺得冠军' as 'color' from (select year ,HostCountry, Winner , Second,Third,Fourth from sr_db.world_cup_summary where Winner=HostCountry ) a union select '没夺冠军' as 'host_top', count(1) as count,'没夺冠军' as 'color' from (select year ,HostCountry, Winner , Second,Third,Fourth from sr_db.world_cup_summary where Winner!=HostCountry ) b;
完成
1
通过简单的数据实时分析示例,您已完成了创建StarRocks实例,并使用StarRocks进行数据查询,帮助您快速体验EMR Serverless StarRocks。
清理及后续
5
清理
EMR Serverless StarRocks提供的按量付费(5000 CU*H计算资源,100 GB 20天存储资源)试用,具有时长和容量限制,使用完请及时清理相关资源。如果未及时清理资源,EMR Serverless StarRocks将按照按量付费模式正常进行计费,涉及的其他产品服务也会正常收取费用。完成教程后,您可以按照如下场景进行处理:
如果您需要继续使用,此时试用资源已使用完或者已经超过3个月,请随时查看欠费金额,并在规定时间内充值结清欠费账单,否则无法继续正常使用工作空间。计费详情请参见计费项。
如果您不需要继续使用,请及时清理相关试用资源:
EMR Serverless StarRocks资源清理
登录EMR Serverless StarRocks控制台,单击目标实例操作列下的释放,单击确定。负载均衡SLB会随EMR Serverless StarRocks一起被释放。
专有网络VPC资源清理
您可以在EMR Serverless StarRocks控制台,单击目标实例的实例名称,在实例详情页单击专有网络后面的链接,然后在VPC控制台删除对应专有网络,具体操作请参见删除专有网络。
总结
常用知识点
问题:为什么必须开通负载均衡?(单选题)
正确答案是StarRocks FE内网服务依赖负载均衡的CLB私网服务。
联系我们
如果在使用EMR Serverless StarRocks的过程中遇到任何疑问,可加入钉钉群24010016636咨询。