Severless SQL on OSS 实验(DataLakeAnalytics on OSS)

摘要: 数据存储在OSS后,能够有多种方式查询分析OSS数据,如自建Spark/Presto/Impala(阿里云EMR以及Hadoop社区官方已支持OSS), 使用MaxCompute、DataLakeAnalytics等。数据库

基于OSS的数据查询分析

数据存储在OSS后,有多种查询分析的方法,包括阿里云MaxCompute、DataLakeAnalytics产品等Severless查询分析服务,也能够自建Spark、Presto、Imapla应用来分析OSS上的数据。
less

实验步骤(DataLakeAnalytics on OSS)

本次实验,主要介绍实验DataLakeAnalytics如何Severless地查询分析OSS上的数据。
异步

服务开通

OSS服务:

1.开通OSS服务https://www.aliyun.com/product/ossoop

DataLakeAnalytics服务:

1.申请DataLakeAnalytics的试用资格
备注:目前DataLakeAnalytics公测中,需提交公测申请,开通试用。测试

操做步骤

准备数据

登陆控制台, 并建立目录

请建立华东1区域的OSS测试Bucket(目前DataLakeAnalytics产品公测区域为华东1)。

备注:Bucket名称是全局惟一,若是提示名称已存在,请更换一个Bucket名称。阿里云

建立目录(建议目录以下):

建立目录workshop_sh/trade, workshop_sh/user 

spa

下载模拟数据(该数据本次实验的模拟数据)

http://testdatasample.oss-cn-hangzhou.aliyuncs.com/workshop_sh/workshop_sh.zip3d

将下载的将交易记录和开户信息数据,分别上传到trade、user目录


登陆Data Lake Analytics控制台

点击“登陆数据库”,输入开通服务时分配的用户名和密码,登陆Data Lake Analytics控制台。

公测期间的分配的用户名、密码,开通服务的消息中能够查看
rest

建立Schema和Table

建立Schema

输入建立SCHEMA的语句,点击“同步执行”。code

CREATE SCHEMA sh_trade

CREATE SCHEMA sh_trade
(注意:同一个阿里云region,schema名全局惟一,建议根据业务定义,已有重名schema,在建立时会提示报错,则请换一个schema名字。)

建立表

在“数据库”的下拉框中,选择刚刚建立的schema。
而后在SQL文本框中输入建表语句以下,并点击同步执行。其中,Location替换为您的Bucket和测试数据的路径

1.建立交易记录表:
说明:LOCATION 'oss://Bucket名称/交易记录表目录/'
实验中,替换LOCATION 'oss://您的OSS存储空间名称/workshop_sh/user/'。如:oss://workshopsh20180608100/workshop_sh/user

CREATE EXTERNAL TABLE tradelist_csv (
    t_userid STRING COMMENT '用户ID',
    t_dealdate STRING COMMENT '申请时间', 
    t_businflag STRING COMMENT '业务代码', 
    t_cdate STRING COMMENT '确认日期', 
    t_date STRING COMMENT '申请日期',
    t_serialno STRING COMMENT'申请序号', 
    t_agencyno STRING COMMENT'销售商编号', 
    t_netno STRING  COMMENT'网点编号',
    t_fundacco STRING COMMENT'基金帐号',
    t_tradeacco STRING COMMENT'交易帐号',
    t_fundcode STRING  COMMENT'基金代码',
    t_sharetype STRING COMMENT'份额类别',
    t_confirmbalance DOUBLE  COMMENT'确认金额',
    t_tradefare DOUBLE COMMENT'交易费',
    t_backfare DOUBLE COMMENT'后收手续费',
    t_otherfare1 DOUBLE COMMENT'其余费用1',
    t_remark STRING COMMENT'备注'
    )
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 
    STORED AS TEXTFIlE
    LOCATION 'oss://testdatasample/workshop_sh/trade/';

2.建立开户信息表:
说明:LOCATION 'oss://Bucket名称/开户信息表目录/'
实验中,替换LOCATION 'oss://您的OSS存储空间名称/workshop_sh/user/'。 如:oss://workshopsh20180608100/workshop_sh/user

CREATE EXTERNAL TABLE userinfo (
    u_userid STRING COMMENT '用户ID',
    u_accountdate STRING COMMENT '开户时间', 
    u_gender STRING COMMENT '性别', 
    u_age INT COMMENT '年龄', 
    u_risk_tolerance INT COMMENT '风险承受能力,1-10,10为最高级',
    u_city STRING COMMENT'所在城市', 
    u_job STRING COMMENT'工做类别, A-K', 
    u_income DOUBLE  COMMENT'年收入(万)'
    )
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 
    STORED AS TEXTFIlE
    LOCATION 'oss://testdatasample/workshop_sh/user/';

3.建表完毕后,刷新页面,在左边导航条中能看到schema下的2张表

SQL查询(同步执行)

1.查询交易机构SXS_0010,在0603至0604的100条交易记录

SELECT * FROM tradelist_csv 
WHERE t_cdate >= '2018-06-03' and t_cdate <= '2018-06-04' and t_agencyno = 'SXS_0010' 
limit 100;

显示执行结果

2.查询各城市、男性女性人群,购买的基金总额(多表Join查询)

SELECT u_city, u_gender, SUM(t_confirmbalance) AS sum_balance 
FROM tradelist_csv , userinfo  
where u_userid = t_userid 
GROUP BY u_city, u_gender 
ORDER BY sum_balance DESC;

SQL查询(异步执行)

异步执行查询,将查询结果,以CSV格式,输出到OSS上

点击“执行状态”,可看到该异步查询任务的执行状态

主要分为:“RUNNING”,“SUCCESS”,“FAILURE”。
点击“刷新”,当STATUS变为“SUCCESS”时,能够查看到查询结果输出到OSS的文件路径。

查看导出OSS的结果文件

实验耗费

OSS存储的费用

原文连接

本文为云栖社区原创内容,未经容许不得转载。

相关文章
相关标签/搜索