复杂SQL查询和可视化报表构建

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 场景介绍AnalyticDB MySQL数据开发流程。

场景介绍AnalyticDB MySQL数据开发流程。
更多AnalyticDB MySQL相关至阿里云体验实验室

简介

目标是让云上数据仓库用户及开发者通过简单的步骤体验基于AnalyticDB MySQL版和DMS构建云原生数据仓库的主要流程,活动将通过实例的开通、结构与数据的初始化、报表的开发、报表可视化等环节,用3个具体的应用场景来体验AnalyticDB MySQL版在新零售场景下的交互查询和ETL计算速度,以及通过DMS进行数据仓库数据报表开发的流程。

场景中提供的数据集是一个零售场景的模拟数据,包括客户信息、订单记录、货物信息、国家地域信息等内容,数据总量10GB,最大数据表记录数为5999万条。

产品简介

云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:2003 语法标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。查看产品详情。

数据管理DMS是基于阿里巴巴集团十余年的数据库服务平台的云版本,提供免安装、免运维、即开即用、多种数据库类型与多种环境统一的web数据库管理终端;可以为企业用户快速复制搭建与阿里集团同等安全、高效、规范的数据库DevOps研发流程、数仓开发解决方案。查看产品详情。

场景化数据查询分析

场景化数据查询分析

地址:https://dms.aliyun.com/
路径:全部功能-SQLConsole-单库查询
场景化SQL脚本如下:

#### 1)统计半年内全球各地区销售金额构成。0.5秒, 用饼状图图展示。
select
    r_name   //地区
  ,sum(o_totalprice) totalprice     //交易金额
from
  (
    select
      r_name,
      o_totalprice
    from
      customer
      ,orders
      ,nation
      ,region
    where
      c_custkey = o_custkey
      and c_nationkey=n_nationkey
      and n_regionkey=r_regionkey
    and o_orderdate < date '1993-09-23'  // 谓词过滤:指定时间
    and o_orderdate > date '1993-03-23'
  ) a
  group by  r_name
  order by r_name ;
  
  
 #### 2)统计某类目商品每天订单量以及订单金额,按照日期排序。 1秒。用折现图展示
select  
    o_orderdate,   //下单日期
    count(distinct o_orderkey), //订单数
    sum(l_extendedprice*(1-l_discount)) as revenue  //订单金额 
from  
    customer,orders,lineitem 
where  
    c_mktsegment = 'MACHINERY'     // 谓词过滤
    and c_custkey = o_custkey  
    and l_orderkey = o_orderkey  
    and o_orderdate < date '1995-03-23'
    and o_orderdate > date '1995-02-23' // 谓词过滤 指定时间
    and l_shipdate > date '1995-03-23'  
    and l_shipdate < date '1996-03-23'
group by //分组操作   
    o_orderdate //订单日期   
order by 
    o_orderdate;
    
    
#### 3)统计某个地区零件供货商收入。1秒,用柱状图展示。
select
        n_name,   //地区
        sum(l_extendedprice * (1 - l_discount)) as revenue  //收入 
from
        customer,
        orders,
        lineitem,
        supplier,
        nation,
        region   //六表连接  
where
        c_custkey = o_custkey
        and l_orderkey = o_orderkey
        and l_suppkey = s_suppkey
        and c_nationkey = s_nationkey
        and s_nationkey = n_nationkey
        and n_regionkey = r_regionkey
        and r_name = 'EUROPE'  // 谓词过滤:指定地区
        and o_orderdate >= date '1996-01-01'  //谓词过滤:指定时间
        and o_orderdate < date '1996-01-01' + interval '1' year
        and l_shipdate > date '1996-02-23'  
          and l_shipdate < date '1996-03-23'
group by
        n_name
order by   // TopN:按收入降序排序,注意分组和排序子句不同  
        revenue desc
limit 10

数据开发

数据开发

将查询分析的数据存储到新的表中,后续对于相关数据的查询分析就可以用一个简单的SQL来完成

地址:https://dms.aliyun.com/?#to=data-analysis
路径:全部功能-数据工厂-任务编排,新建任务流实例,选择“单实例SQL”节点来创建任务。
任务配置好之后,点击试运行即可运行。
同时我们可以选择点击空白处进行周期调度运行的配置。
任务节点SQL脚本如下:

#### 1)统计半年内全球各地区销售金额构成。0.5秒, 用饼状图图展示。

create table sum_region_price as 
select
    r_name   //地区
  ,sum(o_totalprice) totalprice     //交易金额
from
  (
    select
      r_name,
      o_totalprice
    from
      customer
      ,orders
      ,nation
      ,region
    where
      c_custkey = o_custkey
      and c_nationkey=n_nationkey
      and n_regionkey=r_regionkey
    and o_orderdate < date '1993-09-23'  // 谓词过滤:指定时间
    and o_orderdate > date '1993-03-23'
  ) a
  group by  r_name
  order by r_name ;
  
  
 #### 2)统计某类目商品每天订单量以及订单金额,按照日期排序。 1秒。用折现图展示
 
 create table items_revenue as 
select  
    o_orderdate,   //下单日期
    count(distinct o_orderkey) as order_num, //订单数
    sum(l_extendedprice*(1-l_discount)) as revenue  //订单金额 
from  
    customer,orders,lineitem 
where  
    c_mktsegment = 'MACHINERY'     // 谓词过滤
    and c_custkey = o_custkey  
    and l_orderkey = o_orderkey  
    and o_orderdate < date '1995-03-23'
    and o_orderdate > date '1995-02-23' // 谓词过滤 指定时间
    and l_shipdate > date '1995-03-23'  
    and l_shipdate < date '1996-03-23'
group by 
    o_orderdate 
order by 
    o_orderdate;
    
    
#### 3)统计某个地区零件供货商收入。1秒,用柱状图展示。

create table region_seller_cash as 
select
        n_name,   //地区
        sum(l_extendedprice * (1 - l_discount)) as revenue  //收入 
from
        customer,
        orders,
        lineitem,
        supplier,
        nation,
        region   //六表连接  
where
        c_custkey = o_custkey
        and l_orderkey = o_orderkey
        and l_suppkey = s_suppkey
        and c_nationkey = s_nationkey
        and s_nationkey = n_nationkey
        and n_regionkey = r_regionkey
        and r_name = 'EUROPE'  // 谓词过滤:指定地区
        and o_orderdate >= date '1996-01-01'  //谓词过滤:指定时间
        and o_orderdate < date '1996-01-01' + interval '1' year
        and l_shipdate > date '1996-02-23'  
          and l_shipdate < date '1996-03-23'
group by
        n_name
order by   // TopN:按收入降序排序,注意分组和排序子句不同  
        revenue desc

在这里插入图片描述
在这里插入图片描述

数据可视化

数据可视化

将数据开发的报表进行可视化报表图形化呈现
数据可视化访问地址:https://dms.aliyun.com/?#to=data-visual
推荐步骤:

进入dms:https://dms.aliyun.com
通过SQLConsole将下列sql逐条执行查询后,点击 数据可视化 即可进入图表编辑界面。
SQL脚本如下:

#### 1)统计半年内全球各地区销售金额构成。0.5秒, 用饼状图图展示。


select * from sum_region_price;

  
 #### 2)统计某类目商品每天订单量以及订单金额,按照日期排序。 1秒。用折现图展示
 
 select * from items_revenue;
 
    
    
#### 3)统计某个地区零件供货商收入。1秒,用柱状图展示。

select * from  region_seller_cash;

在这里插入图片描述
在该界面点击右上角的“配置新看板”按钮,即可将该图表自动保存并加入到仪表盘中。
在这里插入图片描述
依次制作四个图表,放入新建中的仪表盘中即可得到下图效果。

在这里插入图片描述

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
11天前
|
SQL 监控 关系型数据库
SQL语句当前及历史信息查询-performance schema的使用
本文介绍了如何使用MySQL的Performance Schema来获取SQL语句的当前和历史执行信息。Performance Schema默认在MySQL 8.0中启用,可以通过查询相关表来获取详细的SQL执行信息,包括当前执行的SQL、历史执行记录和统计汇总信息,从而快速定位和解决性能瓶颈。
|
22天前
|
SQL 存储 缓存
如何优化SQL查询性能?
【10月更文挑战第28天】如何优化SQL查询性能?
77 10
|
16天前
|
SQL 关系型数据库 MySQL
|
30天前
|
SQL 数据库 开发者
功能发布-自定义SQL查询
本期主要为大家介绍ClkLog九月上线的新功能-自定义SQL查询。
|
1月前
|
SQL 移动开发 Oracle
SQL语句实现查询连续六天数据的方法与技巧
在数据库查询中,有时需要筛选出符合特定时间连续性条件的数据记录
|
26天前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
31 0
|
1月前
|
SQL 数据可视化 BI
SQL语句及查询结果解析:技巧与方法
在数据库管理和数据分析中,SQL语句扮演着至关重要的角色
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
4月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
115 13
|
4月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
下一篇
无影云桌面