![](https://img-blog.csdnimg.cn/20210601093533722.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
OLAP引擎
文章平均质量分 82
主要总结笔者使用的OLAP和问题
扫地增
莫问,问就是无敌
展开
-
【clickhouse实践】clickhouse如何在查询中对某字段空值设置默认值及对Nullable值的处理
IFNULL函数用于将一个可空性列中的空值替换为指定的默认值。是要检查的列名,是用于替换空值的默认值。这些是笔者在生产实践中的学习的尝试的一些总结实践,特此备忘,也希望对大家有所帮助。原创 2023-07-04 11:45:39 · 5165 阅读 · 1 评论 -
【clickhouse实践】clickhouse中如何实现ROW_NUMBER() OVER(PARTITION BY ‘xxx‘ ORDER BY ‘xxx‘ DESC/ASC)
0 背景HIVE中我们经常使用窗口函数中的排序函数ROW_NUMBER() OVER(PARTITION BY 'xxx' ORDER BY 'xxx' DESC/ASC)对数据集生成顺序编号或者进行数据去重的操作。然而在Clickhouse中没有提供该功能的函数,那么在clickhouse我们要想实现类似的功能我们应该如何实现呢?今天我们就来用实例说明下在clickhouse该如何实现ROW_NUMBER()功能。1 数据准备1.1 Clickhouse数据准备建表语句:CREATE TAB原创 2021-07-14 17:18:57 · 5203 阅读 · 5 评论 -
【clickhouse实践】关于clickhouse对空值的处理总结
1 背景在工作中,我们在使用spark dataset向clickhouse向表中批量插入数据时,经常遇到某个字段为NULL导致导数任务失败。出现如下报错:而我们在clickhouse按照正常方式建表时,然而我们并不能保证每条数据的每个字段都是非NULL值。...原创 2021-07-13 11:28:55 · 11982 阅读 · 1 评论 -
【用户画像】Clickhouse位图函数实践总结
1 位图概念说到位图我们就不得不从位算开始,虽然大部分语言都有提供位运算,但是,并没有提供一种类似于位数组的类型,要使用这些位运算,我们只能通过数字类型来实现,比如Java中的int/long等类型。而这些数字类型的数组,我们一般可以称之为“位图”(BitMap)。位图bitmap 是一种非常常用的结构,在索引,数据压缩等方面有广泛应用。所谓的 bitmap 就是用一个 bit 位来标记某个元素对应的 value, 而 key 即是该元素。由于采用了 bit 为单位来存储数据,因此在存储空间方面,可以原创 2021-07-12 17:36:08 · 3089 阅读 · 3 评论 -
OLAP实践 —— OLAP基本概念理解总计小记
1. 什么是OLAPOLAP 是 OnLine Analytical Processing 的缩写,即联机分析处理。OLAP 对业务数据执行多维分析,并提供复杂计算、趋势分析和复杂数据建模的能力。OLAP 主要用于支持企业决策管理分析,是许多商务智能(BI)应用程序背后的技术。OLAP 使最终用户可以对多个维度的数据进行即席分析,从而获取他们所需知识,以便更好地制定决策。OLAP 技术已被定义为实现 “ 快速访问共享的多维信息 ” 的能力。2. 为什么要多维分析?业务其实是一个多维活动。企原创 2021-06-18 18:02:10 · 11398 阅读 · 3 评论 -
什么是同构与异构?及在不同背景下的理解
同构与异构的基本理解异构:多个不同类型的物体参与完成某一件事情,异构系统的各个组成部分具有自身的自治性,实现数据共享的前提下,仍保留有自己的应用特性,完整特性,安全特性。同构:多个相同类型的物体参与完成某一件事情。数据源中的同构与异构同构数据源:如果你需要讨论一群鸟类或者一批飞机,那么这样的数据是同构的,比如包含鸟类的数组 [Bird] 和包含飞机的数组[Airplane]。异构数据源:有时候你想探讨的是这些空中家伙的共性 “飞翔”,因此你的数据源可能同时包含 Bird和 Airpl原创 2021-06-17 12:15:56 · 27470 阅读 · 3 评论 -
ClickHouse&Phoenix实践——ClickHouse&Phoenix可视化工具DBeaver安装使用小记
DBeaver安装双击下载的安装包将DBeaver拖到Applications连接文件夹中进行安装创建链接创建Phoenix链接完毕之后控制台打开,点击来接器,发现他是个超级强大的数据库客户端皮肤,可惜的是不支持我们的MongoDB。在Hadoop/Bigdata栏目中找到我们的phoenix选中下一步设置JDBC连接和客户端驱动修改驱动信息和下载驱动,也可以直接添加双击version会出现下拉选项找到合适选项>>下载,等下载完成即可,这玩意下载比较慢,如果想原创 2021-06-11 15:29:47 · 693 阅读 · 5 评论 -
clickhouse实践——clickhouse启动参数使用总结
这个是笔者使用clickhouse无法换行的问题时,研究了其客户端的使用参数。显式参数启动:示例:clickhouse-client -u bd --password xxx参数说明:参数缩写说明--host-h服务端的 host名称, 默认是 ‘localhost’。 您可以选择使用host名称或者IPv4 或IPv6地址--port连接的端口,默认值: 9000。注意 HTTP 接口以及TCP 原生接口是使用不同端口的--user-u用户名。.原创 2021-06-09 10:01:27 · 1899 阅读 · 9 评论 -
Doris实践(一)——Doris编译安装及环境准备
一、编译:1.Docker 准备参照菜鸟教程安装在本地安装docker,我用的是macOS系统,直接下载Edge版本的docker。2.下载 Docker 镜像docker pull apachedoris/doris-dev:build-env我是直接下载的官方提供的doris的编译环境需要按照Doris版本运行对应命令下载对应docker镜像镜像版本commit iddoris 版本apachedoris/doris-dev:build-envbefore原创 2021-06-08 09:39:48 · 2796 阅读 · 1 评论 -
OLAP引擎调研 —— OLAP引擎性能对比分析
涉及到的OLAP:这里主要是查询网上的一些资料,总结整理,调研涉及的OLAP引擎主要有Kylin、Impala、Kudu、Presto、Druid、Clickhouse、Doris、TiDB、Hawq、Hive、SparkSql、SnappyData、ElasticSearch、GreenPlum等。选型思考的方向:一般思考的方向,首先是开源,这几种引擎都是基本上都是开源引擎,所以这个我们就不考虑这个方向,这里主要是从响应时间、并发、数据量、SQL支持、离线查询、实时查询、去重、明细查询、模型、原创 2021-06-02 16:22:18 · 3911 阅读 · 4 评论 -
Clickhouse 类型转换函数实战总结
数据精度丢失问题当把一个值从一个类型转换为另外一个类型的时候,你需要注意的是这是一个不安全的操作,可能导致数据精度的丢失。数据精度丢失一般发生在你将一个大的数据类型转换为小的数据类型的时候,或者你把两个不同的数据类型相互转换的时候。ClickHouse和C++有相同的类型转换行为。toInt(8|16|32|64) 转换一个输入值为Int类型函数说明:toInt8(expr) — 结果为Int8数据类型。toInt16(expr) — 结果为Int16数据类型。toInt32(expr) —原创 2021-05-21 18:00:16 · 11351 阅读 · 11 评论 -
Clickhouse 算术函数实战总结
对于所有算术函数,结果类型为结果所在的最小数值类型(如果存在这样的类型)。最小数值类型是根据数值的位数,是否有符号以及是否是浮点类型而同时进行的。如果没有足够的位,则采用最高位类型。toTypeName(operator) 查看数据类型函数说明:函数用途举例结果toTypeName(operator)返回数据的类型 ,operator的值可以是任何类型toTypeName(toDate(‘2018-12-24’))返回 Date函数实例:SELECT toTy.原创 2021-05-20 17:31:11 · 2871 阅读 · 1 评论 -
Clickhouse--数据输入输出格式实战
ClickHouse 可以接受多种数据格式,可以在 (INSERT(输入)) 以及 (SELECT(输出)) 请求中使用。下列表格列出了支持的数据格式以及在 (INSERT(输入)) 以及 (SELECT(输出)) 请求中使用它们的方式FormatInputOutputTabSeparated✔✔TabSeparatedRaw✔✔TabSeparatedWithNames✔✔TabSeparatedWithNamesAndTypes✔✔T.原创 2021-05-14 16:07:21 · 1339 阅读 · 3 评论 -
clickhouse中如何查询分区表分区及表容量查询
clickhouse中如何查询分区表分区及表容量–这个问题相信大家在使用clickhouse分区表时都会经常遇到,其实clickhouse表的元数据信息都存储在system.parts表中,可以通过该表对clickhouse上所有表进行查询表容量大小、行数、压缩率及分区信息等进行查询了解。1. system.parts表schema解析system.parts表schema说明如下:`partition`(String)-- 分区名称。`name`(String)-- 数据部分的名称。`part_原创 2021-04-26 18:26:31 · 20632 阅读 · 3 评论 -
Clickhouse 时间日期函数实战总结
注:所有的时间日期函数都可以在第二个可选参数中接受时区参数。示例:Asia / Yekaterinburg。在这种情况下,它们使用指定的时区而不是本地(默认)时区。仅支持与UTC相差一整小时的时区。localhost :) select toDateTime(146600280) AS time,toDateTime(146600280,'Asia/Yekaterinburg') AS time_asia,toDateTime(146600280,'US/Samoa') AS time_us,toDa.原创 2020-12-11 16:19:33 · 28431 阅读 · 2 评论 -
clickhouse分区相关操作小记
废话不多说直接上操作:创建分区表示例一:函数式分区Clickhouse> create table visits(userid int,visitdate date,website String) engine=MergeTree() PARTITION BY toYYYYMM(visitdate) order by userid; CREATE TABLE visits( `userid` int, `visitdate` date, `website` Str原创 2020-12-05 17:00:50 · 6550 阅读 · 2 评论 -
Clickhouse 表相关操作小记
运行环境:[xxx@xxx ~]$ cat /etc/centos-releaseCentOS Linux release 7.8.2003 (Core)查看clickhouse版本Clickhouse> select version(); SELECT version() ┌─version()─┐│ 20.5.2.7 │└───────────┘ 1 rows in set. Elapsed: 0.001 sec. clickhouse表操作建表Clickhou原创 2020-12-05 18:50:42 · 4951 阅读 · 3 评论 -
clickhouse 日期函数无效报错问题处理
clickhouse建表语句:CREATE TABLE test.user_action_log( `event_time` DateTime, `action` String, `user_id` String, `school_id` String, `uuid` String, `app_id` String, `student_id` String, `date_key` String)ENGINE = MergeTree()原创 2020-12-10 11:56:44 · 5169 阅读 · 1 评论 -
Kylin实战(八)—— REST API演示和Kylin_JDBC演示代码
文章目录REST API Query查询代码REST API 查询查询结果Kylin_JDBC查询代码Kylin_JDBC查询结果:无论您是从笔者上篇文章过来,还是新读到本文,REST API在这里就不多说了,我们直接接给出示例:REST API Query查询代码:REST API Query查询代码curl -X POST --user ADMIN:KYLIN -H "Content-Type: application/json" -d '{ "sql":"select d.loc,e.jo原创 2021-06-02 10:24:34 · 293 阅读 · 1 评论 -
Kylin实战(七)—— Kylin Cube构建算法
Cube物理模型:Kylin Cube构建算法主要分为两种一种是逐层构建算法,另一种是快速构建算法。逐层构建算法:从模型理解从MR任务来看:优点官网提供的算法的优点:1)此算法充分利用了MapReduce的能力,处理了中间复杂的排序和洗牌工作,故而算法代码清晰简单,易于维护;2)受益于Hadoop的日趋成熟,此算法对集群要求低,运行稳定;在内部维护Kylin的过程中,很少遇到在这几步出错的情况;即便是在Hadoop集群比较繁忙的时候,任务也能完成。个人觉得这是hadoop的优原创 2021-06-02 10:05:25 · 798 阅读 · 1 评论 -
Kylin实战(六)—— Kylin Cube构建优化以及增量构建Cube
文章目录Cube 构建优化方向:Cube 构建优化的几种方式:1、使用衍生维度(derived dimension)(官网提供)1) `Normal`和`Derived`的选用2、使用聚合组什么是聚合组1)强制维度(Mandatory Dimensions)2)层级维度3)联合维度3、RowKey优化1)将用作过滤条件(where)的维度放在前边2)基数大的维度放在基数小的维度的前边4、并发粒度优化1)通过增加region 切分增加并发力度2)通过设置Region的数量范围来控制并发粒度增量构建Cube流程原创 2021-06-01 18:42:59 · 876 阅读 · 1 评论 -
Kylin实战(五)—— Cube构建流程
废话不多说我们直接上步骤:第一步:创建中间宽表(Create Intermediate Flat Hive Table)第二步:数据均分第三步:进行字典编码、范围统计和cuboid估算第四步:构建Cube,执行MR,生成预聚合表第五步: HBase存储K_V值构建(也就是Rowkey构建)第六步:将Cube中的数据转换为HFile格式并存储到HBase中这一步会启动一个MR任务用来将cuboid文件(顺序文件格式)转换为Hbase的HFile文件。Kylin通过c原创 2021-06-01 16:45:59 · 624 阅读 · 11 评论 -
Kylin实践(四)—— Kylin的使用以及Model和Cube构建详细流程
Kylin如何使用?首先,在测试环境启动Hadoop、Hive、HBase、Zookeeper然后,在测试环境/home/hadoop/kylin/kylin-2.5.1-bin-hbase中启动Kylin,执行如下命令:[hadoop@kb-testhadoop01 kylin-2.5.1-bin-hbase]$ bin/kylin.sh start注意:启动前执行jps查看Hadoop、Hive、HBase、Zookeeper是否启动,如出现以下信息则kylin启动成功。在原创 2021-06-01 16:03:57 · 1537 阅读 · 3 评论 -
Kylin实践(三)—— Kylin安装启动
本来这个不打算分享的,因为之前出现了几个错误就和大家说一下Kylin官网安装:下载Kylin安装包,我一般喜欢下载时间在一年到一年半的这坑基本上被填平的工具安装。但是不建议选择在版本大改前的版本。所以选择的是2.5.1这个版本。将下载的 apache-kylin-2.5.1-bin-hbase1x.tar.gz,上传到测试环境/home/hadoop/Kylin上传的工具使用我是用的是Transmit的这个工具,主要是可视化的可以直接拖拽然后解压tar包。配置环境变量,在原创 2021-06-01 15:13:26 · 396 阅读 · 1 评论 -
Kylin实践(一)——Kylin中必须要理解的基本概念和术语
什么是kylin?Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay公司开发并贡献到apche开源社区成为顶级项目的,他也是第一个由中国。它能在亚秒内查询巨大的Hive表。概念预知:数据仓库: 各种数据(包括历史数据和当前的数据)的存储中心系统,简单的来说数据仓库就是hive中的数据库和数据表补充: 这里所说的各种数据主要包括以下三个方面:来自公司业务系统的订单、下单、交易、原创 2021-06-01 11:33:19 · 478 阅读 · 2 评论 -
Kylin实践(二)—— Kylin架构介绍
Kylin架构介绍原创 2021-06-01 11:31:50 · 990 阅读 · 1 评论