粉丝7.5万获赞4.5万

quick house 是一个开源的劣势数据库管理系统,专门设计用于处理大规模的分析查询。他最初由俄罗斯搜索引擎公司 rendex 开发,并于二零一六年开源。 quick house 的主要目标是提供高性能、 低延迟的数据分析能力,尤其适用于大数据量和高并发的环境。关键特点和特性包括,一、劣势存储 kithos 采用劣势存储方式。 与传统的行式数据库不同,这种存储方式在分析型查询中通常表现更为高效,特别是在大数据集上。 二、高性能 quickhouse 通过使用多核处理、数据分区、并行查询等技术来实现高性能的分析查询。他特别擅长处理、 聚合、排序和过滤等操作。三、数据压缩 click house 使用多种压缩算法,如 lc 四、 zstd 等来有效的减少存储空间,降低磁盘 apple 并提高查询性能。 四、分布式架构 croc house 具备分布式的特性,可以在多个节点上进行数据存储和查询处理, 这使得他能够横向扩展处理大规模的数据机。五、优化时间序列数据处理 quick house 的某些表引擎,例如 mert 专为时间序列数据而设计,提供了高效的插入、合并和查询功能。六、支持复制和高可用性 quick house 支持数据的复制和分布式架构,确保数据的荣誉性和荣 容错性,以提高系统的可用性。七、开源 quick house 是开源的,用户可以自由使用、修改和分发它,同时社区支持也为其不断的发展和改进提供了动力。 quick house 通常被用于大规模的数据分析、 实时报表生成、月质分析、时间序列数据处理等场景,由于其优越的性能和可扩展性,他在处理海量数据的环境中表现出色。

what is the core technology that sets you apart from other technologies or you know whether it's global market or in china because you know allap is a very very crowded market you know from the big players such as ali tensent huawei, they're all they all have their own oip products and you know and there are a bunch of smaller players that are trying to play playing the ketchup cards so what sets you apart yeah, so, and of course as we all know there's plenty of technologies plenty of products to choose from, but i think click house is quite unique well first of all it is an open source technology it's been in the open source it's twenty sixteen and it's a very popular project with contributions from over thirteen hundred developers that been over hundred thousand commits it's very rapidly evolving project for putting out the major release every month and you know the space of innovation and the older features and everything that's coming in you know the product speaks for itself it is if there's one word that describes clickhouse it is fast it is the fastest analytics database on the market in fact there is a benchmark that's been you know supported by the community with measurements kind of submitted from the open source community and you can see all the different technologies out there and very proud that clickhouse is at the top in terms of the different analytics workloads it is a highly distributed systems, it's multimaster it's you can deploy it on a single node or many nodes across different availability zones across regions and you can scale it vertically you can scale it horizontally and you can survive the failure of anyone or a number of components without the impact of the customer and you know it is an analytic database that is serving all types of different use cases everything from data warehousing where we are at real time data warehouse alternative to traditional data warehouses like terra data and snowflake there is this observability where you know traditionally users have to sample data or provide a very short ttl time to live just because it's very difficult to keep all of that data with clickhouse you can load all of your pentabytes of your logs and metrics without ever needing to delete them do even some of the more recent development such as machine learning and join it to the i where clickhouse is a very popular database to both build machine learning models run inferences in event we provide some custom features specialized features like vector search that allow customers to develop their advanced machine learning and generate ai so it's a pretty versatile technology that serves all sorts of analytical use cases, but the key is speed and exactly and you are just one lego block you are just one piece of the puzzle and oftentimes what's more important is not how you differentiate based on specific features, but how will to plug in into that ecosystem and that's why it is so important for any database project certainly for clickhouse to continue to invest not just in the developer ecosystem, but into the technical ecosystem and having a number of replication services plugins connectors language, clients, data pipelines, visualization tools, security tools and just work with everybody they need to not be tied to specific cloud and that's why for example you know in china we have a partnership with alibaba it was a partnership, but outside china we work on aws。

大家再来介绍一下的是那个 click house, 在四月十三号,它 release 了一个二十三点三的这样一个版本,我们看一下那个它的 click house 的这个版本,最新的这个 release 的这个版本,它大概有哪些新增的功能?那么这个版本当中呢? click house 这个版本的话,它 release 的这个版本的话呢,大概有二十二个新增的功能,然后有十四个这个性能优化的点,还有六十一个 bug 的 fix, 这个是 click house 这个二二十三点三版本的这样的一个优化的一个成果。那么我们介绍一下,我还是给大家介绍一下他们这个版本里面最大的几个亮点的功能,跟大家一起来介绍一下。 第一个功能,它的有一个实验室阶段的这样的一个平行并行复制的这样的一个功能,它这个功能还是比较强大的,就像那个 mexico 里面的这个主重复制一样,它可以把各种各样的 click house 里面的这个数据的分片 平行的能够复制到各个的这个节点上去。他这个功能的话呢,主要是为了能够让那个 click house 拥有加这个 click house 的这个集群,能够这个数据的这个分片能够更多的均匀的分布在更多的节点上面,然后他的查询性能可以得到进一步的增强。他主要是这样的, 这张图就是这样讲的,那个 click house 里面,它因为它是本身是支持这个分布式表的,这个分布式表就是说它这个表示在不同的这个 host 上面,就是不同的那个福气上面,那么不同的这个福气上面,它也有很多的这个数据的叫 partition, 就是分区,那么 他的这个分区现在呢增加了一个功能,他增加了一个功能,就是他把这个节点能够复制到其他的这个 host 上面去,这样的他就可以通过分布式的这个表的查询,他有多个复制的副副本可以查出来,他 它的 r o 可以结合更多的这个 host 性能可以得到进一步的增强。它主要是做这样一件事的,那么这个功能的话呢,也为这个 click house 往这个集群方向又迈进了一大步,它也是这样,这个功能的话目前还是在实验室阶段的, 在实验室的这样的一个程度当中,当然也是在这个二十三点二的这个版本,它也是可以二十三点三的这个版本它也是可以体验的啊,这是一个功能。第二个功能,它主要是, 呃,因为 k cos 它是一个实时的数据仓库,所以的话呢,它的功能会比较强,查询的功能会比较强,但是当你这个记录发生一些删除的时候的话呢,能力就会比较弱一些啊,那它这次的吼一个叫轻量级的就删除的功能已经上线了,它本质上它这个轻量级删除功能,它其实本质上不是把数据从 这个数据文件里面直接删除掉,他其实打了一个这个删除的标志位,所以的话是个轻量级的这样的一个一个删除,那么他在 查询和过滤当中,他就不会去把这个标记删除的,这个记录就不会统计进去了,他等于是做这样的一个操作,那有了这样的一个操作了之后,那么你在引热他新的这个记录的时候呢,相对来讲时候呢,你就相当于插入新的记录来做啊,通过这种方式让那个 click house 拥有了这个 仓库的这样一个实时更新的这样的一个能力,所以这个能力他们叫轻量级的删除的这个功能。那么这个功能呢,在二十三点三这个版本呢,已经 g a 了,就是说已经达到了稳定的状态,就是可以在生产环境里面用了,他等于是这样。那第三个功能呢,主要是 icicle 的这个语法的兼容, 那 click house 跟 my circle 的这个语法, circle 它直接可以呃数啊什么的,它直接可以调用 my circle 的这种语法,直接在 click house 里面来用啊,完全能够兼容这个功能的话呢,这也是蛮重要的,就是说在 click house 里面的话,经常去查询它的一些性能,所以大 可以把这个 click house 里面的这个性能的这个数据能够同步到 graphna 这样的一个可视化的这样的一个平台里面去,可以对这个 click house 里面的这个 performance 就是这个性能进行跟踪和查询,它主要是做这样的一个功能,这个功能的话也是 非常好的,它是有助于我们去实时的了解这个 click house 当前的使用的情况和它的这个性能的这个情况。按前面也是讲的,它这个里面也可以就是因为它有了这个 click house, 拥有这个主重复制的这样的一个功能, 这个数据分片复制的这样的一个功能。所以的话呢,你也可以通过 graph 实时的去看它的每个节点目前到底处于什么样的一个阶段,性能到底是怎么样? 所以叉子 click cos 其实是我一直是在我的这个视频当中,是一直是推荐和建议这个企业企业级的服务来用的,因为它相对来讲它的性能要比 mc 口要性能要好一千倍, 同样的这个硬件它的性能要比 michael 要强一千倍,所以它非常适合做这个数据分析。那做数据分析,随着这个企业做数据分析,它的这个性能要求越来越高,所以的这个 click house 的话,它不断的在这个性能和新的功能上面持续的迭代和优化,它等于是这样的, 所以这个二十三点三的这个版本的话呢,它主要就是优化这个四点以上,四点的这个功能还是非常非常好的,它这个功能好,呃,今天呢就展示跟大家就交流到这。好啊,大家有什么问题也可以给我留言。

人工智能它是非常需要有这种需要,非常需要数据的支持,我们现在这个大量的数据,它是可以放在 click house 或者 elastic 社区这样的一个开源的框架当中,原先我们可能会放在这个关系型数据库里面,但是的话呢,当你的这个数据量 达到一定程度,你放在关系性数据库里面的可能性就非常太大了,因为他的效率不是太好,太好啊,他的查询性能不是太好,他等于是这样,所以的话呢,我们要放一些开源的这种大数据的这样的一个平台,来作为这些数据沉淀和查询的这样的一些 一个引擎。今天我们主要是介绍一下呢,黑 house 跟 elastic 设置这两个开源框架之间的比较,这两个框架名啊,都有名啊,然后他都可以搜索啊,查询啊,包括也能支持一些 c 口啊,包括他也能够支持一些加一层的格式,而且他们现在的性能就越来越好,而且两者的这个功能啊越来越 接近了。原来就是 elastic 社区主要是做搜索的, click house 的话呢,主要是做那个数据,那个 bi 的这个数据仓库的分析的。但是现在随着这个这两家公司这个产品的不断的开发和完善,然后两边的这个功能就越来越接近了啊,而且他们都推了 cloud 的这种功能,就是萨斯的这种服务, elastic 社区里面也有这种 cloud, cloud 的服务就是类似于阿里云的这种服务,你直接不用在本地去安装 elastic 社区,你直接可以买他的萨斯的服务,直接可以在云端使用。 click house 也是一样的,你也可以直接买 click house 的 cloud 的这种服务,然后可以把你的数据上传到这个云端,然后直接进行处理,他等于是这样。 但是这两家公司虽然它的这个功能表面上看上去类似,也都是继续开源的,也有商业的,也有 cloud 的这种服务,但是它本质的话呢,还是有些区别的,它本质还是有些区别的, 我们今天还是来介绍一下它的区别到底在哪里。这个两个两个东西的简单的介绍,我就不不具体讲了,应该大家都会比较了解。我们讲一下它内部的这个数据结构有些什么不一样,这个也是比较重要的,就是 click house 跟 elastic 社区里面的它的这个数据结构有些什么什么样的不一样。 elastic 社区的话呢,它的本质来讲呢,它是用一个开源的这样的一个阿帕奇旗下的,叫有一个 loosen 的这样的一个开源的引擎来做的。那么它的内置的这个数据结构有点像我们数据库里面的那个 table, 当然它它称之为 do, 叫 documents, 是类似于这个文档,因为它原来主要是做搜索的,所以它的最小的单元就是以文档为主的每个文档,它可能还会有些 feed, 这个跟我们 table 里面的 feed 有点相似,当然它有一个比较特殊的 feed, 有一个全文检索的这样的一个 feed, 它是 支持解锁的啊,我回头也是来讲全文解锁的话呢,一种多引或者叫锁引,锁引啊,他的结构的话有点像这个数,我们用的点一样的,他就有些关键词,比如说你有个部首,那么这个部首里面他是在第几页,他是第几个文档,他等于是这样。我举一个例子,比如说我这个关键词, 那么它可能是它会创建一个锁引,中国的这个 key word, 它到底是被哪个文档的面是引用的?它等于是因为它的这个锁引是这样来建的,嗯, 所以,所以这个叫反应,那么反向锁引的话,所以因为他这样的一些数据结构,所以当我们做一些关键词全文检索的一些关键词,就是类似于百度搜索、 google 搜索的这种 关键词,搜索的时候,它会根据这个关键字匹配,立刻可以找到你所对应的文章的内容啊,所以它这个效率就会高啊,那么它也支持非常非常大的这个锁引的这 documents, 它能支持很多。这个, 呃,那么值亿上亿啊,他的他,而且呢,他也是能够支持这种类似于这片啊,多福气,分布式啊,他这个都能支持,所以你几千亿条数据他都是能够支持的,他可以做很多的节点查询效率,他分别,哎,每每一个节点上进行查询,查询完了之后再合并出来,他等于是这样啊, 他的效率,以后的他也是一个分布式搜索的这样的一个这样的一个基础架构,他等于是这样啊,呃,搜索啊,便搜索啊,这种方面他是应用的场景是非常广泛,当然他也能支持一般的 也能这种类似于数据库里面的这种啊,比如说支付出投影啊啊,投影啊,他能支持这个 c 口里面的大于小于等于的这种操作符号,能够把相应的,呃,这个 document 的事情, 它的那个数据的基础架构的话呢?呃,它是啊,它叫类似于我们的那个呃关系新数据库,就 myc 比特贝斯。但是他的优势是像麦西口的话呢,他是行存储,就是一条一条记录这样去存储的。但是 kikos 呢,他是列存储的,呃,他一个表当中的一个列的字段,比如说他这个叫 name, 他是放在一起的,他是通过这种方式去做的这种的数据的这个存储结构的,他会对 做这样的分析会比较有价值。比如说我要查一下某个时间段内的这个订单的累计的这个情况,那么他就可以直接从两个列里面 把相应的字段给找到,然后再做一个类似的那个聚合的操作就可以了。所以当他的效率做分析的时候,他的效率会非常高,但是如果他是做行级的真山茶改,他的效率就会非常低,他等于是这样,这个是他的数据结构 造成的。当然那个 click house 里面还有一个比较好的数据结构,我们原来也是介介绍过的,叫雾化仕途,就是你可以把偶一句 据的那个经常要查的这句 c 口变成一个雾化,试图就是变成一张表,他的意思这个表就是零,他会永永固地存在这个 磁盘上面,或者存在内存上面。当你这个 table 里面的记录发生变化的话,它自动的会把那个雾化视图作为数据的相应的改变。那么当你这个雾化视图经常要根据雾化视图来进行查询或者进行检索的时候,它就会非常快,它的效率要比你原来 查明细的表效率要更高,它等于是这样,这个是它的数据的基础结构决定的。这两种方式呢,是 elastic 社区所不具备的,它是所不具备的。 那,那当然那个 click house 里面它也是可以做全文检索,当然它全文检索的这个能力的话呢,是远远要落后于 elastic 社区的,所以这个就是它这个两个底层的引擎不一样,数据结构不一样,所以会导致它的这 这个所擅长的点也是不太一样,所应用的场景也略有偏差,它是等于是这样的。当然 click house 的话呢,它也是能够支持集群的,当然它这个集群它是用那个 sukeeper 来做的,所以说用 sukeeper 来做的话呢,它的集群的数量不能太大, 他集群的数量不能太大,那么如果集群数量比较大的话呢,那么他整个内部的这个复制,包括数据的同步就会造成很大的瓶颈,他不像 elastic 社区一样,他他的这个集群采用更加轻量级的分布式的种方法去做, 它等于是这样。所以的 click house 跟 elects take 社区,它各有各的。呃使用场景,使用场景总的来讲的话呢,它都是可以作为大数据分析的,这样的一个 底层的引擎,它的效率高,都会比较高。相对来讲,如果用做全文检索或者日志搜索, elastic 设置是比较有优势的。特别做全文检索,关键字搜索,它是特别有优势的。 而且如果它是集群的数量非常大,它是非常有优势的。那么 kick house 的话呢,它的优势相对来讲,它主要是用在那个实时的这个数据仓库的计算,特别是实时数据啊计算这个上面它的优势会比较明显,它等于是这样, 而且如果是真的去做一些聚合操作,做一些过滤操作,相对来讲 click house 的效率可能要比 elastic 社区的性能要更好些。 它是等于是这样,但是从并发性能来讲的话呢, elastic 社区要强于 click house, 它是等于是这样。在生态上面, elastic 社区也提供了很多什么可视化的工具, p 八呢?包括有一些日志收集的,呃,叫 bit five, 还有各种各样的类似于跟 elastic 色去配套的这个工具,所以它使用起来相对来讲会更加简单一点。 click house 的话呢,它呢,呃,就是相对来讲它的它的生态,它需要其他的开源的生态去去支持 click house house 的这种视化,原来我们也是介绍过的,叫 matebase 啊,它是直接可以从 house 里面去做可视化的这种分析,对吧?啊? rover 呢,它可以 click house 的一些那个煎熬需要通过开源的生态去那个 click house 的生态的,它的是这样啊,所以呢,这个两个的话呢,差异的话呢,都是,那么都这个两个解决方案都非。 呃,好了。一般的话呢,我们 leco 斑是作为搜索的引擎的,包括一些我们一些日志的引擎,我们一般都会用 clear cos 啊,用 excel 去来做啊,我的应用场景,比如说什么商品搜索啊,文档的搜索,图片的搜索,我之前也是介绍过 elastic 社区可以作为人脸识别的这样的一个引擎的,它也是可以的啊,包括一些个性化的这样的一些推荐的一些 它都是可以的,包括一些地理位置的这样的一些搜索,它其实都是可以做的。那么 click house 的话呢,它 它主要还是做一些实时的这个分析可能会更好一些,特别是在这个有到一些什么古鲁拜,呃,比较的是一些 c 口啊,对吧?方面是比呃是 呃,他的计算机非常快,如果是比较慢的话呢,你也可以把它变成一个,对吧?你可以先先计算预先存储在这个相应的内存或者在磁盘上面,然后他读取他的话呢,非常快啊,他也是这样啊,所以今天的话呢,我就跟大家就是 登录的去跟大家去介绍一下 click house 跟 elastic search 啊,都可以作为一些大数据的这样的一个底座的平台,但是使用场景的话呢,都是不一样。那么小工艺的话呢,两个开业员的框架其实都是它,呃,而且通过 flink 啊,这个可以把这个数据相互的转化,相相互的自动实时的同步,他等于是这样,好吧,啊,今天我就跟大家就简单就聊到这。

click house 它的那个 c 口的这个连接,它呢有几个比较重要的算法?上一期这个这个博客,上一期呢也是跟大家讲过, click house 里面 作为一个实时的这样的一个数据仓库,它的一些的连接,它支持非常非常多的这种 c 口的连接。之前我们也讲过,大概支持六种,内连接、外连接、半连接、相似链接等等一系列的。那么我们看一下它这个 c 口链接里面,它还是有有一些经典的一些 脚印的一些算法,就是表和表这些连接之间的一些算法,这些算法也是有些时候是非常快,但是呢他要消耗些内存,有些时候呢他会慢一点,但是他可能他需要的内存就会比较少。那么有些在不同的应用场景当中,我们可能要选择不同的算法, 等于是这样,今天呢,我们主要是起来聊一聊 click house 里面比较经典的这个三种的 joining 的这种算法。三种 joining 的算法,那么在讲这个算法之 前,我们先来看一下 click house 一个一个查询的一个 popline, 那我们可以看到他有一句 c 口出来的时候呢,他先会给服气啊,然后服气。这边呢,他会根据你的 c、 p、 u 所在的和数,那他会起和微核,他就会起一个现成的他这个例子,他说他有四个 c、 p、 u 的内核,他这句 c 口进去之后呢,他会分别起 这个子的查询,他等一下从这个 table 的 data 里面自动地把这个数据能够拿出来之后过滤,过滤完之后聚合,聚,聚合完之后排序,排序完之后再 把这要的这个数据进行合并,合并之后呢再进行一个返回 limit, 比如说一千条的这样的一个操作,然后再把这个查询的结果返回给这个客户端,他的整个一个操作,啪啪啦的整个一个流程是这样的,所以他是这个是并行的,他在很多的这个操作当中他是并行的,那这个并行的话呢?他他可以是设置的通过一个 max threats 这样的一个设定,你可以有一个全局的这样的一个设置,当然你也是可以在每条语句当中指定这个有 多少个 max three 的进行并行啊,它是这样的好,呃,这个是 click house, 它的这个最基础的它的查询语句的这样的一个原理, 为什么他会这么快?他就是因为充分的利用了我们 c p u 的这个内核,那 c c p u 的内核充分的就是利用所有的这个硬件的资源在克里 cos 里面,那么他并行的话呢,那么他可以大大的缩短这个查询的时间,他是这样的一个原理。 好,那么我们来看一下他脚印操作的话,他目前也是一样的,他可以最大效率的用到这些资源。他有算法,六种不同的算法,他在这里面讲啊,他有 rat, 就直接的这个并行的 hash, 还有一个 hash 算法,还有个 green hash 算法,还有一个这个就是 是全排序的 merge, 还有一个是 merge merge 的这种算法,他这个是有两个轴的,一,这个呢就是靠近,越靠近这样越快,越靠近这个上面他所需要的内存就越多,他等于是这样,当你内存用用的少的,他相对来讲他这个速度就会比较慢一些,那么他比较适合于一些 表非常非常大,数据量非常非常多啊,你的内存没有这么多的情况下,你不得不用这些,能够 把这个查询啊,能够给查出来。他等于是当你的表的数据量比较小,或者你你的整个服期内存比较高的时候,那你可以用这些算法,可能是来讲他的速度也会比较快,同时他也要消耗更多的一些内存。今天我们主要讲三个 hush 的算法,一个并行,一个 hush, 还有一个 grace hush, 这个三个算法我们今天会来比比较一下,给大家也提供些例子,来看一看。到底 在 click house 里面,表和表之间链接用这个 hash 这个算法的时候,这三种不同的 hash, 它使用的不同的场景 等于是这样。好,后面他这个两种算法是在下一篇的博客当中,我们再会来讲这个东西。好,我们先来看这样一个例子,这个例子呢上次也是讲过的,什么演员还有一个是角色,他两个, 那么这个两个两个表他也是分别有大小的,演员这个表呢,他就有一百万的数据,那么演员和这个角色的这张一对多的这个表的话呢,他就有一亿条数据,他是等于是这样,所以大家记 记记住是演员这张表相对来讲他比较小,这张表的话呢,要大一百倍,他等于是要大一百倍,那么我们看看他到底有些什么差异,我觉得这个还是很有价值的。首先他在实验室的这样的一个 kick house 的这个 server 上面呢,他最大的 max three 的话呢,是三十,三十 这个,所以他在做查询 papilon 的时候,他默认的指定了一下就是 marx red 等于二,那么他可以看得出来这个区别。首先他先介绍了一个 hash join 啊, hash join 的话呢, 它是需要它的这个操作的话呢,主要是大家看一下,它主要是在内存当中建这样的一张 hash 的一个 table, 它有右半边的这个数据, 因为它设了两个 max three 的,所以它可以定型的把这个数据从右半边的这个表加进来,再把左半边的表加进来,完了之后再把这个两张表做一个交易的这个操作,操作完了之后把这个数据返回虎亏了,它等于是这样, 所以你看它,它这个查询语句里面后面它有个 setting, 这一部分是比较重要的啊。第一个的话它就是 marks red, 它用了二,当然你也可以用四四的话,它就是可以并行四四个,当然它现在是用了二。另外它 join 的操作用了 一个哈士的这样一个操作,哈士的这个操作呢是这个目,目前这个并行哈士和 grace 哈士这个三个操作里面速度是中等的, 是是是是排在不是最快,但是消耗的也是中等的,一般我们用的会比较多,所以,但大家要记住的是他连接的时候是右右边的这个表,先做一个 连接操作,先读取数据,就右边的表连接左边的表,一定要记住的是右边的表连接左边的表,不是像他表达式一样,左边的表连接右边的表,所以右边这张表 尽可能要小,左边这张表的是是右边这张表,数据小的时候,他这个 hostable, 他的所使用的内存就会少,同时他连接的速度也会更快。我们回头可以看一下这个例子,这个主要是这张图表的这样的一个操作,我们看一下他,他使的这个算法,他几乎所有的表的连接 类型,我们之前讲的六种类型他都是可以支持的,他都是可以支持的。好,那么我们先看一下这个在右半边,一般建议是数据量小的在右半边,在这我们解释过有两张表,一个是表,一个是主角跟角色的,这张表是一 一百万,相差一百倍,你可以看他用这个哈数,他是零点八一七秒,他就查出来的速度性,性性还是非常快的,他等于是这样,那么我们把它反过来,这张表左边这张表是一百万,右边这张表是一,你看就五点几几秒,他就是相差是蛮大,相差将近七倍 啊,七倍不到一点。所以的话呢,一定要记住的是右边这张表要小,如果用哈数这个算法,右边这张表要小,左边这张表大,他等于是这样的好,呃,这个是他解释这张表去解释他为什么是这样的,这个我们就不看了,用的这个内存也是 不一样的,那肯定是这个右半边,这个表小,连接所需要的内存肯定少了,速度肯定快,这个是要关键。他的解释了一下为什么他右半这个 编的这个表是这么重要,因为它有一个叫 resize, 这样一个操作,如果你比较小的,那么他做这个操作就会比较快,他等于是这样 我们就不看了。好,那么接下来我们再来看一下 hash joinhahch johnhahch john。 那么有些时候我们左半边和右半边这个表都很大,那怎么办?我们可以用这个并行的这个 hh john 来操作,两张表差不多大,那么我们怎么办呢?大家都是一亿条数据,那么你可以用并行的 hh john 这个操作来做,那他只要是在这个 hash join 的这个算法里面用这个并行的 hash 就可以了,指指定一下这个算法你就可以来用了。他这个原理就跟刚才他在内存当中只有一个 hash table, 那么现在的话呢?他会建,因为他现在 max spread 是二,所以他 他会借两个哈士推波,他等于是这样的,那么这样他并行的有多个哈士推波,这样他他做起来肯定死更快点,还是一样的,这个原理就是尽可能你的右半边的这个推波要小,尽可能你的右半边的推波要小,他等于是这样, 它因为可以有多个 hashtable, 所以的话呢,它这个速度会更快,我们可以看一下啊,它这个结论,它这个并行的那个 hashtable 的这个操作的话呢,它有一个操作,有一个交易的操类型是不支持的,就是只叫 asof, 这个就是呃,就是比较这个相似的这个呃就是相似的这种数据的这种 左半边和右半边这个时间上面差了这个几秒,他比较接近的进行操作叫 asof, 他目前是不支持的,其他都是支持的,我们也可以看一下,还是一样,如果用哈士的这把,那么这个表大一亿条数据,你看五点几秒, 但是如果用并行的话,它可以减一半的这个时间,因为它有两个内内存,当中维护了两个 hashtable, 它等于是这样,所以它的性能会更好。好,当然它需要的内存会更高,需要的内存会更高, 需要的内存也是 double 了,它等于是这样,它需要的这个在 hush table 要去维护,在这个内存当中,这个会更高。那么它在这个三个哈数算法里面,并行的哈数算法肯定是最快的,效率是最高的,但使用的内存也是最多的,它是这样。好,最后我们再来讲一下最后一个算法,就 green grace hush join。 grace hush join 的话呢,它就是 适合于更大的表,因为你的这个内存不够啊,你用那个哈士的这个算法,或者你用并行的哈士算法,这个哈士表在内存当中会导致 out of memory, 那么连接不行啊,那么这个时候呢,你只能把这个哈士的这个 table 放在临时表里面去创创建这个算法 叫 grace hash join, 当然它的速度是最慢的,它消耗的内存也是最少的,消耗的内存也是最少的。一样的啊,原理也是一样的,当然它在这个里面的除了有一个这样的一个 grace 哈,是的,这样一个东西之外,他还有一个叫桶桶,分了三个桶的话呢,就是相当于他把这个 hashtag 啊,就是分了三片,然后可以进行并行,当然你也可以分更更多片,分的片数会多一些的话,有有比较大的概率是可以把这个性能进一步提升的, 但是他对这个 i o 的访问操作可能会要求会比较高了。嗯,我们可以看一下,那么他还是一样的这个哈士推股呢,他是建立在那个此盘上的,那 它是等于临时的表,它等于是,那么这个也是一一样的,内连接,左连接,外连接,它,这些都是能够支持的,除了这个 a, s, o, f 的这个表的连接是不支持。我们对比了一下,用 hash 算法,它这个一亿条数据在右 半边五点几秒,如果是用 grace 哈数的这个算法就是不用内存的话,那么他要十三秒,还是等于是这样,那这种算法的话,一般就是你内存不够的时候,你 bout out of memory 的时候你才用,因为它的性能会差一点。对, 如果你的这个 bucket 就是分筒 sam, 它射了八,你会发现射了太高,有可能也不一定它的这个查询时间会更短,因为它取决于你的 i o, 你的那个磁盘的 i o 的这个性能,它等于是这样, 这个他是解释,这个我们就不用看了。好,我们看到最后。呃,最后他的结论,我们看一下最后他的这个结论,他也给了一张比较直观的一张图。呃,我们今天讲了这个三种的这个 click house 里面的表连接的这样的一个哈数算法的这样的一个。 呃,三个算法,这是速度是适中的,是速度是中,用的内存相对也是中,那么它的性能的话呢?也是中并行的。这个 house 它 的速度是最快的,你你,你看它的速度是最快的,但是它需要的号的那个内存也是最多的,它对适合一些内存比较资源,硬件资源内存比较多的这种情况。那么 greenshars 的话呢,就是内存是用的最少的, 性能是最差,他的性能是最差他这个四个这个风筒,他是性能在这那八个风筒的话呢,他的性能反而会更弱一点,但他消耗的这个资源 会更少一点,它是它是有这样的一个差异,所以的话呢,我们 click cos 的话呢,它的功能是非常强大的,它不但能够支持各种各样的这个 表和表之间的连接功能,而且他能够指定你用一些什么样的算法。因为你在不同的应用场景,你不同的这个表的连接,你自你的服务器的这个内存和你的 cpu 的资源情况不一样,你的那个磁盘的 io 的性能情况不一样,你可以选择不 不同的这种算法的去满足你对这种大数据查询的这些功能上面的这个要求,而且能够满足资源的约束性能的这些要求,他都是能够找到你自己合适的。在这篇文章里面,我们也了解到,当你在 click house 里面,你的这个 做表和表连接的话呢,尽可能你右右表右半边的这个表,你尽可能要用的小一点,如果是表,我们前面也看过,如果你右半边的表小,他的查询性能会更优 好,大概是这样的,所以总结来讲,这个三个算法,他的不同的应用场景 greens 的话是最慢,因为他消耗的内存是最少的,但是他利用了那个磁盘上面的 临时表去帮你维护数据,所以它的性能是最慢的。像这种并行哈数,它的性能是最好的,但是它消耗的内存是最多的。哈数这种算法一般情况我们都是用一个哈数算法就够了, 一般就足够了,它是一个速度适中,内资源消耗也是比较适中的这样的一个算法。而这种呢,一般我们比较常用并行,它是我们对性能数据的返回有极端要求的,可以用 病情哈数的这种算法。如果我们是离线计算,表的数据非常非常大,我们对那个数据返回的时间呃,能够慢一点,能够接受,能够容忍,那么用古力斯哈数是比较合适,它特别适合于做一些晚上的一些定时任务的一些离线计算,这个是比较合适的好。


今天给大家分享一款开源免费的国产数据可视化分析平台,它可以自由制作任何您想要的数据可视化看板。使用家外语言开发,支持多种数据库,包括买 cico、 oliko、 postgrade、 circo、 civil summer 等关系型数据库,以及 elastics search、 great house high 等大数据平台。 主要功能啊,包括数据管理、塞扣工作台、数据导入导出数据及管理、图表管理、看版管理等等。 他还支持创建 sacocsv xlhtp 接口接送数据集,可添加文本框、下拉框、时间框、日期框等等类型的数据集参数, 能够轻松的构建同比环体数据。图表内置了折线图、柱状图、丙图、地图、雷达图、漏斗图等等开箱即用的图表,并且支持自定义图表配置项,支持编写和上传自定义图表插件。 可视化页面采用原生的 hpa 网页作为五百,内置丰富的 api, 可构建图表联动、数据赚取、异步加载、交互表单等个性化的数据可视化界面。它就是在 gadaha 上已经有四点五 k 四带二的 data deer, 项目地址和入门文档已经放在评论区了,需要的小伙伴你懂得。

想成为大数据工程师,都需要学习哪些技术站?今天全票安排一线数据采集 school data charg, 只需要实现买 circle 和于十 dfs 之间的数据转移,使用 score 会更加清亮点。需要实现多种数据源之间的数据转移,优先考虑 data char 实时数据采集 .comfxxv 封装,一套稳定可靠且长期使用的平台,不用开能短时间内需要快速迭代的使用 maxwell, 因为它更加轻量级。消息列队中间键对大数据应用场景主要考虑的是消息的高吞吐量和稳定性,所以卡卡是最合适的 数据存储。疑似写入多次读取的 hdfs, 可以支撑海量数据修改需求的 hbas, 主要应用在高并发和实时请求场景的 readys 离线数据计算 spa, 它可以满足我们在海量数据下的快速计算需求。实时数据计算,目前在实时数据计算领域, flag 是最优的选择。某平台 台的双十一数据大屏底层的实施数据计算引擎在二零一七年开始也由 stop 替换来了 sleepolap。 数据分析比较常见的引擎主要包括 pad 引拍了吉林德鲁伊 .kik house 和 daris, 每个引擎都有他们自己的优缺点,已经帮你们整理好了分布式全文减速的引擎,海量数据下的场景下 优先考虑使用 electric search 还不过瘾,是不是推荐这本新书给你?内容覆盖了大数据生态中的完整体系, 咱们看书啊,就是要学习系统的知识体系。技术卖部对不对?这本书啊,真的是从零开始讲起,有大量的图解和时代案例可以帮你快速掌握大数据技术组建的原理、架构和实战应用。入门大数据强烈推荐!

话呢会跟大家再来介绍一个 click house 配套的这样的一个 bi 的呃可视化的这样的一个工具叫 mat bass, 呃, click house 的话呢,我之前在视频里面是一直讲的,对吧?就是它比传统的那个关系新数据库,它是要快一千倍的,在相同的那个资源配置下, 它的这个效率,它的查询的性能要比普通的这种麦 c 口要快一千倍。那么 click house 官网呢,经常是这样来讲的,十亿级别的这个数据,呃在一秒钟之内帮你查出来,所以 click house 的话经常作为实施数据仓库的这样一个最底层的这样一个软件。 但是当我们的这些企业把这些数据呃可视化的这样的一个工具,可以把数据能够非常快的能够开采探索,不能够把一些指标能够计算出来变成图表,那么这个工具也是比较重要的。那么 click house 官方的他们也是就是整合了这个 mat bass 的 这样的一个国外一个非常有名的这样的一个软件,这个软件的话呢,我回头也会讲,他也有那个开源版本和收费版本,收费的这个版本里面我回头会详细比较一下,其实他们的功能差异并不是太大的, click house 跟这个 mantabase 之间的,他们之间的这个深度的这种 社区的整合, click house 那个他们专门往为那个 metabase 开发了一个 plug 音,就是 j d b c 的一个 driver, 然后的话非常快速的能够 把这个 click house 里面的这个数据通过 g d b c, 它的硬通过这个插件能够在 mantabase 里面能够展现出来,然后呢它也具有很高的这个性能, 也能基于这个安全的 s, s, h 的这个通道。在将来的话呢,他们会把这个 plug in, 呃,就是做更多的这个稳定和更持续的这个优化,他等于是这样,所以的话呢这个是 clearcos 官方的他这个这样一篇博客。呃, 它跟 mat base 这些深度的整合。接下来的话呢,我们来看一看啊,它的这个项目 mat base, 给大家介绍一下 mat base 它我们前面讲了,它是可以,它其实是个图形化的一个 b i 的这样的一个工具,它可以非常方便的。呃,你不需要懂任何的 c 口,你可以通过界面的这个操作,可以把这些数据都能够很好的把它给等于 图形化,等于把它给做出来,它有很多很多的功能。什么?呃, dashboard, 它可以有提醒功能啊,它可以把这些报表做出来的这个 dashboard, 或者做出来的某一个图表嵌在你原来的系统里面,它这些功能都会有,回头我会详细去讲。那么这个工具的它在国外也是很流行的,有很多大的公司,五百强的公司都是在用的。它等于是这样, 那么他也是非常呃方便的这个非常友好的这种界面,他也有这个中文,中文的这个翻译的这样的一个菜单,他也是有中文版本的,也是比较容易通过中文 的这个消费者去阅读的。那这个就是他讲了你可以把他的图形化的数据可以欠在任何你需要的地方。他等一下,这个功能我觉得是非常强的,你可以把你的数据非常快的图形化,然后牵引在你原来的这个系统里面,是说你们原来有什么报表啊,有什么 erp 啊, 欠在自己的你原来自己的数据里面。然后呢?他们这家公司的理念,你自己的数据你自己要拥有,他等于但你自己的数据你自己要控制。他这个秉承的这个理 理念还是这样的,因为国外的话,他对这个数据安全,对这个数据的那个资产权的意识还是比较强的,所以他非常关注这个数据的,他们对这个数据的自己开采自由化的独立部署,他会要求会比较高, 而且他是兼容各种各样版本,安全方面的一些欧盟的一些标准,他这对安全性方面,包括后面我也会讲他收费版本里面有一个类似于这个用户访问日志的这样的一个,他这些安 权的一些功能,它其实都是有好。呃,这个是总体的一个产品的介绍,我们看一下它目前老外的话呢,它也提供 cloud 的版本,但是我们一般用不到,一般情况呢,我们就是按一个本地部署的版本,那么它本地部署的版本它有三个版本。第一个的话呢,就是开源的版本的,它对用户啊什么什么几乎都没有限制的, 它只是在一部分很小的功能上面做了一部分的限制,而且它是 free 的,免费的,但没有个版权的限制,它等于是这样,那么它 pro 版本它主要是做有些大企业,它可能会用的会比较多的,比如说什么单点登录啊,高级的报表的内置,把它那个 mantabase 的那个 logo 去掉,它的核心就是可以刻 个性化的,把你公司的 logo 给放上去,颜色的调整,然后行记录的。这个彭美询可以设置些权限,包括一些用户这个数据访问的这个就是审计的日志,他这个都会有。包括还有一个就是 mat bass, 它的实体的配置参数的导入导出,但这个 退的,他这个是要收费的,他一每个月五百美金,是十个用户,每个用户增加一个用户就是十美金,他等于是这样,所以你计算下来,如果你是要一百个人一个一年差不多,我原来算过大概是在八万多块钱,他是等于是这样开源的,跟这个 pro 版本他其实功能上面差别不是太大的, 它主要是在那个售后上面,它有三天的这个是医疗的这个 support, 那么 enterprise 版本它其他都是一样的,它只要获得优先级会更高,而且价格它是按照项目来来付费的,它等于是这样,它这边每年安年大概在一万五千美金,它是这样的, 如果你超过一万五千美金的,差不多十万块钱,基本上你可以让他发个性化的这个报价,他也是这样,所以他这个三个版本是这样区区分的。那么我们一般的话呢,就是建议公司用一个欧奔 sos 的这样一个开源的免费的一个版本就行了,他这个版本的话功能也是 非常强的,他的功能表啊什么的,那基本上都是没有任何限制的,没有任何限制的,他除了一些简单的一些功能啊,一些一些些什么单点登录这种其实用不到的,当然他也可以单点登录,用另外一种方式也是可以实现的,只说有些这种单点登录的这种这三种方式他是不支持的,要收费了他才能支持的。行记录,他这个的话呢是 是这个盆培训主要是基于表结构的。好三个版本就给大家介绍到这,接下来的我就快速的给大家浏览一下它的这个工具。 man mantabase 的这个工具,它这个工具的话呢是基于加基于 java 的这个接力,呃,十一的这个版啊,然后它是要安装的这个,呃, java, 呃。然后它的配置, 配置文件的话呢?呃,它是可以放在那个 mecco 里面,或或者 a, 呃呃或或者是其他的那个关系性数据库里面也是行的,如果你是单独数的话,你可以放在 a 二的就是本地的一个内置的数库里面, 他这个都是可以的。这是他安装的这个琴,安装的话呢,他其实也是比较简单啊,他只要运行一个架文件就行了,所以的话呢,他是比较容易去扩展的。如果你的呃访问的用户量比较大的时候,那个公司内部你有那个成千上万的用户的时候,那你是可以通过这个群的这个方式 非常快的可以把这些,呃,把你这个 mental bass 可以可以提提供给更多人服务的,他的这个他的扩展性是非常好啊,他的意思 好,那么 database 部分的话我就不详细讲了,我前面也是讲过的,它是能够基于颗粒 cos 的,当然它也能够基于其他的这个数股啊,它有二十几种数据库,它都是能够啊,像,呃我们原来用的那个 dread 啊啊一些大啊,那个算啊,关系型数据库就不用说了, mongo 啊,它其实都是能够 好,接下来我给大家介绍一些个他的那个 question, question 的话呢,它其实就是呃,就是相当于是你一个问,呃,然后他可呃 这个标题,然后呢它可以通过 carry build, 就是一个可视化的一这样的一个一个方案,一个操作键,它可以一步一步的根据你的所选择的过滤的条件,然后再进行取额,然后再进行可视化,它只要通过一步步的操,然后你非常容易的就能够把它这个数据可, 然后也可以做一个表和表之间的连接 in join 的操作啊,他,他非常强的,非常强大的他这个功能,然后你可以把这个数据啊标准啊,然后你可以把这些做完的图表,或者做完的这些指标可以卸给部门,或者卸给整个公司,他等, 呃,这个是它一个最强大的一个功能,当然你也可以呃,根据这个图表之后你也可以查背后的这个呃,如果你会呃开发语言用 c f 的话呢,它也是能够支持将这个 see 啊,通过这个 seek 的语句,然后形成这个图表,它也是能进的,所以的话它这个功能的话是非常强,那么这个是快图表, 那么话呢,因为我们看到就是经常会有这个,我们叫 dashboard, 就是仪表盘,我们可以把很多的图表组合成一个 仪表盘,它等于是这样,这个就是 dashboard 的这样的一个功能,而且它这个的话呢可以在你的手机上显示,也可以变成你的那个大屏展示啊,它这个都是然后定期的去刷新和更新啊,这个就是它 dashboard 的一些功能,甚至它这个 dashboard 的这个功话呢,它是作为一个啊,发送给相关的订阅者啊,它这个都是可以的, 包括这个 dashboard, 他也是可以定义一些叫,哎啊行,就是你点了这个 dashboard, 可以触发到连接到你需要连接的一些网站网址啊,他这个都是甚至是更明细的图表,他这个都是可以。呃,这个是这个 modeling, 这个这个的话呢,它就是把你的那个 click house 或者你的关系型数据库里面的一些表啊,包括 single 啊,作为的一些模型。呃,你可以把它就是展示出来它的,哎, 而可以,而而且可以定义一些分区和定义一些指标啊,定义你需要的这个 format 的这样的一些数据,你都可以在这个里面进行。这样的话呢,你可以非常方便的把一些呃公司的指标怎么计算的,都把它给标标啊,然后分享给所有信。我前面已经讲啊, acting 前面已经讲,然后呢,他也支持 就是类似于公司部啊,总之下面呢,他也可以有这种原啊, people 啊,就是人死的人,那么他也有一些权限的控制啊,他也有,他也有检测啊,他的,然后呢,他也自己些这个单点登录的一些一些一些功能,当然登录的他有,可他是要收费的啊,他有一部分高级的这种单点功能,他是 啊 pose 的话呢,它主要是讲的都是一些权限的一些啊,那个 data 访问的券啊, c 口访问的权限,你的 applicating 啊,你的图表,呃, data 的 send boxing, 它的这个访问的权限,包括你的那个通知啊,你的图表更新完 完之后,你的这个通知它都是有权限的。关 invadings, invadings 的话呢,就是把呃 mat based 产生的这些图表,它可以嵌入到你自己需要的各种应用当去。呃,它是完全可以把整个应用嵌进去,或者把某一部分的图表嵌进去,它这个功能都是有的。是 处事的话呢,它有两个,一个是 admin truse, 就是柜员啊,他看一些错误啊,包括这个 model 的那个,呃,就是 cash 的这个字啊,他主要是查看日志的,这个是免费,然后这个这个是审计的话呢,就是他要去看你的这个用户到底是怎么用你的 mat bass 的。那这一部分数据的话呢,他是要,他是只有收费版啊 和英英特 price 版本他才啊,开源版本里面的话他是不加这个功。嗯,但是一般企业我们是不那么 matebes 的话,它也是足够开放的,它也是呃 ai 啊,它也提供了一些 api, 它这个它在这个里里面,你可以通过那个呃 o, 通过 a p i, 通过 get post, 通过 python, 通过啊啊,语言,通过加瓦,其实你都是可以去通。呃,通过 mental 拿到他的一些图表啊,定稿啊,拿到那个 mental base, 后面的这些数据啊,其实都是可 所以的话,它也是在这个上面也有很强大的扩展性,它等于是好啊,那个总今天给大家讲的是那个 click house, 对吧?配套的这样一个 menus 啊,这样的一个图形化的 b i 的这样的一个啊, 那么 click house 跟 mantabes 呢?整合也是官方的,整合的是非常好的,因为我们清除那个 click house, 它查询数据的话,十一条数据只要秒即能够查出来,所以它的性能是非常强的。 那呃我们数据的开采的话呢,最好还是要有个可视化的这样一个工具去看,所以的话呢就会呃 click house 就会跟这个 manabase 去做打,然后非常快速的能够把你在 click house 里面的各种各样的数据都能够图形化变成大屏啊,变成啊可以在 手上看啊,他通他都是通过这个来做的,而且这个两个软件他都是有相应的都有开源的版本,所以的话他的费用是非常低的,几乎是没啥啊,只要你会用就可以了,所以的话我们小工也是一直比较推荐啊,这两个工他你去看他的这个图表的工具也是非常多,市面上的这些图表工具几乎, 而且他还很方便的,然后可以把你的图表嵌在你的各种各样的应用当中,也可以跑在你的手上面。哎,他这个功能是非常强啊,如果你工资比较大的你对啊,你对那个审计啊都是要求的话,那你直接是可以跑的啊,他的这个收费版本里面的,嗯,那么他一般的付费的话呢,就也有一个 pro 的版本和 in interprise 的版本, enterprise 的话呢,它是十万起每年,然后 pro 呢就是它这个用啊,每个用户从呃十美金每个月开始来记它的,是这样好吧,呃今天的话呢,我就把这个呃这个开到这个实时数据仓库跟实时数据仓库开载的 bi 的这个工具就跟大家介绍这儿后,可通过。

克力 cos 的话呢,它是一个以列存储的开源的这样的一个实时的数据仓库,它的这个性能是非常好的,在相同的这个硬件配置下,它的数据它的查询性能要比 miceco 要快一千倍,它等于是这样性能是非常好的。那我们可以一起来了解一下它,它的功能也是比较强大的,它能够支持 几乎所有的这个六种的 co 的表和表之间连接的这样的一些操作。那么大型的这种数据仓库,一般我们在查询大量数据的时候,因为要加速它的性能,所以的话呢,我们一般是不会做那个非常规范的,他等于是说要把一些列要, 要,他不是按照第三来设计的,他可能会把一些列分别在形成一个大宽表,他等于是这样。但是在有些应用场景呢,你,你不得不把这个表和表之间的数据作为一些连接,进行相关的这个性的数据的分析,他等于是这样。那么 click house 的它其实是允许我们 有六种不同的这种算法和表的这个连接,我来满足我们这种表和表之间相互连接的这种查询。是这样,我们今天就讲这个六种的这种操作。首先我们来看一下他,这样他有给了一个例子,因这这篇文章的话呢,是 click house 博客上面的一篇文章月份的他这篇文章讲的也是比较好的,我们先来看一下他有四个表,四个表的结构,他主要是讲了一个 movie, 就是电影和角色和演员之间的多对多之间的这个关系,如果他要做一些演员和这个 电影之间的一些分享,那么他就要通过这个四张表进行相关的这个连接的操作,他这个是个例子,他会在后面来展示,那他主要有多对多的关系和一对多的这种关系。首先呢他呢就是 k cos 里面呢就支持的是内连接,内连接,内连接,我们就清楚的就是我们一般 c 口里面, my c 口里面用的最多 多的就是内连接,就是连接,他这个连接操作,左左边的这个表和右边的这个表同时匹配,他其实是取了一个交集,当然这个匹配是要精确匹配的, 它这个有一个连接的这样的一个字段,它在这个里面的,它是用一个 movie 的 id 把它给连接起来,这个叫内连接,就是两左边表和右边表同时都能满足条件,那么它就做一个内连接的这样一个操作。这个是 click house 里面是能够支持的,那么除了内连接之外的话呢,那个 click house 也能支持叫左连接、 右连接和全链接,或者叫外这个这个三种链接的话都是叫外连接。他内连接我们是清楚的,就左边和右边同时满足左连接,以左边的这个数据为主,右边只要能够 能够跟左边的这个表的数据能够匹配,那么他就形成就把这个数据就匹配到左边的这张表里面去了。那么如 果左左边的表里面的有些行,他不匹配的话,那么他也会能够显示,他的意思讲这个叫左连接,相反的话呢就是六连接,全连接其实是两是两边的一个,并指我左边和右边,就算我够把它给 连接起来,他等就要把它给显示出来,他等于是在这个结果机里面,这个是我们一般 c 口里面用的会比较多的他这种,那他在这儿的话呢,他有一个操作叫 left join, 或者叫 right join, 或者叫这个 full join, 他只 他有这样的一个操作,当然他也要要有一个字段的,你这个连接的字段是什么?这个是经常用的。那么还有一种操作呢?他叫,呃, cross join, cross join 啊, cross join。 看看 cross join 是什么呀? pros join 的话呢,其实就是跟外连接是一样的,呃,就是其实是两边的一个并集,左边的那个左边 table 的行和右边 table 的行,然后呃做一个集合,这种方式 他是他跟怪连接不一样的地方,就说他的那个 id 是不用相等的,他不需要其实就把两张表的做一个 decar 的这个乘机,他主要是做这样一件事的。好,我们再来看看这个叫 cross join, 然后还有一个叫半连接,半连接的话呢,这个我是其实我之前是不了解的,他叫左左边和右边的这个半连接的话是 click house 里面特有的,我自己之前没有看到过。他主要应用场景在哪里呢?我可以重点来讲一下。 他这个半连接的话呢,主要主要是让那个主要是一般是用在这个维度的,因为我们清楚的,我们按照时间序列,有些字段他其实要匹配的,他其实差几个毫秒的,他等于是这样会差几 几个毫秒的,虽然它是它,如果左边的这个数据和右边的数据要连接,因为它它这个 k 的里面,比如说有个时间列,它不一定完全是匹匹配的,它就差那个几毫秒,所以 的话呢,他就有一个叫半连接,这个作用的话呢,他其实他的结果相当于也是一样的,他就是一个取一个交集,左边的和右边的要匹配,但这个他这个匹配他是叫模糊匹配,他可以相差一点点也能自动匹配上,他主要做叫半连接,他在这个里面对 他用了半连接,主要是用了一个叫角色,因为他这个不同的不同的电影里面,他的角色虽然都是主角,但是他可能名称稍微有些不一样,所以他就用半连接做这样一件事情,就把这个给连接起来,这个用的比较多的,也是用在时间上面 链接比较多,他这个操作还是非常有意思的,特别是像我们一些什么订单的购物车浏览的时间,某一个用户浏览的时间浏览完了之后他去下订单,下了订提交到购物车之后呢,他去支付,支付完成之后他就下了个订单,他的这一系列的操作,他其实时间都是有些差异的,那么你要把他的整个一个行为能够串起来,那么 你就可以用这个半连接,通过这个时间的字段某一个用户,那你就可以把它串起来,通过这种方式我把这个用户的行为可以把它串起来,因为虽然他这个时间上面稍微有些差异,但是他在其他表里面,他这个时间相对来讲还是是最接近的,这个就叫半连接, 这个用途还是蛮广的。还有一个操作的话呢,呃,就是他这个里面也是讲了一下,就不在左边的表和右边的表进行连接,但是他必须是不在右边的表的这个范围之内, 那么他也可以做一个集合这样的一个操作。这种操作的话一般用的会比较少,不在右边的我的这个里面,表的档里面他做了这样一个操作, 它这里还有一个叫 any any join, any join 的话呢,跟我前面讲的那个半连接有点像,但是呢它是它是是半连接的话呢?它是取个交集,但是如果是 any join 的话呢,它也是半连接的操作,但 但是他又是左边的外连接,加上这个左边的这个半连接的这个操作,他形成的这样的一个集合。这个场景的话呢,就是我前面讲的那个场景,因为用户有多次的查看购物车,查看商品,但是他查看商品,最后能够让他最终能够下单的那个商品, 最后那个商品到底是什么?他左边的都是浏览商品的记录,右边连接的就是他下单的记录,然后两边可以连接起来,你可以去看一下, 他可以做一些归因的一些分析,这个都是可以通过这种半连接或者 any join 来来处理的。这个这个操作我倒是也没看到过, a 叫 asof join, 这个啥意思?这个用途会更广一点,非精确匹配叫 asof, 之前我也没用过,他这样举了个例子,跟我举的那个例子一样时间,那他跟半连接又有什么关系?是类似的了,他其实也是一样的,就是飞进去匹配,跟我前面解释半连接是一样的 时间自断,他是十四点零九分,他要匹配十四点零九分零五秒,还是十四点零九分二十八秒?如果有一个记录是二十秒的,那么二十八秒就匹配二十秒的,如果是还是以最接近的这个方式去匹配他这个东西叫 asof 交易,这个我估计应用场景也会非常多, 这种应用场景说话你可以看到就是 click house 的话,它不但性能会非常强,而且呢它也能支持各种各样这个标准的 circle join 的这样的一个操作。而且,呃,我们 他这一批他的这个博客,他其实是有一系列文章的,下次我们可以再来介绍一下,他是他如果用 join 的,他还是有一些经典的他不同的算法,他可能会使用不同的内存,不同的算法, 不同的排序,要它实现的这个性能和所需要的这个资源都不太一样啊。下次我们可以再来讲一讲的它的 join 表和表之间的连接,它内部 的这个算法今天主要是讲一下标准的 c 口的这个交易的一些操作一些类型,它有六个类型,是这样,我看了一下,他几乎把市面上所有的这些表和表之间的这种 交易的操作都有了,还有包括一些非常特殊的一些半连接啊,叫 asoof 的非精确匹配的这种连接,他其实都有这些功能就会非常强,那么我们就不需要写任何一些代码,只要写 gc 口就能够满足你各种各样的应用场景。好吧啊,今天我就跟大家就先介绍到这。