客快物流大数据项目(八十五):实时olap分析需求

Lansonli Lansonli     2023-03-25     312

关键词:

文章目录

实时OLAP分析需求

一、​​​​​​​​​​​​​​背景介绍

二、技术选型

三、​​​​​​​​​​​​​​设计方案


实时OLAP分析需求

一、​​​​​​​​​​​​​​背景介绍

在之前的文章学习了离线数仓的构建,但是离线数仓的最大问题即:,数据无法实时的通过可视化页面展示出来,通常离线数仓分析的是“T+1”的数据,针对于时效性要求比较高的场景,则无法满足需求,例如:快速实时返回“分组+聚合计算+排序聚合指标”查询需求。

因此智慧物流系统的应用场景分为以下几个部分:

  • Spark-to-Kudu 小时/日级场景
  • Spark-to-ClickHouse 秒级场景
  • Spark-to-ElasticSearch 秒级场景

二、技术选型

目前市面上主流的开源OLAP引擎包含不限于:Hive、Presto、Kylin、Impala、Sparksql、Druid、Clickhouse、Greeplum等,可以说目前没有一个引擎能在数据量,灵活程度和性能上做到完美,用户需要根据自己的需求进行选型。

框架

描述

Hive

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

缺点是慢

Spark SQL

SparkSQL的前身是Shark,它将 SQL 查询与 Spark 程序无缝集成,可以将结构化数据作为 Spark 的 RDD 进行查询。SparkSQL作为Spark生态的一员继续发展,而不再受限于Hive,只是兼容Hive。

Presto

Presto 是由 Facebook 开源的大数据分布式 SQL 查询引擎,适用于交互式分析查询,可支持众多的数据源,包括 HDFS,RDBMS,KAFKA 等,而且提供了非常友好的接口开发数据源连接器。

Presto由于是基于内存的,而hive是在磁盘上读写的,因此presto比hive快很多,但是由于是基于内存的计算当多张大表关联操作时易引起内存溢出错误。

Kylin

Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。

所以适合Kylin的场景包括:

1)用户数据存在于Hadoop HDFS中,利用Hive将HDFS文件数据以关系数据方式存取,数据量巨大,在500G以上

2)每天有数G甚至数十G的数据增量导入

3)有10个以内较为固定的分析维度

Impala

Impala不提供任何对序列化和反序列化的支持。

Impala只能读取文本文件,而不能读取自定义二进制文件。

每当新的记录/文件被添加到HDFS中的数据目录时,该表需要被刷新。这个缺点会导致正在执行的查询sql遇到刷新会挂起,查询不动。

Druid

Druid 是一种能对历史和实时数据提供亚秒级别的查询的数据存储。Druid 支持低延时的数据摄取,灵活的数据探索分析,高性能的数据聚合,简便的水平扩展。适用于数据量大,可扩展能力要求高的分析型查询系统。

与其他的时序数据库类似,Druid在查询条件命中大量数据情况下可能会有性能问题,而且排序、聚合等能力普遍不太好,灵活性和扩展性不够,比如缺乏Join、子查询等。

Greeplum

Greenplum是一个开源的大规模并行数据分析引擎。借助MPP(大规模并行处理)架构,在大型数据集上执行复杂SQL分析的速度比很多解决方案都要快。

Greenplum基于Postgresql,也就是说GreenPulm和TiDB的定位类似,想要在OLTP和OLAP上进行统一。

ClickHouse

Clickhouse由俄罗斯yandex公司开发。专为在线数据分析而设计。Yandex是俄罗斯搜索引擎公司。官方提供的文档表名,ClickHouse 日处理记录数"十亿级"。

特性:采用列式存储;数据压缩;支持分片,并且同一个计算任务会在不同分片上并行执行,计算完成后会将结果汇总;支持SQL;支持联表查询;支持实时更新;自动多副本同步;支持索引;分布式存储查询。

大家对Nginx应该不陌生,战斗民族开源的软件普遍的特点包括:轻量级,快。

ClickHouse最大的特点就是快,快,快,重要的话说三遍!与Hadoop、Spark这些巨无霸组件相比,ClickHouse很轻量级

总结

上面给出了常用的一些OLAP引擎,各自有各自的特点,将其分组:

  • Hive,Impala - 基于SQL on Hadoop
  • Presto和Spark SQL类似 - 基于内存解析SQL生成执行计划
  • Kylin - 用空间换时间,预计算
  • Druid - 一个支持数据的实时摄入
  • ClickHouse - OLAP领域的Hbase,单表查询性能优势巨大
  • Greenpulm - OLAP领域的Postgresql

 

三、​​​​​​​​​​​​​​设计方案


  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

客快物流大数据项目(八十六):clickhouse的深入了解

文章目录ClickHouse的深入了解一、介绍二、特性三、优势四、​​​​​​​​​​​​​​劣势五、​​​​​​​​​​​​​​基准测试六、应用场景ClickHouse的深入了解一、介绍ClickHouse是俄罗斯的Yandex于2016年开源的面向OL... 查看详情

客快物流大数据项目(八十四):impala优化

 文章目录Impala优化一、​​​​​​​Impala关键配置二、Impala查询分析三、​​​​​​​​​​​​​​Impala优化思路Impala优化一、​​​​​​​​​​​​​​Impala关键配置分配给此角色的内存软限制,由Linux内核强... 查看详情

客快物流大数据项目(八十三):kudu的优化

文章目录Kudu的优化一、​​​​​​​Kudu关键配置二、​​​​​​​​​​​​​​Kudu的使用限制1、​​​​​​​​​​​​​​主键2、Cells3、​​​​​​​字段4、表5、其他限制6、​​​​​​​​​​​​​​分... 查看详情

客快物流大数据项目(八十九):clickhouse的数据类型支持(代码片段)

文章目录ClickHouse的数据类型支持一、整型二、​​​​​​​浮点型三、​​​​​​​​​​​​​​Decimal四、布尔型五、字符串类型六、​​​​​​​​​​​​​​UUID七、​​​​​​​Date类型八、​​​​​​​Da... 查看详情

客快物流大数据项目(九十五):clickhouse的collapsingmergetree深入了解

文章目录ClickHouse的CollapsingMergeTree深入了解一、创建CollapsingMergeTree引擎表的语法二、创建CollapsingMergeTree引擎的表 查看详情

客快物流大数据项目(八十八):clickhouse快速入门(代码片段)

文章目录ClickHouse快速入门一、​​​​​​​​​​​​​​安装ClickHouse(单机)1、安装yum-utils工具包2、添加ClickHouse的yum源3、安装ClickHouse的服务端和客户端4、关于安装的说明5、查看ClickHouse的版本信息二、在命令行... 查看详情

客快物流大数据项目(一百零六):实时etl处理

文章目录实时ETL处理一、业务流程二、​​ 查看详情

客快物流大数据项目(一百零六):实时etl处理

文章目录实时ETL处理一、业务流程二、​​ 查看详情

客快物流大数据项目(一百零三):快递追踪需求介绍

文章目录快递追踪需求介绍前言背景介绍设计方案快递追踪需求介绍 查看详情

客快物流大数据项目(五十一):数据库表分析

目录数据库表分析一、物流运输管理数据库表1、揽件表(tbl_collect_package)2、客户表(tbl_customer)3、物流系统码表(tbl_codes)4、快递单据表(tbl_express_bill)5、快递包裹表(tbl_express_package& 查看详情

客快物流大数据项目:物流项目介绍和内容大纲

目录物流项目介绍和内容大纲一、项目简介二、功能介绍三、内容大纲四、技术亮点及价值有离线业务、也有实时业务 物流项目介绍和内容大纲一、项目简介  本项目基于大型物流公司研发的智慧物流大数据平台,该物流... 查看详情

客快物流大数据项目学习框架

文章目录客快物流大数据项目学习框架前言一、项目简介二、功能介绍三、项目背景四、服务器资源规划五、技术亮点及价值六、智慧物流大数据平台客快物流大数据项目学习框架前言利用框架的力量,看懂游戏规则,... 查看详情

客快物流大数据项目(一百):clickhouse的使用

文章目录ClickHouse的使用一、使用Java操作ClickHouse1、构建maven工程 查看详情

客快物流大数据项目(八十二):kudu的读写原理

Kudu的读写原理一、​​​​​​​工作模式Kudu的工作模式如下图,有些在上面的内容中已经介绍了,这里简单标注一下:每个kudutable按照hash或range分区为多个tablet;每个tablet中包含一个MemRowSet以及多个DiskRowSet... 查看详情

客快物流大数据项目(一百零五):启动elasticsearch

文章目录启动ElasticSearch一、启动ES服务端二、​​​​​​​启动Kibana启动ElasticSearch 查看详情

客快物流大数据项目(一百零五):启动elasticsearch

文章目录启动ElasticSearch一、启动ES服务端二、​​​​​​​启动Kibana启动ElasticSearch 查看详情

客快物流大数据项目(一百零七):物流信息查询服务接口开发解决方案

文章目录物流信息查询服务接口开发解决方案一、业务需求二、系统架构演变1、​​​​​​​集中式架构2、​​​​​​​​​​​​​​垂直拆分3、分布式服务​​​​​​​4、面向服务架构(SOA)5、微服务架构... 查看详情

客快物流大数据项目(一百零八):springcloud技术栈

文章目录SpringCloud技术栈​​​​前言一、微服务技术栈 查看详情