草庐IT

Apache Doris——数据分布

在Doris中,数据都以表(Table)的形式进行逻辑上的描述。名词解释数据分布:数据分布是将数据划分为子集,按一定规则,均衡地分布在不同节点上,以期最大限度地利用集群的并发性能短查询:short-scanquery,指扫描数据量不大,单机就能完成扫描的查询长查询:long-scanquery,指扫描数据量大,多机并行扫描能显著提升性能的查询数据分布概览常见的四种数据分布方式有:(a)Round-Robin、(b)Range、(c)List和(d)Hash(DeWittandGray,1992)。如下图所示:其中:Round-Robin:以轮转的方式把数据逐个放置在相邻节点上。Range:按区

Apache Doris——简介

1.概述ApacheDoris是一个基于MPP架构的高性能实时分析OLAP引擎,以其极快的速度和易用性而闻名。它只需要亚秒的响应时间即可在海量数据下返回查询结果,并且不仅可以支持高并发点查询场景,还可以支持高吞吐量复杂分析场景。ApacheDoris是一个现代化的MPP分析型数据库产品。仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析。ApacheDoris的分布式架构非常简洁,易于运维,并且可以支持10PB以上的超大数据集。ApacheDoris可以满足多种数据分析需求,例如固定历史报表,实时数据分析,交互式数据分析和探索式数据分析等。令您的数据分析工作更加简单高效!MPP(Mas

Apache Flink——状态编程

概述Flink处理机制的核心,就是“有状态的流式计算”。不论是简单聚合、窗口聚合,还是处理函数的应用,都会有状态的身影出现。状态就如同事务处理时数据库中保存的信息一样,是用来辅助进行任务计算的数据。而在Flink这样的分布式系统中,我们不仅需要定义出状态在任务并行时的处理方式,还需要考虑如何持久化保存、以便发生故障时正确地恢复。这就需要一套完整的管理机制来处理所有的状态。一、Flink中的状态1.1有状态算子在流处理中,数据是连续不断到来和处理的。每个任务进行计算处理时,可以基于当前数据直接转换得到输出结果;也可以依赖一些其他数据。这些由一个任务维护,并且用来计算输出结果的所有数据,就叫作这个

Apache Flink——集群部署模式案例

前言本文重点是FlinkonYarn模式的部署,但在写Yarn模式部署之前,说一下独立模式(Standalone)模式独立模式(Standalone)独立模式是独立运行的,不依赖任何外部的资源管理平台;当然独立也是有代价的:如果资源不足,或者出现故障,没有自动扩展或重分配资源的保证,必须手动处理。所以独立模式一般只用在开发测试或作业非常少的场景下。会话模式部署可以发现,独立模式的特点是不依赖外部资源管理平台,而会话模式的特点是先启动集群、后提交作业。所以,在https://www.jianshu.com/p/4acf1df75088中用的就是独立模式(Standalone)的会话模式部署。单作

Apache IoTDB UDF 查询执行源码阅读

作者目前是清华大学软件学院IoTDB组在读学生,参与过ApacheIoTDBUDF模块的代码维护和功能拓展,本文是作者在阅读ApacheIoTDBUDF模块代码时的一点总结。概述UDF(UserDefinedFunctions)是数据库查询引擎里较为重要的一个模块,其为数据的高级分析提供了更多可能。UDF的使用说明可以参考作者的另一篇文章:https://zhuanlan.zhihu.com/p/599011218ApacheIoTDB的UDF功能实现总体可以分为三大部分:向用户提供的编程接口,相关代码在包org.apache.iotdb.udf.api查询框架相关代码,包括SQL解析、逻辑计

Apache Flink——快速部署集群

前言需要提到Flink中的几个关键组件:客户端(Client)、作业管理器(JobManager)和任务管理器(TaskManager)。编写的代码,实际上是由客户端获取并做转换,之后提交给JobManger的。所以JobManager就是Flink集群里的“管事人”,对作业进行中央调度管理;而它获取到要执行的作业后,会进一步处理转换,然后分发任务给众多的TaskManager。这里的TaskManager,就是真正“干活的人”,数据的处理操作都是它们来做的。一、集群部署1.1环境配置Flink安装部署的学习时,需要准备3台Linux机器。具体要求如下:系统环境为CentOS7.5版本。安装J

Apache Flink——任务(Tasks)和任务槽(Task Slots)

一、任务槽(TaskSlots)Flink中每一个worker(也就是TaskManager)都是一个JVM进程,它可以启动多个独立的线程,来并行执行多个子任务(subtask)。TaskManager的计算资源是有限的,并不是所有任务都可以放在一个TaskManager上并行执行。并行的任务越多,每个线程的资源就会越少。为了控制并发量,我们需要在TaskManager上对每个任务运行所占用的资源做出明确的划分,这就是所谓的任务槽(taskslots)。每个任务槽(taskslot)其实表示了TaskManager拥有计算资源的一个固定大小的子集。这些资源就是用来独立执行一个子任务的。假如一个

Apache IoTDB: How a Time-series Database Born in a University Empowers the Internet of Thin

InthewakeoftherapidadvancementsinartificialintelligenceandtheInternetofThings,bigdatahasbecomeoneofthemostinfluentialproductiontoolswithagrowinginterestintime-seriesdata.Thus,itisimperativefortheentireindustrytofindsolutionstothequestionofhowtobetterutilizetime-seriesdataandcreatearobustdatabaseforc

Apache POI 操作Excel常用方法

系列文章目录一、Java使用ApachePOI导出excel二、ApachePOI操作Excel常用方法三、Apachepoi拆分单元格并赋值四、使用easypoi模板方法导出excel五、Apachepoi给excel单元格添加下拉框或数据验证文章目录系列文章目录一、ApachePOI介绍二、ApachePOI中的常用方法1.新建工作簿和工作表1、新建工作簿2、新建工作表3、打开一个excel4、将excel输出2.创建单元格1、创建行2、创建列3.对单元格赋值或取值1、对单元格赋值2、创建不同类型的单元格(待完善)3、遍历行和单元格4、获取单元格内容5、文本提取6、在单元格中使用换行符7、

Go语言开发者的Apache Arrow使用指南:内存管理

如果你看了上一篇《Go语言开发者的ApacheArrow使用指南:数据类型》[1]中的诸多Go操作arrow的代码示例,你很可能会被代码中大量使用的Retain和Release方法搞晕。不光大家有这样的感觉,我也有同样的feeling:**Go是GC语言[2],为什么还要借助另外一套Retain和Release来进行内存管理呢**?在这一篇文章中,我们就来探索一下这个问题的答案,并看看如何使用Retain和Release,顺便再了解一下ApacheArrow的Go实现原理。注:本文的内容基于ApacheArrowGov13版本(go.mod中goversion为v13)的代码。1.GoArro