用StarRocks玩转用户画像-4-最强OLAP产品

目录

StarRocks产品

擅长场景

关于Roaring Bitmap

用户留存sql示例

上一篇

下一篇


StarRocks产品

擅长场景

OLAP分析的典型场景大致可分为四类,自助分析,实时分析,数据服务与固定报表 四类场景的查询负载是不同的,所以传统的数仓方案基本只能满足一个到两个场景,通常需要组合不同的技术栈去解决。 比如自助分析使用impala的大规模数据分析能力,在数据服务的场景就会用redis或hbase增加并发能力,实时分析会使用flink+RDBMS的方案。 而StarRocks的先进设计可以同时覆盖上述四类场景,在不同的场景下均有优异的性能表现。

架构全景

StarRocks核心的模块包括FE、BE两种进程角色,其中:

  • 团队花费近一年时间,开发的向量化执行引擎,给StarRocks产品装上了极速执行涡轮底座,使得在各种OLAP场景,得以展现性能优势。
  • 倾力打造的CBO优化器,更是为复杂查询如多表关联、嵌套子查询等自助BI分析、自助指标平台等场景,提供最优执行规划,保证查询性能。
  • 我们在既有的Duplicate明细模型、Aggregate聚合模型、Unique模型的基础上,全新打造的Primary Key模型,能够更好的满足实时更新业务的场景,查询效率可以是Unique模型的3倍左右。
  • 结合Flink-CDC插件和PrimaryKey模型,可以实现直接从Mysql Binlog同步增量数据,实时导入任务,也支持Upsert、Delete等能力
  • 高效的页面运维工具StarRocks Manager,为企业用户提供了极简的运维页面,可以轻松进行监控、节点维护、版本管理、数据库开发、日常巡检等工作。
  • 未来,我们继续探索跨集群容灾、云原生存算分离、弹性计算、资源隔离等企业级数据库集群能力,也考虑将现在众多的导入形式整合,为客户提供更简便易用的使用体验。

数据生态

StarRocks兼容整个大数据生态:

1)数据导入层面: a)存储在kafka中的实时数据,可以通过StarRocks的routine load直接消费kafka的数据,不依赖Flink/Spark等流式处理系统 b)存储在Hadoop或S3中的离线数据,可以通过StarRocks的broker load等方式,大批量的将数据同步拉取到StarRocks中 c)对于本地数据文件,或者存储在内存中的数据,可以使用基于HTTP协议的Stream load方式,将数据导入到StarRocks中 d)对于DataX、FlinkX、WaterDrop等数据同步工具,StarRocks也开发了一些插件,可以通过这些同步工具,将其他数据源的数据,批量通过到StarRocks中

2)流式系统兼容
 a)StarRocks开发了Flink-connector插件,支持Flink将数据sink到StarRocks中 b)StarRocks有spark-connector,Spark可以批量读取写入StarRocks的数据

3)StarRocks还支持Mysql、ElasticSearch、Hive等系统的联邦查询,StarRocks远程读取这些系统中的数据,在内部再进行join等内部处理操作

4)StarRocks的查询接口兼容Mysql协议,使用MySQL Connector就可以对接查询StarRocks,因此上层各类BI应用,只要能对接MySQL,基本就可以对接StarRocks,比如Tableau、FineBI、SmartBI、Apache Superset等开源或商业BI系统,都可以很方便的对接StarRocks

关于Roaring Bitmap

StarRocks的Bitmap数据结构,底层是基于Roaring Bitmap实现。

传统的去重类分析,执行“select distinct count…from…groupby join…”类似 SQL 的方式统计,

容易形成大量 SQL 任务调度和大表 join 给集群带来繁重压力。

而基于Roaring Bitmap可以轻松实现诸如UV、留存、漏斗等大量使用交集运算的分析,

从而非常方便地运用在用户行为、用户画像等领域中

用户留存sql示例

求今天和昨天不同 tag 下的用户留存:

select tag, bitmap_intersect(user_id)

from (

select tag, date, bitmap_union(user_id) user_id

from table

where date in ('2020-05-18', '2020-05-19')

group by tag, date) a

group by tag;

该函数和bitmap_to_string函数组合使用可以获取交集的具体数据。求今天和昨天不同 tag 下留存的具体用户:

select tag, bitmap_to_string(bitmap_intersect(user_id))

from (

select tag, date, bitmap_union(user_id) user_id

from table

where date in ('2020-05-18', '2020-05-19')

group by tag, date) a

group by tag;

NOTE: v1.18.0开始,可以结合Lateral join和Unnest函数配合使用,将用户清单展开

上一篇

用StarRocks玩转用户画像-3-传统解决方案

下一篇

用StarRocks玩转用户画像-5-客群圈选

 导航

用StarRocks玩转用户画像-1-概述

用StarRocks玩转用户画像-2-方法论

用StarRocks玩转用户画像-3-传统解决方案

用StarRocks玩转用户画像-4-最强OLAP产品

用StarRocks玩转用户画像-5-客群圈选

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值