精华内容
下载资源
问答
  • olap部署
    2022-03-19 00:31:00
    1. 防火墙,记得检查一下防火墙

    2. SQL Server Browser 服务未启动,安装时默认禁止,需要去 services.msc 里确认一下是否正确启动

    3. 用户’NT Service\MSSQLServerOLAPService’登录失败

      可以参考:https://blog.csdn.net/weixin_44293498/article/details/105180822

    更多相关内容
  • 最近Oracle数据库升级到11G之后,出现一些问题,慢慢的开始发现一些需要总结的东西,每次心里都在想:下次,我自己搭建数据仓库的时候,一定要注意这些细节,在仓库的创建初期就做好这些工作。1、redo log的设计1)...

    最近Oracle数据库升级到11G之后,出现一些问题,慢慢的开始发现一些需要总结的东西,每次心里都在想:下次,我自己搭建数据仓库的时候,一定要注意这些细节,在仓库的创建初期就做好这些工作。

    1、redo log的设计

    1)如果可以单独放,redo和数据文件单独划组做条带化等。物理上分开。

    2)redolog如果可以单独放,就不要设置得太大,最多500M一个,因为日志太大,可能会导致实例恢复的时间很长。另外在极端倒霉的情况下,如果再数据恢复过程中,实例再次down掉,比如掉电。那你就惨了。总之,那么多数据放在日志里不安全,放在datafile里放心一些。

    3)如果你和我一样悲催,redo和datafile所在磁盘组都在一个,因为存储底层直接划分的一个大池子(基于成本、速度的综合考虑),那你就把日志调大一些(目前我的是2G/个),组数增加一些(目前我的20组),如果还是出现日志不够用,那就多增加组数,比如30组。另外ASM在这种大池子面前,基本无法提高IO了,因为你无法解决redo和datafile竞争IO的问题。

    2.undo策略

    1)undo_retention的设计

    一般可以直接设置3小时,先保证系统可用。当然undo表空间要足够大。

    好吧,如果你说无法定量,我给你一个参考值。

    数据量3T的数据库,设置undo表空间为300G,undo_retention时间为10800,默认单位是秒,也就是3小时。

    2)guarantee参数的取舍

    我觉得,如果你未充分了解你的业务系统和数据库状况之前,不要轻易启用这个参数。有可能会导致异常灾难。

    上述条件不成立的,可以尝试使用该参数,以防止ORA-01555的出现。

    4、其他的,等想到了再加上来吧

    5、OLTP和DSS不同数据库设计

    oltp 数据库 dss 数据库

    oltp = online transaction processing dss = data warehousing

    联机事物处理 数据仓库

    例如:飞机订票,网上交易,bbs等 例如:各种资源资料查询系统

    大量的在线用户和dml操作 很少的dml操作

    大量基于索引的查询 大量的全表扫描的查询

    用b-tree,reverse key索引,定期索引重建 用bitmap索引

    需要较多的小的回退段 需要较少的大的回退段

    不要用分布式查询 用分布式查询

    数据对象的存储参数pctfree 20 或者更高 数据对象的存储参数pctfree 0

    共享程序代码和各种变量常量 字符变量和线索

    启动多线索服务 使用大的数据块,db_file_mutiblock_read_count

    使用较大的日志文件 使用较小的日志文件

    listener开多个响应端口 增加sort_area_size

    0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • 10g部署oracle olap组件

    2021-05-05 02:34:20
    一般在dbca建库时,我们会建好一些必须的数据库组件,但有些会除外 例如:oracle data mining, oracle text, oracle olap,oracle spatial, oracle ultra search, oracle label secrity, sample schemas首先,在建好...

    一般在dbca建库时,我们会建好一些必须的数据库组件,但有些会除外 例如:oracle data mining, oracle text, oracle olap,  oracle spatial, oracle ultra search, oracle label secrity, sample schemas

    首先,在建好的数据库中,我们可以用dba_registry来查看已经建好的组件

    select comp_name,status,version from dba_registry;

    COMP_NAME     STATUS   VERSION

    ---------------------------------------- ---------------------- ------------------------------

    Oracle Workspace Manager   VALID   10.2.0.5.0

    Oracle Data Mining    VALID   10.2.0.5.0

    Oracle Database Catalog Views   VALID   10.2.0.5.0

    Oracle Database Packages and Types  VALID   10.2.0.5.0

    假如我们需要安装olap组件,那么我们可以使用$ORALCE_HOME/olap/admin/olap.sql来完成安装

    注意:v$option显示出来的组件的value为TRUE并不表示已经安装此组件

    @?/olap/admin/olap.sql  SYSAUX TEMP

    后面的2个参数也写

    但在后面的提示中给需要输入

    Enter value  for 1:sysaux

    Enter value  for 2:temp

    @?/rdbms/admin/utlrp.sql编译

    select comp_name,status,version from dba_registry;

    COMP_NAME     STATUS   VERSION

    ---------------------------------------- ---------------------- ------------------------------

    OLAP Catalog     VALID   10.2.0.5.0

    Oracle Workspace Manager   VALID   10.2.0.5.0

    Oracle Data Mining    VALID   10.2.0.5.0

    Oracle Database Catalog Views   VALID   10.2.0.5.0

    Oracle Database Packages and Types  VALID   10.2.0.5.0

    OLAP Analytic Workspace    VALID   10.2.0.5.0

    Oracle OLAP API     VALID   10.2.0.5.0

    7 rows selected.

    olap组件就添加成功了

    删除组件 可以用dbca 中selec options选择要删除的组件(11g)

    在ORACLE_HOME下 find -name "*olap*.sql"  找到响应的组件

    展开全文
  • OLAP(WinServer 2008)部署

    2015-06-18 00:39:18
    OLAP(WinServer 2008)部署
  • eMondrian是Mondrian(R)OLAP引擎版本的发行版。 此版本的主要功能是对ADOMD.NET和Excel客户端的支持。 部署方式 下载dist / emondrian.war文件。 将emondrian.war文件复制到Java服务器(Apache Tomcat,Jetty,...
  • 主流的 OLAP 引擎介绍 - OLAP极简教程

    千次阅读 2021-12-24 11:37:02
    什么是OLAP ? 随着互联网、物联网、5G、人工智能、云计算等技术的不断发展,越来越多的数据在互联网上产生,对互联网的运营也开始进入精细化,因此大数据、数据分析、数字营销开始变成每个互联网企业的重点。在做...

    什么是OLAP ?

    随着互联网、物联网、5G、人工智能、云计算等技术的不断发展,越来越多的数据在互联网上产生,对互联网的运营也开始进入精细化,因此大数据、数据分析、数字营销开始变成每个互联网企业的重点。在做数据分析时有OLAP、OLTP是我们必定会遇到的技术,在介绍OLAP引擎技术选型之前,我们先看看这两个技术分别是什么意思?

    OLTP(OnlineTransactionProcessing联机事务处理),是传统关系型数据库的应用技术,提供日常的、基本的事务处理,比如在线交易之类。OLAP(OnlineAnalyticalProcessing联机分析处理),是大数据分析的应用技术,提供复杂的分析操作、侧重决策支持。目前主流的OLAP引擎包括Hive、Presto、Druid、Clickhouse、Kylin、Sparksql、Greeplum,每个引擎都有它各自的特点

    OLAP(On-line Analytical Processing,联机分析处理)是在基于数据仓库多维模型的基础上实现的面向分析的各类操作的集合。可以比较下其与传统的OLTP(On-line Transaction Processing,联机事务处理)的区别来看一下它的特点:

    说起 OLAP 要追溯到 1993 年。

    OLAP 准则

    准则1 OLAP模型必须提供多维概念视图
    准则2 透明性准则
    准则3 存取能力准则
    准则4 稳定的报表能力
    准则5 客户/服务器体系结构
    准则6 维的等同性准则
    准则7 动态的稀疏矩阵处理准则
    准则8 多用户支持能力准则
    准则9 非受限的跨维操作
    准则10 直观的数据操纵
    准则11 灵活的报表生成
    准则12 不受限的维与聚集层次

    OLAP场景的关键特征

    大多数是读请求
    数据总是以相当大的批(> 1000 rows)进行写入
    不修改已添加的数据
    每次查询都从数据库中读取大量的行,但是同时又仅需要少量的列
    宽表,即每个表包含着大量的列
    较少的查询(通常每台服务器每秒数百个查询或更少)
    对于简单查询,允许延迟大约50毫秒
    列中的数据相对较小:数字和短字符串(例如,每个URL 60个字节)
    处理单个查询时需要高吞吐量(每个服务器每秒高达数十亿行)
    事务不是必须的
    对数据一致性要求低
    每一个查询除了一个大表外都很小
    查询结果明显小于源数据,换句话说,数据被过滤或聚合后能够被盛放在单台服务器的内存中

    与OLAP 不同的是,OLTP系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作,强调事务性。

    OLAP系统则强调数据分析,强调SQL执行时长,强调磁盘I/O,强调分区。

    OLAP 分类

    OLAP 是一种让用户可以用从不同视角方便快捷的分析数据的计算方法。主流的 OLAP 可以分为3类:

    1.多维OLAP ( Multi-dimensional OLAP )、
    2.关系型OLAP ( Relational OLAP )
    3.混合OLAP ( Hybrid OLAP ) 三大类。

    1.多维OLAP ( Multi-dimensional OLAP )

    MOLAP基于直接支持多维数据和操作的本机逻辑模型。数据物理上存储在多维数组中, 并且使用定位技术来访问它们。

    MOLAP架构包含了数据库服务器、MOLAP服务器和前端工具三个组件。

    MOLAP的典型代表是:Druid 和 Kylin。MOLAP一般会根据用户定义的数据维度、度量(也可以叫指标)在数据写入时生成预聚合数据;Query查询到来时,实际上查询的是预聚合的数据而不是原始明细数据,在查询模式相对固定的场景中,这种优化提速很明显。

    MOLAP 的优点和缺点都来自于其数据预处理 ( pre-processing ) 环节。数据预处理,将原始数据按照指定的计算规则预先做聚合计算,这样避免了查询过程中出现大量的即使计算,提升了查询性能。

    但是这样的预聚合处理,需要预先定义维度,会限制后期数据查询的灵活性;如果查询工作涉及新的指标,需要重新增加预处理流程,损失了灵活度,存储成本也很高;同时,这种方式不支持明细数据的查询,仅适用于聚合型查询(如:sum,avg,count)。

    因此,MOLAP 适用于查询场景相对固定并且对查询性能要求非常高的场景。如广告主经常使用的广告投放报表分析。

    2.关系型OLAP ( Relational OLAP )

    关系OLAP(ROLAP)是中间服务器, 它们位于关系后端服务器和用户前端工具之间,其使用关系或扩展关系DBMS来保存和处理仓库数据, 并使用OLAP中间件来提供丢失的数据。

    ROLAP的体系结构如下图,其中包含了数据库服务器、ROLAP服务器和前端工具。

    ROLAP的典型代表是:Presto,Impala,GreenPlum,Clickhouse,Elasticsearch,Hive,Spark SQL,Flink SQL。

    ROLAP的优势在于以下两个方面:

    第一,在数据写入时,ROLAP并未使用像MOLAP那样的预聚合技术。ROLAP收到Query请求时,会先解析Query,生成执行计划,扫描数据,执行关系型算子,在原始数据上做过滤(Where)、聚合(Sum, Avg, Count)、关联(Join),分组(Group By)、排序(Order By)等,最后将结算结果返回给用户,整个过程都是即时计算,没有预先聚合好的数据可供优化查询速度,拼的都是资源和算力的大小。

    第二,ROLAP 不需要进行数据预处理 ( pre-processing ),因此查询灵活,可扩展性好。这类引擎使用 MPP 架构 ( 与Hadoop相似的大型并行处理架构,可以通过扩大并发来增加计算资源 ),可以高效处理大量数据。

    但是ROLAP也存在着劣势,那就是当数据量较大或 query 较为复杂时,查询性能也无法像 MOLAP 那样稳定。所有计算都是即时触发 ( 没有预处理 ),因此会耗费更多的计算资源,带来潜在的重复计算。

    因此,ROLAP 适用于对查询模式不固定、查询灵活性要求高的场景。如数据分析师常用的数据分析类产品,他们往往会对数据做各种预先不能确定的分析,所以需要更高的查询灵活性。

    3.混合OLAP ( Hybrid OLAP )

    混合 OLAP,是 MOLAP 和 ROLAP 的一种融合。当查询聚合性数据的时候,使用MOLAP 技术;当查询明细数据时,使用 ROLAP 技术。在给定使用场景的前提下,以达到查询性能的最优化。混合OLAP的技术体系架构如下图:

    混合 OLAP的优势在于其很好的结合了MOLAP和ROLAP的优势之处,并且提供了所有聚合级别的快速访问。同时因为它仅将聚合信息存储在OLAP服务器上, 而详细记录保留在关系数据库中。因此, 不会保留详细记录的重复副本,平衡了磁盘空间需求。

    混合 OLAP的劣势恰恰在于其由于集成了MOLAP和ROLAP,因此需要同时支持MOLAP和ROLAP,并且本身的体系结构也非常复杂。

    4.Others

    除此之外,还包含一些其他分类,包括启用Web的OLAP(WOLAP),桌面OLAP(DOLAP),移动OLAP(MOLAP)和空间OLAP(SOLAP)。但总体上不太流行,故此不再进行介绍。

    OLAP 架构

    概念说明

    • Serde:序列化反序列化,serialize/deSerialize
    • MPP:大规模并行处理技术 (Massively Parallel Processor)
    • 按照查询类型划分,OLAP 一般分为即席查询和固化查询,
      • 即席查询:通过手写 sql 完成一些临时的数据分析需求,这类 sql 形式多变、逻辑复杂,对查询时间没有严格要求
      • 固化查询:指的是一些固化下来的取数、看数需求,通过数据产品的形式提供给用户,从而提高数据分析和运营的效率。这类的 sql 固定模式,对响应时间有较高要求。

    按照架构实现划分,主流的 OLAP 引擎主要有下面三类:

    • MPP 架构系统(Presto/Impala/SparkSQL/Drill 等)。这种架构主要还是从查询引擎入手,使用分布式查询引擎,而不是使用 hive+mapreduce 架构,提高查询效率。

    • 搜索引擎架构的系统(es,solr 等),在入库时将数据转换为倒排索引,采用 Scatter-Gather 计算模型,牺牲了灵活性换取很好的性能,在搜索类查询上能做到亚秒级响应。但是对于扫描聚合为主的查询,随着处理数据量的增加,响应时间也会退化到分钟级。

    • 预计算系统(Druid/Kylin 等)则在入库时对数据进行预聚合,进一步牺牲灵活性换取性能,以实现对超大数据集的秒级响应。

      数据轨迹现有的实现方式,从业务诉求看为:每账期按照指定的查询列取数据,进行分析未结算原因,偏向固化查询的方式。但现有的实现方式为先按照查询列值查询出主表数据,再根据主表附属表的关联字段,获取查询附属表的 sql,sql 为动态拼接出来,这种方式更偏向于即席查询的实现。

    需要从以下三个方面考虑框架选型:数据存储和构建、安装搭建、开发成本。

    OLAP的优势是基于数据仓库面向主题、集成的、保留历史及不可变更的数据存储,以及多维模型多视角多层次的数据组织形式,如果脱离了这两点,OLAP将不复存在,也就没有优势可言。

    OLAP引擎的常见操作

    下面所述几种OLAP操作,是针对Kimball的星型模型(Star Schema)和雪花模型(Snowflake Schema)来说的。在Kimball模型中,定义了事实和维度。

    上卷(Roll Up)/聚合:选定某些维度,根据这些维度来聚合事实,如果用SQL来表达就是select dim_a, aggs_func(fact_b) from fact_table group by dim_a.
    下钻(Drill Down):上卷和下钻是相反的操作。它是选定某些维度,将这些维度拆解出小的维度(如年拆解为月,省份拆解为城市),之后聚合事实。
    切片(Slicing、Dicing):选定某些维度,并根据特定值过滤这些维度的值,将原来的大Cube切成小cube。如dim_a in (‘CN’, ‘USA’)
    旋转(Pivot/Rotate):维度位置的互换。
    下图举了一个具体的例子:

    开源OLAP引擎对比

    针对于目前大数据业内非常流行的数个开源OLAP引擎:Hive、SparkSQL、FlinkSQL、Clickhouse、Elasticsearch、Druid、Kylin、Presto、Impala分别挑选了一些场景进行了对比,可以说目前没有一个引擎能在数据量,灵活程度和性能上做到完美,用户需要根据自己的需求进行选型。

    简介

    impala

    impala 是 Cloudera 开发开源的,Impala 是 Cloudera 开发并开源的,能查询存储在 HDFS 和 HBase 中的数据。同 Hive 一样,也是一种 SQL on Hadoop 解决方案。但 Impala 抛弃了 MapReduce,使用更类似于传统的 MPP 数据库技术来提高查询速度。

    impala 可以直接查询 hdfs 或 hbase 上的数据,可以与现有的存储无缝对接。
    impala 需要单独安装,公司内 paas 主推。需要与现场确认。
    impala 提供 jdbc 接口和 sql 执行引擎,可以与现有系统集成

    Presto

    presto 是 Facebook 开源的大数据查询引擎,为了解决 hive 查询慢产生。使用 java 编写,数据全部在内存中处理。

    原生集成了 Hive、Hbase 和关系型数据库。
    需要与现场确认是否能提供
    提供 jdbc 接口和 sql 执行引擎,可以与现有系统集成

    druid

    druid 同 kylin 一样,是采用预计算的方式。主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到 Druid 后立即可查,同时数据是几乎是不可变。通常是基于时序的事实事件,事实发生后进入 Druid,外部系统就可以对该事实进行查询。

    需要预计算,将数据存储在 druid 的 Segment 文件中,占用一部分存储资源
    需要与现场确认是否能提供
    对 sql 支持不友好,需要用他自己的方言书写

    kylin

    kylin 是一种 OLAP 数据引擎,支持大数据生态圈的数据分析业务,主要是通过预计算的方式将用户设定的多维度数据立方体 (cube) 缓存起来,达到快速查询的目的。应用场景应该是针对复杂 sql join 后的数据缓存。
    这种 OLAP 引擎,一般包括以下几部分:

    1.数据构建存储:cube 构建,元数据信息
    2.sql 解析执行:Query 引擎 (sql 解释器),routing 模块 (sql 执行)
    3.上层接口服务;jdbc/odbc 接口,rest 服务

    应用思路:将 hive 中的数据按照查询列 构建成 cube,存储到 hbase 中,数据轨迹连接 kylin 的 jdbc 接口实现快速查询。

    需要预计算,将数据构建成 cube 存储到 hbase
    需要与现场确认是否能提供
    提供 jdbc 接口和 rest 服务
    redis
    将要分析的数据同步到 redis,在 redis 中快速查询数据。可以在分析前将本月数据同步到 redis。

    对比

    1.并发能力与查询延迟对比

    看到这里可能有人会提出疑问:Hive,SparkSQL,FlinkSQL这些它们要么查询速度慢,要么QPS上不去,怎么能算是OLAP引擎呢?其实OLAP的定义中并没有关于查询执行速度和QPS的限定。进一步来说,这里引出了衡量OLAP特定业务场景的两个重要的指标:

    查询速度:Search Latency
    查询并发能力:QPS
    如果根据不同的查询场景、再按照查询速度与查询并发能力这两个指标来划分以上所列的OLAP引擎,这些OLAP引擎的能力划分如下:

    场景一:简单查询

    简单查询指的是点查、简单聚合查询或者数据查询能够命中索引或物化视图(物化视图指的是物化的查询中间结果,如预聚合数据)。这样的查询经常出现在【在线数据服务】的企业应用中,如阿里生意参谋、腾讯的广点通、京东的广告业务等,它们共同的特点是对外服务、面向B端商业客户(通常是几十万的级别);并发查询量(QPS)大;对响应时间要求高,一般是ms级别(可以想象一下,如果广告主查询页面投放数据,如果10s还没有结果,很伤害体验);查询模式相对固定且简单。从下图可知,这种场景最合适的是Elasticsearch、Druid、Kylin。

    场景二:复杂查询

    复杂查询指的是复杂聚合查询、大批量数据SCAN、复杂的查询(如JOIN)。在ad-hoc场景中,经常会有这样的查询,往往用户不能预先知道要查询什么,更多的是探索式的。这里也根据QPS和查询耗时分几种情况,如下图所示,根据业务的需求来选择对应的引擎即可。有一点要提的是FlinkSQL和SparkSQL虽然也能完成类似需求,但是它们目前还不是开箱即用,需要做周边生态建设,这两种技术目前更多的应用场景还是在通过操作灵活的编程API来完成流式或离线的计算上。

    2.执行模型对比

    Scatter-Gather执行模型:相当于MapReduce中的一趟Map和Reduce,没有多轮的迭代,而且中间计算结果往往存储在内存中,通过网络直接交换。Elasticsearch、Druid、Kylin都是此模型。
    MapReduce:Hive采用的正是这个模型。
    MPP:MPP学名是大规模并行计算,其实很难给它一个准确的定义。如果说的宽泛一点,Presto、Impala、Clickhouse、Spark SQL、Flink SQL这些都算。有人说Spark SQL和Flink SQL属于DAG模型,我们思考后认为,DAG并不算一种单独的模型,它只是生成执行计划的一种方式。

    主流开源OLAP引擎的主要特点

    1.Hive

    Hive是一个分布式SQL on Hadoop方案,底层依赖MapReduce计算模型执行分布式计算。Hive擅长执行长时间运行的离线批处理,数据量越大,优势越明显。Hive在数据量大、数据驱动需求强烈的互联网大厂比较流行。近2年,随着Clickhouse的逐渐流行,对于一些总数据量不超过百PB级别的互联网数据仓库需求,已经有多家公司改为了Clickhouse的方案。Clickhouse的优势是单个查询执行速度更快,不依赖Hadoop,架构和运维更简单。

    2.Spark SQL、Flink SQL

    在大部分场景下,Hive计算速度过慢,别说不能满足那些要求高QPS、低查询延迟的的对外在线服务的需求,就连企业内部的产品、运营、数据分析师也会经常抱怨Hive执行ad-hoc查询太慢。这些痛点,推动了MPP内存迭代和DAG计算模型的诞生和发展,诸如Spark SQL、Flink SQL、Presto这些技术,目前在企业中也非常流行。

    Spark SQL、Flink SQL的执行速度更快,编程API丰富,同时支持流式计算与批处理,并且有流批统一的趋势,使大数据应用更简单。

    3.Clickhouse

    ClickHouse是近年来备受关注的开源列式数据库,主要用于数据分析(OLAP)领域。目前国内社区火热,各个大厂纷纷跟进大规模使用。

    ClickHouse从OLAP场景需求出发,定制开发了一套全新的高效列式存储引擎,并且实现了数据有序存储、主键索引、稀疏索引、数据Sharding、数据Partitioning、TTL、主备复制等丰富功能。以上功能共同为ClickHouse极速的分析性能奠定了基础。

    ClickHouse部署架构简单,易用,不依赖Hadoop体系(HDFS+YARN)。它比较擅长的地方是对一个大数据量的单表进行聚合查询。Clickhouse用C++实现,底层实现具备向量化执行(Vectorized Execution)、减枝等优化能力,具备强劲的查询性能。目前在互联网企业均有广泛使用,比较适合内部BI报表型应用,可以提供低延迟(ms级别)的响应速度,也就是说单个查询非常快。

    但是Clickhouse也有它的局限性,在OLAP技术选型的时候,应该避免把它作为多表关联查询(JOIN)的引擎,也应该避免把它用在期望支撑高并发数据查询的场景,OLAP分析场景中,一般认为QPS达到1000+就算高并发,而不是像电商、抢红包等业务场景中,10W以上才算高并发,毕竟数据分析场景,数据海量,计算复杂,QPS能够达到1000已经非常不容易。例如Clickhouse,如果如数据量是TB级别,聚合计算稍复杂一点,单集群QPS一般达到100已经很困难了,所以它更适合企业内部BI报表应用,而不适合如数十万的广告主报表或者数百万的淘宝店主相关报表应用。Clickhouse的执行模型决定了它会尽全力来执行一个Query,而不是同时执行很多Query。

    4.ElasticSearch

    提到ElasticSearch,很多人的印象是这是一个开源的分布式搜索引擎,底层依托Lucene倒排索引结构,并且支持文本分词,非常适合作为搜索服务。并且用Elasticsearch作为搜索引擎,一个三节点的集群,支撑1000+的查询QPS也不是什么难事,这是搜索场景。

    但是,我们这里要讲的内容是Elasticsearch的另一个功能,即作为聚合(aggregation)场景的OLAP引擎,它与搜索型场景区别很大。聚合场景,可以等同于select c1, c2, sum(c3), count(c4) from table where c1 in (‘china’, ‘usa’) and c2 < 100 这样的SQL,也就是做多维度分组聚合。虽然Elasticsearch DSL是一个复杂的JSON而不是SQL,但是意思相同,可以互相转换。

    用Elasticsearch作为OLAP引擎,有几项优势:(1)擅长高QPS(QPS > 1K)、低延迟、过滤条件多、查询模式简单(如点查、简单聚合)的查询场景。(2)集群自动化管理能力(shard allocation,recovery)能力非常强。集群、索引管理和查看的API非常丰富。

    ES的执行引擎是最简单的Scatter-Gather模型,相当于MapReduce计算模型的一趟Map和Reduce。Scatter和Gather之间的节点数据交换也是基于内存的不会像MapReduce那样每次Shuffle要先落盘。ES底层依赖的Lucene文件格式,我们可以把Lucene理解为一种行列混存的模式,并且在查询时通过FST,跳表等加快数据查询。这种Scatter-Gather模型的问题是,如果Gather/Reduce的数据量比较大,由于ES是单节点执行,可能会非常慢。整体来讲,ES是通过牺牲灵活性,提高了简单OLAP查询的QPS、降低了延迟。

    用Elasticsearch作为OLAP引擎,有几项劣势:多维度分组排序、分页。不支持Join。在做aggregation后,由于返回的数据嵌套层次太多,数据量会过于膨胀。

    ElasticSearch和Solar也可以归为宽表模型。但其系统设计架构有较大不同,这两个一般称为搜索引擎,通过倒排索引,应用Scatter-Gather计算模型提高查询性能。对于搜索类的查询效果较好,但当数据量较大或进行扫描聚合类查询时,查询性能会有较大影响。

    5.Presto

    Presto、Impala、GreenPlum均基于MPP架构,相比Elasticsearch、Druid、Kylin这样的简单Scatter-Gather模型,在支持的SQL计算上更加通用,更适合ad-hoc查询场景,然而这些通用系统往往比专用系统更难做性能优化,所以不太适合做对查询QPS(参考值QPS > 1000)、延迟要求比较高(参考值search latency < 500ms)的在线服务,更适合做公司内部的查询服务和加速Hive查询的服务。Presto还有一个优秀的特性是使用了ANSI标准SQL,并且支持超过30+的数据源Connector。

    6.Impala

    Impala 是 Cloudera 在受到 Google 的 Dremel 启发下开发的实时交互SQL大数据查询工具,是CDH 平台首选的 PB 级大数据实时查询分析引擎。它拥有和Hadoop一样的可扩展性、它提供了类SQL(类Hsql)语法,在多用户场景下也能拥有较高的响应速度和吞吐量。它是由Java和C++实现的,Java提供的查询交互的接口和实现,C++实现了查询引擎部分,除此之外,Impala还能够共享Hive Metastore,甚至可以直接使用Hive的JDBC jar和beeline等直接对Impala进行查询、支持丰富的数据存储格式(Parquet、Avro等)。

    此外,Impala 没有再使用缓慢的 Hive+MapReduce 批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎(由 Query Planner、Query Coordinator 和 Query Exec Engine 三部分组成),可以直接从 HDFS 或 HBase 中用 SELECT、JOIN 和统计函数查询数据,从而大大降低了延迟。Impala经常搭配存储引擎Kudu一起提供服务,这么做最大的优势是点查比较快,并且支持数据的Update和Delete。

    7.Druid

    Druid 是一种能对历史和实时数据提供亚秒级别的查询的数据存储。Druid 支持低延时的数据摄取,灵活的数据探索分析,高性能的数据聚合,简便的水平扩展。Druid支持更大的数据规模,具备一定的预聚合能力,通过倒排索引和位图索引进一步优化查询性能,在广告分析场景、监控报警等时序类应用均有广泛使用;

    Druid的特点包括:

    Druid实时的数据消费,真正做到数据摄入实时、查询结果实时

    Druid支持 PB 级数据、千亿级事件快速处理,支持每秒数千查询并发

    Druid的核心是时间序列,把数据按照时间序列分批存储,十分适合用于对按时间进行统计分析的场景

    Druid把数据列分为三类:时间戳、维度列、指标列

    Druid不支持多表连接

    Druid中的数据一般是使用其他计算框架(Spark等)预计算好的低层次统计数据

    Druid不适合用于处理透视维度复杂多变的查询场景

    Druid擅长的查询类型比较单一,一些常用的SQL(groupby 等)语句在druid里运行速度一般

    Druid支持低延时的数据插入、更新,但是比hbase、传统数据库要慢很多

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

    8.Kylin

    Kylin自身就是一个MOLAP系统,多维立方体(MOLAP Cube)的设计使得用户能够在Kylin里为百亿以上数据集定义数据模型并构建立方体进行数据的预聚合。

    适合Kylin的场景包括:

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

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

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

    简单来说,Kylin中数据立方的思想就是以空间换时间,通过定义一系列的纬度,对每个纬度的组合进行预先计算并存储。有N个纬度,就会有2的N次种组合。所以最好控制好纬度的数量,因为存储量会随着纬度的增加爆炸式的增长,产生灾难性后果。

    总结

    本文通过介绍了什么是OLAP以及OLAP的分类,从而对目前主流的 OLAP 引擎进行了介绍和对比,但是关于最终在技术选型上如何选择合适的大数据引擎,还是需要用户根据实际情况进行选择。只凭借本篇文章,还无法作为选型的建议。

    参考资料

    https://blog.csdn.net/weixin_52672149/article/details/119248932

    展开全文
  • 1.1 OLAP数据库概述 1.2 GaussDB 200概述 1.3 安装规划设计 1.4 安装部署指导 2.1 数据字典&数据类型 2.2 函数&操作符 2.3 查询语句 2.4 用户自定义函数 2.5 存储过程 3.1 执行引擎&核心算子 3.2 分布式执行框架 3.3...
  • OLAP是什么? online transaction processing 联机事务处理,事务意味着高并发,大吞吐量。 OLAP有何特性? 最重要三点:极致性能,安全可靠,简单易用。 有何部署形态? 单机部署,主备部署,全分布式部署。 ...
  • 1. 什么是OLAP OLAP 是 OnLine Analytical Processing 的缩写,即联机分析处理。 OLAP 对业务数据执行多维分析,并提供复杂计算、趋势分析和复杂数据建模的能力。 OLAP 主要用于支持企业决策管理分析,是许多商务...
  • 涉及到的OLAP: 这里主要是查询网上的一些资料,总结整理,调研涉及的OLAP引擎主要有Kylin、Impala、Kudu、Presto、Druid、Clickhouse、Doris、TiDB、Hawq、Hive、SparkSql、SnappyData、ElasticSearch、GreenPlum...
  • 它支持多主异步复制,可选择跨多个数据中心进行部署。 在所有节点相等的情况下,不存在单点故障。 单个节点甚至整个数据中心的停机不会影响系统的可用性。 ClickHouse 还具有出色的硬件效率和许多其他功能,包括...
  • 聊聊OLAP

    2021-10-23 11:46:52
    OLAP和OLTP不同的是,表中单条记录本身并不是查询所关心的,比较典型的特点包括有聚合类算子、涉及多表Join,查询所用谓语/条件没有索引。由于这些操作都非常耗计算资源,而且数据仓库相比数据库在数据量上大很多,...
  • OLTP与 OLAP混合使用实例—TiDB

    千次阅读 2021-10-15 15:41:17
    TiDB是开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid ...目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决
  • OLAP极简教程: 主流的 OLAP 引擎介绍

    千次阅读 2021-12-24 00:45:05
    什么是OLAP ?随着互联网、物联网、5G、人工智能、云计算等技术的不断发展,越来越多的数据在互联网上产生,对互联网的运营也开始进入精细化,因此大数据、数据分析、数字营销开始变成每个互联网......
  • 浅谈数据仓库、BI与OLAP

    千次阅读 2020-07-10 14:44:06
    Table of Contents 一:数据仓库 1.1 概述 1.2 维度建模 1.2.1 星型模型 1.2.2 雪花模型 1.2.3 事实星座模型 1.2.4 三种模型对比 1.3 事实表和维度表 二:商业智能(BI) 三:OLAP 3.1 什么是OLAP 3.2 ...
  • 本文将围绕常见的开源OLAP引擎展开,介绍什么是OLAP以及OLAP的常见操作和分类,并对目前主流的开源OLAP引擎进行对比和特点的总结。 一、什么是OLAP OLAP(On-line Analytical Processing,联机分析处理)是在基于...
  • 它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。下面是对有关资料的整理还有一些扩展内容以链接的方式...
  • 开篇词 避免踩坑 搭建数据分析师的核心竞争力 你好,我叫“取经儿”,是北京回龙观的一名数据“民工”,你可以直接叫我“经哥”。 我毕业后先在电信工作了 3 年,2015 年开始转行成为一名数据分析师。...
  • 1、Doris简介 百度研发的,贡献给apache,apache Doris是一个现代化的基于MPP(大规模并行处理)技术的分析型数据库产品 2、Doris特性 列式存储,基于MPP(大规模并行处理)架构的分析型数据库,性能...OLAP:联机分析
  • 京东OLAP实践之路

    2021-05-11 00:26:50
    导读:本文主要介绍京东在构建OLAP从无到有各环节考虑的重点,由需求场景出发,剖析当前存在的问题,并提供解决方案,最后介绍OLAP的发展过程。▌需求场景1. 京东数据入口① 业务数据:订单...
  • OLTP、OLAP、VDI和SPC-1是当前性能评估中常见的三类业务场景。SPC-1是业界通用的随机IOPS型的IO模型,在不清楚实际业务类型的条件下,常用此模型来进行性能评估。四种模型的简单IO特征如下表所示。Oracle 数据库是...
  • 建议选择Snowflake、Databricks、OushuDB 这一类云原生数据平台,它们突破了传统 MPP 和 Hadoop 的局限性,实现了上述的存算完全分离,计算和存储可部署在不同物理集群,并通过虚拟计算集群技术实现了高并发,同时...
  • 最强OLAP分析引擎-Clickhouse快速精通一 ==楼兰== 文章目录一、Clickhouse简介1、什么是Clickhouse2、Clickhouse适用场景。二、Clickhouse环境安装1、线上快速体验2、本地快速部署3、远程连接clickhouse3.1 打开远程...
  • 关于数据仓库,早期分享过不少基础类文章,偶然间看到知乎上这篇关于OLAP的深度解读,从技术发展,产品选型,执行优化等方面做了详细的剖析,分享来给大家看看! 一、有哪些类型的OLAP数仓? 1、按数据量划分 对...
  • 它支持多主机异步复制,并且可以选择跨多个数据中心进行部署。 在所有节点相等的情况下,没有单点故障。 单个节点甚至整个数据中心的停机时间都不会影响系统的可用性。 ClickHouse还具有出色的硬件效率和许多其他...
  • 大数据olap引擎对比 介绍 (Introduction) This article is an extract from my previous article Big Data Pipeline Recipe. In this post I will focus only on Big Data query engines for data analytics. 本文...
  • 作者介绍温正湖,网易杭研高级数据库技术专家,数字产业事业部大数据产品中心OLTP和OLAP内核团队负责人。负责网易大数据OLAP系统和OLTP关系型数据库内核相关的开发和运维工作。毕业1...
  • (incubating)是实时分布式OLAP数据存储,旨在提供低延迟的可扩展实时分析。 它可以从批处理数据源(例如Hadoop HDFS,Amazon S3,Azure ADLS,Google Cloud Storage)以及流数据源(例如Apache Kafka)中提取。 ...
  • 1.7.jar,stax-api-1.0.jar,olap4j-1.2.0-SNAPSHOT.jar,commons-io-1.3.2.jar,aspectjweaver-1.6.8.jar,esapi-2.0.1.jar,aopalliance-1.0.jar,jaxws-api-2.1.jar,mondrian-3.6.5.jar,fop-0.94.jar,saiku-olap-util-...
  • 史上最全OLAP对比

    千次阅读 2021-04-13 10:38:33
    1. 什么是OLAP 2.OLAP引擎的常见操作 3. OLAP分类 MOLAP 的优点和缺点 ROLAP 的优点和缺点 4.并发能力与查询延迟对比 5.执行模型对比 5. OLAP引擎的主要特点 5.2 Spark SQL、Flink SQL 5.3Clickhouse 5.4...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,215
精华内容 6,086
关键字:

olap部署