总结
峰二爷
如果哪天你忘了努力,
我把科比讲给你听!
展开
-
CM+CDH 从0-1大数据集群基本搭建超级详细步骤
一 :环境准备:创建虚拟机命名为:democdh (虚拟机磁盘至少选60G,内存也要尽可能大写,我选的8G)修改Windows中的host文件添加主机域名映射: 192.168.133.222 democdh修改虚拟机democdh主机名: 命令:vi /etc/hostname 内容:democdh修改域名映射: 命令:vi /etc/hosts 最后一行后添加内容:192.168.133.222 democdh修改ip地址以及网管等:命令:vi /etc/sysconfi...原创 2020-12-10 23:57:41 · 575 阅读 · 0 评论 -
clickHouse高阶函数-countEqual(arr,x)
clickHouse高阶函数-countEqual(arr,x) 返回数组中与x相同的元素的个数例:查询数组中3的个数SELECT countEqual([1, 2, 3, 3], 3)┌─countEqual([1, 2, 3, 3], 3)─┐│ 2 │└─────────────────────────────┘1 rows in set. Elapsed: 0.010 sec....原创 2020-12-08 16:52:12 · 712 阅读 · 0 评论 -
clickHouse-高阶函数arrayCount()
clickHouse-高阶函数arrayCount()求数组中元素的个数 SELECT arrayCount(x -> x, [1, 2, 3, 4]); ┌─arrayCount(lambda(tuple(x), x), [1, 2, 3, 4])─┐ │ 4 │ └───────────────────────────────────────────────┘ 1 rows in set. Elaps原创 2020-12-08 16:45:42 · 3251 阅读 · 0 评论 -
clickHouse-高阶函数arrayMap()
arrayMap(参数1,参数2)参数1:参数1是一个函数,规定了对数组中元素的操作行为参数2:是一个数组例:arrayMap(x->x*10,[1,2,3,4]) x表示数组中每一个元素, ->后面的表达式表示对数组中每一个数据的操作( 这里将x替换成y,依然能实现功能,所有x只是一个代理符号可以替换成其他的符号) 把数组中每个数乘以10 SELECT arrayMap(y -> (y * 10), [1, 2, 3, 4]) ┌─arrayMap(lam原创 2020-12-08 16:25:06 · 6334 阅读 · 0 评论 -
ClickHouse-FROM从MySQL ,HDFS中直接读取数据
从HDFS中直接读取数据加载到表中创建表:CREATE TABLE tb_ch_fromENGINE = TinyLog ASSELECT *FROM hdfs(‘hdfs://linux01:8020/data/user.csv’,‘CSV’,‘uid Int8,name String,gender String,age UInt8’)注意:此处建表没有直接指定字段写在()中SELECT * FROM hdfs 时hdfs是小写,在直接用HDFS 引擎时是用的大写(engine原创 2020-12-07 23:34:39 · 1027 阅读 · 0 评论 -
clickhouse-集成引擎,从HDFS,MySQL,Hive等数据源中读取数据
HDFS引擎 在CH中创建HDFS 表引擎,就可也把HDFS 中的数据映射到创建的表中,对表中数据进行操作。创建HDFS引擎:create table tb_ch_hdfs(uid String,name String,city String,age UInt8)engine =HDFS(“hdfs://linux01:8020/ch/data/”,“CSV”) --文件路径(可以用/*.CSV指定文件夹下多个文件) 文件格式MySQL数据库引擎,和MySQL表引擎 M..原创 2020-12-07 22:26:14 · 2502 阅读 · 0 评论 -
clickHouse-Merge引擎,可同时从任意多个表中读数据
Merge:可用于同时从任意多个其他的表中读取数据。 读是自动并行的,不支持写入。读取时,那些被真正读取到数据的表的索引(如果有的话)会被使用。Merge 引擎的参数:一个数据库名和一个用于匹配表名的正则表达式。create table tt1 (id UInt16, name String) ENGINE=TinyLog;create table tt2 (id UInt16, name String) ENGINE=TinyLog;create table tt3 (id UInt16, na原创 2020-12-07 20:56:22 · 749 阅读 · 0 评论 -
clickHouse-文件引擎
File表引擎以特殊的文件格式(CSV,Native等)将数据保存在文件中(支持的格式如下https://ClickHouse.tech/docs/v20.3/en/interfaces/formats/#formats)。用法示例: File(Format)数据从ClickHouse导出到文件将数据从一种格式转换为另一种格式通过编辑磁盘上的文件来更新ClickHouse中的数据。示例一:创建好表,在表所在路径下编辑数据,数据就会进入表中,可查询;建表create table tb_f原创 2020-12-07 20:44:58 · 514 阅读 · 0 评论 -
clickHouse-缓存引擎
缓冲数据以写入内存,并定期将其刷新到另一个表。在读取操作期间,同时从缓冲区和另一个表读取数据。Buffer(database, table, num_layers, min_time, max_time, min_rows, max_rows, min_bytes, max_bytes)引擎参数:database- 数据库名称。可以使用返回字符串的常量表达式来代替数据库名称。table –将数据刷新到的表。num_layers–并行层。在物理上,该表将表示为num_layers独立的缓冲区。建议值原创 2020-12-06 23:43:28 · 2185 阅读 · 0 评论 -
clickHouse-Memory引擎
内存引擎,数据以未压缩的原始形式直接保存在内存当中,服务器重启数据就会消失。读写操作不会相互阻塞,不支持索引。简单查询下有非常非常高的性能表现(超过10G/s)。一般用到它的地方不多,除了用来测试,就是在需要非常高的性能,同时数据量又不太大(上限大概 1 亿行)的场景。– 创建一个Memory引擎的表create table tb_memory(id Int8 , name String) engine = Memory ;– 插入数据 insert into tb_memory.原创 2020-12-06 23:36:43 · 1323 阅读 · 0 评论 -
clickHouse-MergeTree家族引擎
- MergeTree系列的表引擎是ClickHouse数据存储功能的核心。 - 它们提供了用于弹性和高性能数据检索的大多数功能:列存储,自定义分区,稀疏的主索引,辅助数据跳过索引等。 - 基本MergeTree表引擎可以被认为是单节点ClickHouse实例的默认表引擎,因为它在各种用例中通用且实用。 - MergeTree系列(*MergeTree)的引擎和其他引擎是最强大的ClickHouse表引擎 - MergeTree系列中的引擎旨在将大量数据插入表中。数据快速地逐个部分地写入表中,然.原创 2020-12-06 23:29:42 · 544 阅读 · 0 评论 -
clickHouse-日志引擎
引擎:不同的引擎决定了不同的数据存储位置和数据的特点(引擎可以简单理解为存储数据的地方)数据库引擎(集成引擎 Kafka MySQL ODBC JDBC HDFS ):使用方法,例如:建表时 engine=HDFS(hdfs://linux01:8020/数据文件存储的路径)表引擎:常用的 日志引擎,MergeTree家族引擎 等分布式引擎:...原创 2020-12-06 22:40:39 · 415 阅读 · 0 评论 -
clickHouse 基本数据类型
整型 :固定长度的整型,包括有符号整型或无符号整型。整型范围(-2n-1~2n-1-1):Int8 - [-128 : 127]Int16 - [-32768 : 32767]Int32 - [-2147483648 : 2147483647]Int64 - [-9223372036854775808 : 9223372036854775807]无符号整型范围(0~2n-1):UInt8 - [0 : 255]UInt16 - [0 : 65535]UInt32 - [0 : 429496原创 2020-12-06 22:04:49 · 448 阅读 · 0 评论 -
clickHouse简介
ClickHouse:分布式数据库自己管理数据,读取别人的 mysql hdfs 网络 本地文件存储海量数据解决并发完全的列式存储 ClickHouse是俄罗斯的Yandex于2016年开源的一个用于联机分析(OLAP:Online Analytical Processing)的列式数据库管理系统(DBMS:Database Management System),简称CH , **主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。** Clic原创 2020-12-06 21:01:24 · 389 阅读 · 0 评论 -
Hive中分区 和 分桶
分区针对的是数据的存储路径(partition by 字段); 分区提供一个隔离数据和优化查询的便利方式。不过,并非所有的数据集都可形成合理的分区,特别是之前所提到过的要确定合适的划分大小这个疑虑。分桶针对的是数据文件(into 字段个数 buckets)对Hive(Inceptor)表分桶可以将表中记录按分桶键(字段)的哈希值分散进多个文件中,这些小文件称为桶。分桶是将数据集分解成更容易管理的若干部分的另一个技术。把表或分区划分成bucket有两个理由:1,更快,桶为表加上额外..原创 2020-12-04 23:19:56 · 95 阅读 · 0 评论 -
HBase与Hive的对比
HBase与Hive的对比1.Hive(1) 数据仓库Hive的本质其实就相当于将HDFS中已经存储的文件在Mysql中做了一个双射关系,以 方便使用HQL去管理查询。(2) 用于数据分析、清洗Hive适用于离线的数据分析和清洗,延迟较高。(3) 基于HDFS、MapReduceHive存储的数据依旧在DataNode上,编写的HQL语句终将是转换为MapReduce代码执行。2.HBase(1) 数据库是一种面向列存储的非关系型数据库。(2) 用于存储结构化和非结构化的数据适用于原创 2020-12-04 23:04:54 · 276 阅读 · 0 评论 -
Hive中查询当月第一天的函数trunc()
查询当月第一天例: select trunc(‘2020-12-03’,‘MM’) – ‘2020-12-01’查询当前季度第一天例: select trunc(‘2020-12-03’,‘Q’) – ‘2020-10-01’查询当年第一天例: select trunc(‘2020-12-03’,‘YEAR/Y/YYYY’) – ‘2020-12-01’...原创 2020-12-03 23:26:00 · 9434 阅读 · 3 评论 -
row_number() ,rank()和dense_rank()的区别
row_number()仅仅定义组内的 数据 进行编号 1 2 3 4 5 。。。rank()编号的时候排序字段会参与,数据相同的字段的编号也相同,总编号不变 1 2 2 4 5dense_rank()编号的时候排序字段会参与,数据相同的字段的编号也相同,总编号改变 1 2 2 3 4...原创 2020-12-03 23:10:54 · 849 阅读 · 0 评论 -
clickHouse-单机安装,集群安装详细步骤
需联网安装!1. 单机安装 1) 安装curl工具 yum install -y curl 2) 添加clickhouse的yum镜像 curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo bash 3) 检查镜像情况 [root@doit04 yum.repos.d]# yum list | grep clickhouse原创 2020-12-03 22:21:10 · 421 阅读 · 0 评论 -
Hive-调优
1.Fetch抓取: Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台,这样做可以避免使用MapReduce导致的效率低的问题。实现: 在hive-default.xml.template文件中hive.fetch.task.conversion默认是more,老版本 hive默认是min原创 2020-12-03 21:59:19 · 127 阅读 · 0 评论 -
Hive-行转列,列转行
行转列 将多行的数据合并到一列中 (把每行中的数据聚集到一个数组中)collect_set () – 去重collect_list (split(str)) 这两个都是聚合函数 将收集的多行数据聚集成一个数组集合concat (串,符,串。。。。。)拼接 参数是可变参数 拼接字符串concat_ws(符,数组/map) 参数一 拼接符 参数二 可变个数的字符串 数组数据: 慧慧 处女座 B 老娜 射手座 A 奔奔 处女座 B gangge 白羊原创 2020-12-01 23:51:15 · 379 阅读 · 0 评论 -
Hive-分桶表
分桶表分区表是将数据分文件夹管理 , 减少数据扫描的文件范围 直接从对应文件夹中读取数据分桶表 是对join 查询的优化 将数据按照指定的字段的规则分文件数据: 1001 ss1 1002 ss2 1003 ss3 1004 ss4 1005 ss5 1006 ss6 1007 ss7 1008 ss8 1009 ss9 1010 ss10 1011 ss11 1012 ss12 1013 ss13 1014 ss14 1015 s原创 2020-12-01 23:19:52 · 476 阅读 · 2 评论 -
Hive-几种常用函数
查看所有函数:show functions;查看函数详情:desc function 函数名;1.array(ele1 , ele2…) --创建数组 数组是hive中的一种集合数据类型 和 java中的数组一样select array(1,2,3,4) ;select array(1,2,3,4)[index] ;查出指定索引的数据2. array_contains(arr , element) ;查看数组中是否包含值select array_contains(array(‘a’,‘ab’原创 2020-12-01 23:07:02 · 998 阅读 · 0 评论 -
Hive-排序
排序在执行SQL的时候默认是一个reduceteskset mapreduce.job.reduces=n; – 配置reduce的个数set mapreduce.job.reduces; – 查看配置结果order by 全局最终结果排序distribute by 指定分区字段 分区sort by --区内数据排序cluster by 当分区字段和排序字段相同 并且是升序的时候使用cluster by 替换 distribute by sort by先设置原创 2020-12-01 22:53:40 · 91 阅读 · 0 评论 -
Hive-关联查询
SQL语句逻辑执行顺序 select (4 from (1 tb_name where (2 group by (3 having (5 order by (6 limit (7关联查询joininner joinleft joinright joinfull joinunionunion allleft semi join数据1:1,a2,b3,c建表create table t原创 2020-12-01 22:40:10 · 992 阅读 · 0 评论 -
Hive-窗口函数入门
给出数据:姓名,日期,花费jack,2020-01-01,10tony,2020-01-02,15jack,2020-02-03,23tony,2020-01-04,29jack,2020-01-05,46jack,2020-04-06,42tony,2020-01-07,50jack,2020-01-08,55mart,2020-04-08,62mart,2020-04-09,68neil,2020-05-10,12mart,2020-04-11,75neil,2020-06-1原创 2020-12-01 22:20:38 · 85 阅读 · 0 评论 -
Hive-静态分区和动态分区
分区表(动,静) :分区表是将表的数据以查询维度为依据分文件夹管理 , 当根据这个维度查询的时候就可以减少数据的检索范围比如有一个log表 所有的日志数据在log表目录下 ,假如想查20201130日的数据 , 只能遍历所有的数据。有了分区表以后 数据就可以以日期为维度 为文件夹存储对应日期的数据 假如想查20201130日的数据直接从对应的20201130文件夹下读取数据静态分区:文件中存储的是指定规则的数据,比如 a.log中存储的全是20201130的数据直接创建一个分区叫202011原创 2020-11-30 22:38:19 · 222 阅读 · 0 评论 -
Hive-数据导入的几种方式
几种基本的导入数据方式:1 建表的时候指定location 结构化数据的位置文件夹 外部表例:①新建user1.txt 文件 将该文件上传到HDFS 的/data/test/目录下②建表create external table tb_user2(id int,name string)row format delimited fields terminated by ‘\t’location ‘/data/test/’;③此时创建外部表时直接指定数据的位置,查看表时数据直接就在表中原创 2020-11-30 20:34:48 · 501 阅读 · 0 评论