自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Clickhouse (四)

ReplacingMergeTree 是 MergeTree的一个变种, 它存储特性完全继承MergeTree,只是多了一个去重的功能,尽管MergeTree 可以设置主键,但是 primary key 其实没有唯一约束的功能,如果你想要处理掉重复的数据,可以借助这个 ReplacingMergeTree。对于不查询明细,只关心以维度进行汇总聚合结果的场景,如果只使用普通的MergeTree的话.无论是存储空间的开销,还是查询时临时聚合的开销都比较大.这里它们都存在不同的分区这里就是我们上面所说的。

2023-09-22 16:59:15 59 1

原创 Clickhouse (三 TTL数据)

TTL即 Time to live , MergeTree 提供了可以管理数据表或者列的生命周期的功能。通过上面的案例我们基本上也就能理解 这个表级就是当到达规定时间后表内所有的数据都会失效消失。这里我们需要注意是实时数据 所以我们在插入测试的时候也要注意虚拟机时间 否则影响数据效果。这里我们可以明显的看出我们建表是设定的字段下的数据全部归0了 这代表着数据的失效。(这里失效了 就不存在了 但是我们可以通过设定将这个数据保存的其他表中)这在我们处理一些特殊的实时数据的场景下非常的使用。

2023-09-20 18:50:01 448 1

原创 Clickhouse (二 引擎)

内存引擎,数据以未压缩的原始形式保存在内存当中,服务器重启数据就会消失,同样的它也不支持索引,所有在简单的查询下会有非常高的i性能,一般用到的地方不多,大多都是用来测试,需要高性能,同时数据量又不大的场景下。这里我们可以看到 数据重复存在了 而且在不同的分区中(因为我们建表的时候确定的是按时间分区,所以我们可以看到 同一的时间在不同的分区 这里也是因为还没有进行合并导致的)可以用很少的索引数据,定位更多的数据,代价就是只能定位到索引粒度的第一行,然后在进行一点扫描。

2023-09-19 11:56:02 63

原创 Spark Streaming

创建出来的DStream 支持两种操作,一种是转化操作(transformation),会生成一个新的DStream,另一种是输出操作(output operation),可以把数据写入外部系统中。如果一个项目除了实时计算,还包括了离线批处理、交互式查询等业务功能,而且实时计算中,可能还会牵扯到高延迟批处理、交互式查询等功能,应首选Spark生态,用Spark Core开发离线批处理,用Spark SQL开发交互式查询,用Spark Streaming开发实时计算,三者可以无缝整合,给系。

2023-09-18 14:50:05 61

原创 Spark (理论篇)

luster),Master在接到Driver注册Spark应用程序的请求后,会获取其所管理的剩余资源能够启动一个Executor的所有Worker,然后在这些Worker之间分发Executor,此时的分发只考虑Worker上的资源是否足够使用,直到当前应用程序所需的所有Executor都分配完毕,Executor反向注册完毕后,Driver开始执行main程序。,Executor全部注册完成后Driver开始执行main函数,之后执行到Action算子时,触发一个job,并根据。

2023-09-17 22:45:41 34 1

原创 Clickhouse (一)

线程级 (单条的查询 就能利用本机所有的CPU 所有它才快 所有也导致了它的缺陷 多数查询的时候就会变慢 所有高 qps不是它的强项) 后续使用的时候 这一点会导致一些问题 也就是在一些情况下 会不好使用 费CPU 所以它不适合做初始的储存 适合做后期已经处理过的大量的字段多的宽表查询。是运用sql语法,包括了DDL 建表语句 字段名和DML 查询语句 以及配套的各种函数 (count sum ),用户管理及权限管理,数据的备份和恢复。关联查询的情况下 在设计到join的情况下 虐式就比较明显了。

2023-09-13 20:18:16 81 1

原创 SparkSQL(三)(案例)

这里我们是一个判定替换 : 我们第一时间拿的是原表的 appname 但是如果他是空的 我就会去第二张表中去找 然后进行替换赋值 如果不为空那么将用第一张表的 appname 因为我们下面的数据牵扯到 计算总和 SUM 所以我们 group by 用 id 和 name 分区 (这里注意 在GROUP BY子句中,每个未聚合的字段都必须在SELECT列表中或者使用聚合函数进行处理。而后导入我们写的替换文档,同样用 : 号切分 因为就两个字段 所以我们直接确定数据类型和 字段名称 然后。

2023-09-12 09:28:21 71 1

原创 SparkSQL (二)

这里我们按照需求按省市分区 然后计算后面数据的总和 得出下面的结果 (原数据的问题导致后面全是空)这里因为字段太多了 所以在开始之前我们就将这段分两部分去写所以在这里我们直接调用了方法。sava 设置输出的路径 (最后输出的地址一定要是不存在的)本地会生成一个 emp01的文件 打开后我们会看的如上的文件。打开XLS工作表 我们就可以得到 我们刚刚查询到的数据。第一步:我们提取数据 并将数据切分 拿到我们需要的字段。然后createTempView 输入表名。然后我们将得到的结果 导入本地 形成表格。

2023-09-11 18:42:47 27

原创 Spark SQL (一)

可以看出,Dataset在需要访问列中的某个字段时是非常方便的,然而,如果要写一些适配性很强的函数时,如果使用Dataset,行的类型又不确定,可能是各种case class,无法实现适配,这时候用DataFrame即Dataset[Row]就能比较好的解决问题。2、三者都有惰性机制,在进行创建、转换,如map方法时,不会立即执行,只有在遇到Action如foreach时,三者才会开始遍历运算,极端情况下,如果代码里面有创建、转换,但是后面没有在Action中使用对应的结果,在执行时会被直接跳过。

2023-09-10 19:25:36 28 1

原创 Spark SQL (初始篇)

在老的版本中,SparkSQL提供两种SQL查询起始点,一个叫SQLContext,用于Spark自己提供的SQL查询,一个叫HiveContext,用于连接Hive的查询,SparkSession是Spark最新的SQL查询起始点,实质上是SQLContext和HiveContext的组合,所以在SQLContext和HiveContext上可用的API在SparkSession上同样是可以使用的。SparkSQL 可以看做是一个转换层 向下对接各种不同的结构化数据源,向上提供不同的数据访问方式。

2023-09-08 08:44:13 68 1

原创 认识zookeepr

zookeeper介绍

2023-07-28 10:35:38 37 1

原创 复合函数-Array

Array

2023-07-28 09:28:36 29 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除