利用阿里云产品搭建一个简单数据分析平台

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
对象存储 OSS,20GB 3个月
简介: 阿里云有两个消息产品,消息队列(ONS)与消息服务(MNS),ONS上有个很好用的功能消息轨迹,消息的生命周期都可以通过控制台查询,那么消息服务上,想看见消息从生产到消费的轨迹数据有什么好办法呢?我们以这个小小的需求为原型,介绍一下怎么利用阿里云现有的产品,搭建出一个简单的数据分析平台。

阿里云有两个消息产品,消息队列(ONS)与消息服务(MNS),ONS上有个很好用的功能消息轨迹,消息的生命周期都可以通过控制台查询,那么消息服务上,想看见消息从生产到消费的轨迹数据有什么好办法呢?我们以这个小小的需求为原型,介绍一下怎么利用阿里云现有的产品,搭建出一个简单的数据分析平台。

先画个数据流程架构图。
hlj1

step 1:
MNS->SLS
先把MNS的日志数据写到SLS里面去,不用写代码,在MNS控制台日志管理页面做个配置即可。MNS的队列要打开logging功能,SLS控制台创建好project logstore这里自动就能看见,注意要一个域的才能配哦。
DingTalk11111

然后我们跑跑代码,收发点消息,完了去SLS控制台看一样,数据已然自动写进去了,如图
DingTalk88888

比方我们搜索一条消息79E4FBE5094E8911-2-15D3F907B3B-2000000DB,已经可以看见收发时间,那不就满足看消息轨迹功能了吗,这篇文章可以结束了!!但是本文是硬广,当然不能这么就结束了,堂堂一个攻城狮最擅长什么!当然是无事生非!
我不要在控制台搜索!不要登陆!要让谁都可以看见轨迹!我还不想用sls sdk写一句代码!来来来,下面满足您,顺便把阿里云的产品硬广做一遍。

step 2:
SLS->OSS
SLS里面的数据,有很多消费方式,最简单不写代码的办法就是配置投递到MaxComputer或者OSS,投MaxComputer常用,我们今天来试下OSS。
投递配置文档

DingTalk77777

注意下分区格式 mydate=%Y%m%d/log_%H%M%s
投递出来的目录就是 mydate=20170714/ 这样可以方便MaxComputer/Hive作为分区使用,截图是投递出来的OSS里面看见的效果。

DingTalk99999

我们根据日志服务里面数据长什么样来配置怎么写csv文件(之前的查询截图就是数据的样子),做个一一对应的配置,这样投递出来的数据,oss里面的cvs跟日志服务的数据就一样一样了。

DingTalk33333

好了,做完以上这些,投递就配置好了,需要注意的是,配置好投递之后只会从这个时间点开始生效,已经写入sls的旧数据是不会被投递的,我们再次启动MNS收发消息的程序,造点数据写到sls,让投递工作起来,看见投递任务完成后去OSS里面看看写入的文件吧,前面已经有截图了。

现在oss里面已经有数据了,我们怎么用这个数据看轨迹呢?
硬广告强势插入:
Maxcompute 2.0支持使用OSS数据源做外部表,直接可查OSS,简单介绍一下这个功能,前面几个set是打开2.0的开关,现在2.0的功能要申请通过才能使用。

set odps.task.major.version=2dot0_demo_flighting;
set odps.service.mode=off;
set odps.sql.planner.mode=lot;
set odps.sql.ddl.odps2=true;
set odps.sql.preparse.odps2=lot;

CREATE EXTERNAL TABLE IF NOT EXISTS mns_router_log_external (
    AccountId INT,
    Action STRING,
    MessageId STRING,
    NextVisibleTime INT,
    ProcessTime INT,
    QueueName STRING,
    RemoteAddress STRING,
    RequestId STRING,
    Time STRING
  )
  PARTITIONED BY (
    mydate STRING
  )
STORED BY 'com.aliyun.odps.CsvStorageHandler'
WITH SERDEPROPERTIES (
 'odps.properties.rolearn'='acs:ram::<aliId>:role/aliyunodpsdefaultrole'
) 
LOCATION 'oss://oss-cn-shanghai-internal.aliyuncs.com/ali-shanghai/mns_router';    

alter table mns_router_log_external add if not exists partition (mydate='20170714');

select * from mns_router_log_external where mydate='20170714' and MessageId='79E4FBE5094E8911-2-15D3F907B3B-2000000DB';

直接数加控制台运行,出结果:
DingTalk101010

在MaxComputer里面您可以写sql处理您的数据,比方查平均处理时间啊什么的,这里就是做做广告,不详细做Maxcompute的介绍了。

但素,我们的目标是不登陆直接看数据,这里就要祭出阿里云一款报表产品
Quick BI,Quick BI并不支持OSS作为数据源,可以支持RDS,Maxcompute等等,Maxcompute查询速度相对RDS来说较慢,那么我们就用RDS吧。用大数据处理套件来做数据同步,比方OSS倒入RDS。

Step 3:
OSS->RDS
先在rds上的数据库建张表

CREATE TABLE `mns_route_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `AccountId` bigint(20) DEFAULT NULL,
  `Action` varchar(255) DEFAULT NULL,
  `MessageId` varchar(255) DEFAULT NULL,
  `NextVisibleTime` bigint(11) DEFAULT NULL,
  `ProcessTime` bigint(11) DEFAULT NULL,
  `QueueName` varchar(255) DEFAULT NULL,
  `RemoteAddress` varchar(255) DEFAULT NULL,
  `RequestId` varchar(255) NOT NULL,
  `Time` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `MessageId` (`MessageId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

大数据处理套件上我们先建好两个数据源,一个OSS的数据源mns_oss,再建一个RDS的数据源mns_log,然后用脚本模式配置一个同步任务,把数据同步到我们建的这个表里面。

{
  "configuration": {
    "reader": {
      "plugin": "oss",
      "parameter": {
        "fieldDelimiterOrigin": ",",
        "nullFormat": "",
        "compress": "",
        "datasource": "mns_oss",
        "column": [
          {
            "name": 0,
            "index": 0,
            "type": "string"
          },
          {
            "name": 1,
            "index": 1,
            "type": "string"
          },
          {
            "name": 2,
            "index": 2,
            "type": "string"
          },
          {
            "name": 3,
            "index": 3,
            "type": "string"
          },
          {
            "name": 4,
            "index": 4,
            "type": "string"
          },
          {
            "name": 5,
            "index": 5,
            "type": "string"
          },
          {
            "name": 6,
            "index": 6,
            "type": "string"
          },
          {
            "name": 7,
            "index": 7,
            "type": "string"
          },
          {
            "name": 8,
            "index": 8,
            "type": "string"
          }
        ],
        "skipHeader": "false",
        "encoding": "UTF-8",
        "fieldDelimiter": ",",
        "object": [
          "mns_router/mydate=${bdp.system.bizdate}/log_*.csv"
        ]
      }
    },
    "writer": {
      "plugin": "mysql",
      "parameter": {
        "postSql": [],
        "datasource": "mns_log",
        "column": [
          "AccountId",
          "Action",
          "MessageId",
          "NextVisibleTime",
          "ProcessTime",
          "QueueName",
          "RemoteAddress",
          "RequestId",
          "Time"
        ],
        "writeMode": "replace",
        "table": "`mns_route_log`",
        "preSql": []
      }
    },
    "setting": {
      "errorLimit": {
        "record": "100"
      },
      "speed": {
        "concurrent": "5",
        "mbps": "5"
      }
    }
  },
  "type": "job",
  "version": "1.0"
}

注意这个脚本里面使用了一个系统参数${bdp.system.bizdate},这样我们可以配置每天凌晨跑一次,每次同步一天的数据。
运行这个任务,业务时间选2017-07-14,把刚才的数据同步进RDS。
可以配置成每天凌晨运行一次同步任务。

Step 4.
RDS->Quick BI
先在Quick BI添加一个RDS的数据源,找到表mns_route_log生成一个数据集,然后我们在这个数据集后面点一下”新建仪表板”,添加查询条件,保存之后公开仪表板,直接访问生成的地址,不用做任何登陆即可访问,效果如图
DingTalk121212

通过基于日志服务的数据采集,ODPS/OSS的数据计算,最后Quick BI的报表制作这条线路,小规模的初创公司可以快速的搭建完一个适合业务,容易扩展的数据分析平台,例如时下流行的推荐系统。

阿里云的产品!是不是AMAZING!好想配个无事生非的表情包!

hs

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
22天前
|
SQL 存储 数据挖掘
快速入门:利用AnalyticDB构建实时数据分析平台
【10月更文挑战第22天】在大数据时代,实时数据分析成为了企业和开发者们关注的焦点。传统的数据仓库和分析工具往往无法满足实时性要求,而AnalyticDB(ADB)作为阿里巴巴推出的一款实时数据仓库服务,凭借其强大的实时处理能力和易用性,成为了众多企业的首选。作为一名数据分析师,我将在本文中分享如何快速入门AnalyticDB,帮助初学者在短时间内掌握使用AnalyticDB进行简单数据分析的能力。
32 2
|
1月前
|
SQL 分布式计算 数据挖掘
加速数据分析:阿里云Hologres在实时数仓中的应用实践
【10月更文挑战第9天】随着大数据技术的发展,企业对于数据处理和分析的需求日益增长。特别是在面对海量数据时,如何快速、准确地进行数据查询和分析成为了关键问题。阿里云Hologres作为一个高性能的实时交互式分析服务,为解决这些问题提供了强大的支持。本文将深入探讨Hologres的特点及其在实时数仓中的应用,并通过具体的代码示例来展示其实际应用。
163 0
|
3月前
|
供应链 数据可视化 数据挖掘
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
本文详细介绍了第十一届泰迪杯数据挖掘挑战赛B题的解决方案,涵盖了对产品订单数据的深入分析、多种因素对需求量影响的探讨,并建立了数学模型进行未来需求量的预测,同时提供了Python代码实现和结果可视化的方法。
125 3
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
|
3月前
|
Kubernetes 并行计算 数据挖掘
构建高可用的数据分析平台:Dask 集群管理与部署
【8月更文第29天】随着数据量的不断增长,传统的单机数据分析方法已无法满足大规模数据处理的需求。Dask 是一个灵活的并行计算库,它能够帮助开发者轻松地在多核 CPU 或分布式集群上运行 Python 代码。本文将详细介绍如何搭建和管理 Dask 集群,以确保数据分析流程的稳定性和可靠性。
235 3
|
3月前
|
自然语言处理 数据挖掘 BI
ChatGPT 等相关大模型问题之将现有的数据分析平台与大模型结合如何解决
ChatGPT 等相关大模型问题之将现有的数据分析平台与大模型结合如何解决
|
3月前
|
机器学习/深度学习 前端开发 数据挖掘
基于Python Django的房价数据分析平台,包括大屏和后台数据管理,有线性、向量机、梯度提升树、bp神经网络等模型
本文介绍了一个基于Python Django框架开发的房价数据分析平台,该平台集成了多种机器学习模型,包括线性回归、SVM、GBDT和BP神经网络,用于房价预测和市场分析,同时提供了前端大屏展示和后台数据管理功能。
101 9
|
3月前
|
机器学习/深度学习 数据采集 数据挖掘
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题二
本文提供了第十一届泰迪杯数据挖掘挑战赛B题问题二的详细解题步骤,包括时间序列预测模型的建立、多元输入时间预测问题的分析、时间序列预测的建模步骤、改进模型的方法,以及使用Python进行SARIMA模型拟合和预测的具体实现过程。
69 1
|
3月前
|
供应链 算法 数据挖掘
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 23页论文及实现代码
本文介绍了2023年第十一届泰迪杯数据挖掘挑战赛B题的解决方案,深入分析了产品订单数据,并使用Arimax和Var模型进行了需求预测,旨在为企业供应链管理提供科学依据,论文共23页并包含实现代码。
100 0
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 23页论文及实现代码
|
3月前
|
运维 DataWorks 安全
DataWorks产品使用合集之只读实例数据库是否可以进行数据分析
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
运维 数据挖掘 Serverless
深度解析阿里云EMR Serverless StarRocks在OLAP数据分析中的应用场景
阿里云EMR Serverless StarRocks作为一款高性能、全场景覆盖、全托管免运维的OLAP分析引擎,在企业数据分析领域展现出了强大的竞争力和广泛的应用前景。通过其卓越的技术特点、丰富的应用场景以及完善的生态体系支持,EMR Serverless StarRocks正逐步成为企业数字化转型和智能化升级的重要推手。未来随着技术的不断进步和应用场景的不断拓展我们有理由相信EMR Serverless StarRocks将在更多领域发挥重要作用为企业创造更大的价值。