自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一只努力的微服务

知识永远不会辜负努力的你

  • 博客(91)
  • 资源 (1)
  • 收藏
  • 关注

原创 ByConity ELT 小测

总体测试体验还是不错的,bsp 确实能在资源有限的情况下一定程度的解决大查询或复杂查询的问题,但是在想构造一个 OOM 且 bsp 还能运行的参数确实有点难,尝试了好多次,建议可以在查询失败时给出建议,甚至能够自适应开启 bsp 并设置并行度,让用户收到 OOM 时就知道这个 SQL 确实是不能跑了。

2024-12-05 19:13:51 687

原创 Gluten 优化器优化规则集

2024-09-11 10:42:35 160

原创 Spark 优化规则集

2024-09-11 10:41:50 188

原创 Doris 优化规则集

2024-09-11 10:41:02 298

原创 【Doris 系列】Doris 各类 Distribute 介绍

所有节点默认的分布,即没有分布。

2024-09-11 10:39:58 1174

原创 CentOS 7 搭建 Impala 4.1.2 + Kudu 1.15.0 测试环境

通过 Web 页面看一下 Kudu,地址为:http://127.0.0.1:8051。打开:http://127.0.0.1:25000/backends。打开:http://127.0.0.1:25020/catalog。打开:http://127.0.0.1:25010/metrics。下载 java 安装包,需要登录 oracle,请自行下载。这部分不过于详细介绍,如果有现成环境也可以直接拿来使用。编译完成后,自行打的 RPM 包进行安装。至此,所有的安装验证就完成了。

2023-07-07 16:22:38 1504

原创 Milvus 介绍

代理本身是无状态的,可以借助负载均衡组件(Nginx、Kubernetes的Ingress、NodePort、LVS)向外界提供统一的访问地址和服务。为了在写入数据时充分利用集群的并行计算能力,Milvus 中的集合必须将数据写入操作分散到不同的节点。在 Milvus 中,所有数据都是按照集合(collection)、分片(shard)、分区(partition)、段(segment)和实体(entity)来组织的。相比之下,分片更多的是在写入数据时的扩展能力,而分区更多的是在读取数据时增强系统性能。

2023-07-04 12:31:27 4234

原创 使用 docker-compose 搭建 Doris 和 Hudi 测试环境

本机环境是 MacOS M1,系统版本为 12.5.1。

2023-07-04 12:23:27 1518

原创 【ClickHouse系列】ClickHouse 支持 ANN 向量索引

最近邻域搜索(ANN)是指在 n 维空间中找到与给定点距离最小的点的问题。如果数据要逐条对比,性能和内存都有很大的消耗,所以添加了 annoy_index 索引,利用 ann 索引来加速计算。

2023-07-04 12:19:06 1483 1

原创 ClickHouse UNDROP TABLE 功能

不论是使用 ClickHouse 还是其他数据库,如果手抖删掉了一个表,想要恢复是相当困难。但是现在 ClickHouse 支持了能力,如果因为手抖误删了一个表,那在短时间内可以快速恢复。目前还是个实验性功能,如果想要体验可以使用最新分支。下面来体验一下整个功能。

2023-04-04 09:27:12 810 1

原创 ClickHouse 如何编写测试用例

想对 ClickHouse 进行开发,不能只懂得如何编写代码,更要懂得如何做好测试,这样才能保证自己开发的功能是可用的。所以如何编写测试用例是非常重要的,本文介绍一下 ClickHouse 如何编写测试用例。ClickHouse 的测试分很多种,这里主要介绍两种最常用的测试,即 stateless 测试和 integration 测试。

2023-03-16 23:54:43 660

原创 【ClickHouse系列】如何解决 Too Many Parts 问题

如何解决 Too Many Parts 问题

2023-03-11 22:50:48 3083

原创 ClickHouse 最简单的编译环境搭建方法

本文主要介绍如何搭建 ClickHouse 的开发环境。虽然 ClickHouse 官方文档对不同系统提供了相应的配置方法,但是在安装依赖时又常会出现各种各样的问题,所以本文给出一种非常快速的环境配置方法来方便读者更好的了解 ClickHouse。虽然 ClickHouse 支持 MacOS 编译,但是 MacOS 不能很好对支持 ClickHouse 所有组件的编译,所以建议还是使用 Linux 进行编译调试。本文是在 CentOS 7 中进行环境配置的。

2023-03-06 23:11:11 1576

原创 【ClickHouse源码】物化视图的写入过程

本文对 ClickHouse 物化视图的写入流程源码做个详细说明,基于 v22.8.14.53-lts 版本。

2023-03-01 22:26:16 645

原创 ClickHouse 配置文件使用说明

本文主要介绍 ClickHouse 的配置文件。在 ClickHouse 中配置主要分为两类,一类是负责 server 端配置的,另一类是负责用户端配置的。负责 server 端配置的一般会放在config.xml文件中,负责用户端配置的一般会放在users.xml文件中。当然如果都放在config.xml文件中也是可以的,但按照习惯还是会将二者分为两个文件进行配置。所后续不在将config.xml和users.xml分开来介绍下面的功能,都是可以通用的。

2023-02-24 21:09:01 3794

原创 ClickHouse 集群快速搭建

本文介绍 ClickHouse 集群的搭建方法,为了方便和便于读者尝试,我们使用 docker 的方式来启动 ClickHouse Server 和 Zookeeper,并且后续会提供一套自动化脚本来方便读者搭建一套集群来尝试使用 ClickHouse。这里使用的 ClickHouse docker 镜像版本为latest,因为只是测试使用,新版本会有更多的新功能让我们来体验。Zookeeper docker 镜像为 3.6.1 版本,这个版本是生产上运行比较稳定的且提供 Prometheus 监控的版本。

2023-02-23 15:18:28 1701

原创 【ClickHouse系列】如何用 ClickHouse 生成随机测试数据

ClickHouse 从 22.10 版本开始增加了均匀分布和非均匀分布函数来支持生成具有高度灵活性的随机数据。

2023-02-17 23:46:38 2463

原创 Bytebase 搭建及如何对接 ClickHouse

Bytebase 是一个数据库 CI/CD 工具,提供 SQL 审核、变更、留档、回滚等功能,本文对 Bytebase 的使用做个简要说明。

2023-02-14 23:46:04 1684

原创 CacheLib 原理说明

CacheLib 是 facebook 开源的一个用于访问和管理缓存数据的 C++ 库。它是一个线程安全的 API,使开发人员能够构建和自定义可扩展的并发缓存。

2023-02-09 12:26:10 1642

原创 【ClickHouse系列】ClickHouse 轻量级删除原理

ClickHouse 轻量级删除原理介绍及其使用方法

2022-12-27 23:26:38 3639 1

转载 K8S 三种探针 ReadinessProbe、LivenessProbe和StartupProbe 之探索

本文作者 LEE,老李,一个在 IT 行业摸爬滚打 16 年的技术老兵。事件背景因为 k8s 中采用大量的异步机制、以及多种对象关系设计上的解耦,当应用实例数 增加/删除、或者应用版本发生变化触发滚动升级时,系统并不能保证应用相关的 service、ingress 配置总是及时能完成刷新。在一些情况下,往往只是新的 Pod 完成自身初始化,系统尚未完成 Endpoint、负载均衡器等外部可达的访问信息刷新,老得 Pod 就立即被删除,最终造成服务短暂的额不可用,这对于生产来说是不可接受的,所以 k8s

2022-12-26 18:07:00 652

转载 【ClickHouse系列】ClickHouse常用聚合函数的使用方法

本文主要介绍下 ClickHouse 中常用的聚合函数。

2022-12-01 22:05:45 4805

原创 【ClickHouse实践】将函数应用于多个列

将函数应用于多个列

2022-11-23 22:31:57 385

原创 【ClickHouse实践】ClickHouse中HTTP错误码处理

当您通过 ClickHouse HTTP 接口提交查询时,任何错误都会在响应标头中的一个名为的特殊字段中返回。

2022-11-23 22:06:37 1224

原创 【ClickHouse源码】ReadIndirectBufferFromRemoteFS介绍

ReadIndirectBufferFromRemoteFS直译过来就是针对远程文件系统创建的间接的ReadBuffer,这是由于远程文件系统并不能像本地文件系统一样直接操作文件,所以通过ReadBuffer抽象出了必要的接口,让各种ReadBuffer去实现,ReadIndirectBufferFromRemoteFS就是其中之一。头文件如下:class ReadIndirectBufferFromRemoteFS : public ReadBufferFromFileBase{public:

2022-05-19 21:02:20 379

原创 【ClickHouse源码】两种Merge算法(Horizontal和Vertical)的使用场景

/// parts should be sorted.MergeTreeData::MutableDataPartPtr MergeTreeDataMergerMutator::mergePartsToTemporaryPart( const FutureMergedMutatedPart & future_part, const StorageMetadataPtr & metadata_snapshot, MergeList::Entry & merge

2022-05-19 20:46:20 1605

原创 【ClickHouse源码】通过CachedReadBufferFromRemoteFS了解Cache缓存机制

CachedReadBufferFromRemoteFS为支持本地Cache封装的一个ReadBuffer。下面主要介绍CachedReadBufferFromRemoteFS的3个函数,来理解ClickHouse Cache的实现。预先了解下3种读类型(ReadType):CACHED:本地缓存中已存在REMOTE_FS_READ_BYPASS_CACHE:在读远端文件时,如果本地缓存不存在,不做任何操作,直接绕过缓存读远端文件REMOTE_FS_READ_AND_PUT_IN_CACHE:

2022-05-19 12:25:08 1014

原创 【ClickHouse源码】MergeTree之Alter、Merge、Mutation主要方法介绍

文章目录MergeTree1. BackgroundJobExecutor1.1 startup1.2 IBackgroundJobExecutor::start()1.3 jobExecutingTask1.4 getDataProcessingJob2. alter2.1. getMutationCommands2.2 changeSettings2.3 alterTable2.4 startMutation2.5 waitForMutation3. merge3.1 selectPartsToMerg

2021-10-28 23:24:35 1604

原创 【ClickHouse系列】写入频繁时为什么易产生Too many part问题

问题现象在发现GET_PART类型的queue非常大的情况下,在system.replication_queue表中出现以下信息:node_nametypepostpone_reasonqueue-0000000120MERGE_PARTSNot executing log entry queue-0000000120 of type MERGE_PARTS for part xxx_31402_31418_2 because part xxx_31412_31412_0 is

2021-10-28 23:05:26 7894 6

原创 【clickhouse系列】搭建clickhouse集群仅仅需要一个脚本而已

本例子可以支持灵活配置m*n的clickhouse集群使用方法分为执行脚本和配置文件两个配置文件config.toml机器的用户名和密码要配置成一样的# 分片数shard_num = 2# 副本数replica_num = 2# 机器ip列表host_list = ["10.0.0.2","10.0.0.3","10.0.0.4","10.0.0.5"]# zk ip或域名列表zk_host_list = ["10.0.0.6","10.0.0.7","10.0.0.8"]# 机器

2021-07-01 20:41:21 520

原创 【clickhouse系列】如何做到数据实时更新

UPDATE+Optimize方式用法建表及插入数据CREATE TABLE tb_test( ts DateTime, uid String, biz String) ENGINE = MergeTree() ORDER BY (ts) SETTINGS index_granularity = 8192;INSERT INTO tb_test VALUES ('2019-06-07 20:01:01', 'a', 'a1');INSERT INTO tb_te

2021-06-18 09:34:35 3514 6

原创 【clickhouse系列】为什么有空part存在

问题有时候偶尔会发现ClickHouse会存在许多空part,并且一直不会被删除。一般是因为为表设置了TTL的问题,早期版本会保留空part,查询part也会返回0行。SELECT partition, name, active, rowsFROM system.partsWHERE (table = 'query_log') AND active┌─partition──┬─name────────────────────────┬─active─┬──rows

2021-05-18 19:10:42 722

原创 【ClickHouse系列】ClickHouse之Atomic数据库引擎

Atomic数据库引擎是新版本支持的默认库引擎,支持非阻塞DROP TABLE和RENAME TABLE查询以及原子的EXCHANGE TABLES t1 AND t2。这几种操作官网描述的很清晰,详见:Atomic。下面主要介绍一下该引擎的一些细节步骤。创建表步骤为新表生成UUID将创建表的SQL中的CREATE改写为ATTACH,并存入/metadata/database/table.sql,table.sql中不再存储表名而是用UUID代替,例如:ATTACH TABLE _ UUID 'xx

2021-04-06 19:29:48 1730

原创 【clickhouse系列】使用operator-sdk快速开发clickhouse-operator

ch-operator是一个基于operator-sdk框架的实验性的clickhouse operator项目,目的是为了熟悉operator-sdk框架的使用以及clickhouse集群怎样适配k8s。operator-sdk安装安装最新版本brew install operator-sdk指定版本安装export RELEASE_VERSION=v0.13.0curl -LO https://github.com/operator-framework/operator-sdk/relea

2021-04-05 12:27:18 650

原创 【ClickHouse实践】基于S3实现副本间数据零拷贝(实验性)

本文仅仅是在了解原理的基础上,在不改动源码的情况下做的一种实验性尝试。实验介绍实验环境:两台CentOS7云主机(规格不限),都安装20.8.3.18版本ck,多读和一读原理一样,所以只选择两台机器做功能测试实验方法及于预期:两个集群都创建相同的S3策略的表,A集群执行写入,在A集群会生成S3的元信息文件,将A集群元信息文件通过rsync同步到B集群同表的detached目录下,对B集群该表执行attach partition加载S3元信息,最终可实现相同数据的读取。配置ck及验证配置s3.x

2021-01-30 21:38:42 1041

原创 【ClickHouse原理】数据目录完全解析

本文主要介绍一下ck数据目录都包含什么文件,以及文件内容都是什么,并着重介绍一些二进制文件的格式及内容。首先按照如下规则创建表,用于后续数据的对照查询#创建表CREATE TABLE default.mt( `a` Int32, `b` Int32, `c` Int32, INDEX `idx_c` (c) TYPE minmax GRANULARITY 1)ENGINE = MergeTreePARTITION BY a ORDER BY bSETTING

2021-01-30 21:33:55 2275

原创 【ClickHouse源码】MergeTree重启加载数据过程

ClickHouse有很多表引擎,用的最多的是ReplicatedMergeTree,但是ReplicatedMergeTree也是基于MergeTree进行的增强,核心还是MergeTree,下面主要介绍一下MergeTree在ClickHouse重启时是如何加载数据的。MergeTree加载数据过程server端的启动是在Server.cpp中main()方法开始的,所以加载数据的过程也包含其中,由于代码过长只留下部分关键代码,如下:int Server::main(const std::vect

2021-01-13 21:08:39 2159

原创 【ClickHouse系列】clickhouse-copier是如何进行数据迁移的

clickhouse-copier是官方的数据迁移工具,用于多个集群之间的数据迁移。详细的配置可以参照官方文档:https://clickhouse.tech/docs/en/operations/utilities/clickhouse-copier/clickhouse-copier配置文件配置文件有两个,一个是zk的zookeeper.xml配置,一个是迁移任务的task.xml配置。zookeeper.xml配置文件<yandex> <logger>

2020-12-22 19:31:37 3700 4

原创 【ClickHouse系列】Kafka表引擎如何回置offset

本文目的是给出一种ClickHouse中如何在Kafka表引擎出现异常或者需要再次消费之前已消费过的数据的场景kafka下载地址wget https://mirror.bit.edu.cn/apache/kafka/2.6.0/kafka_2.12-2.6.0.tgz脚本在kafka的bin路径下建表语句这里以CSV格式为例,其余格式可以参考另一篇:【ClickHouse系列】Kafka引擎表消费CSV/JSON/AVRO类型数据CREATE TABLE test ( C_CU

2020-11-28 23:29:27 1591

原创 【ClickHouse系列】Kafka引擎表消费CSV/JSON/AVRO类型数据

ClickHouse支持的导入导出数据格式是非常丰富的,具体可以查看官方文档:https://clickhouse.tech/docs/en/interfaces/formats。本文主要针对三种类型CSV/JSON/AVRO如何创建Kafka表引擎进行详细说明。前置知识Kafka表引擎参数CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]( name1 [type1] [DEFAULT|MATERIALIZE

2020-11-28 23:02:52 3578 3

maven的set.xml配置文件

maven的set.xml配置文件

2017-08-27

空空如也

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

TA关注的人

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