博客

共 91 篇
技术分享
查询性能较 Trino/Presto 3-10 倍提升!Apache Doris 极速数据湖分析深度解读
作为一款极速易用的开源实时 OLAP 数据库,[Apache Doris ](https://github.com/apache/doris)自 0.15 版本即开始尝试在 Apache Iceberg 之上探索与数据湖的能力结合。而经过多个版本的优化迭代,Apache Doris 在数据湖分析已经取得了长足的进展,一方面在数据读取、查询执行以及优化器方面做了诸多优化,另一方面则是重构了整体的元数据连接框架并支持了更多外部存储系统。因此 Apache Doris 已经完全具备了构建极速易用的 Lakehouse 架构的能力,并且也已在多个用户的真实业务场景中得到验证和推广。
SelectDB 技术团队 · 2023/02/28
技术分享
资源消耗降低 90%,速度提升 50%,解读 Apache Doris Compaction 最新优化与实现
LSM-Tree( Log Structured-Merge Tree)是数据库中最为常见的存储结构之一,其核心思想在于充分发挥磁盘连续读写的性能优势、以短时间的内存与 IO 的开销换取最大的写入性能,数据以 Append-only 的方式写入 Memtable、达到阈值后冻结 Memtable 并 Flush 为磁盘文件、再结合 Compaction 机制将多个小文件进行多路归并排序形成新的文件,最终实现数据的高效写入。
SelectDB 技术团队 · 2023/02/22
技术分享
更高性能表现、更低资源占用,高精度计算数据类型 DecimalV3 揭秘
数值运算是数据库中十分常见的需求,例如计算数量、重量、价格等,为了适应多样化运算场景,数据库系统通常支持精准的数字类型和近似的数字类型,当我们需要精确地表示小数并计算小数时,通常会考虑使用 Decimal 数据类型。区别于浮点小数,Decimal 作为定点小数类型,可以支持高精度的小数运算,因此适用于各种高精度计算的场景,常见的应用场景有以下几种:
SelectDB 技术团队 · 2023/01/31
技术分享
Java UDF 的设计与使用介绍,兼容 Hive UDF 实现数据快速迁移
我们在使用各个 SQL 引擎时,会遇到纷繁复杂的查询需求。一部分可以通过引擎自带的内置函数去解决,但内置函数往往具有一定通用性,在部分特殊场景下内置函数可能无法满足需求,所以一般 SQL 引擎会提供 UDF 功能,方便用户通过自己写逻辑来满足特定的需求,Apache Doris 也不例外。在 Java UDF 之前,Apache Doris 提供了原生 UDF 。由于是使用 C++ 来编写的,执行效率高、速度更快,但是在实际使用中也会存在一些问题:
SelectDB 技术团队 · 2023/01/13
技术分享
10x 查询性能提升,全新 Unique Key 的设计与实现
在实时数据仓库的业务场景中,能够友好支持数据的实时更新是一个非常重要的能力。例如在数据库同步(CDC)、电商交易订单、广告效果投放、营销业务报表等业务场景中,面对上游数据的变化,通常需要快速获取到变更记录并针对单行或多行数据进行及时变更,保证业务分析师及相关分析平台能快速捕捉到最新进展,提升业务决策的及时性。
SelectDB 技术团队 · 2022/12/09
技术分享
多场景下 3-11 倍性能提升,Apache Doris 1.2 新版本性能揭秘!
自 Apache Doris 1.1.0 版本发布距今已经有数月之久,在这一期间,我们重新思考并确立了社区新版本发布的流程,正式引入了 LTS (Long-Term Support,长周期支持)版本的概念,在 1.1.x 系列版本中不再引入大的功能 Feature、仅提供问题修复和稳定性改进,力求满足更多社区用户在稳定性方面的高要求。值得高兴的是,这一行动已经有了明显的成效,目前 1.1.x 系列最新版本的稳定性经受了众多用户生产环境的考验。
SelectDB 技术团队 · 2022/12/01
技术分享
DDL 毫秒级同步,Light Schema Change 的设计与实现
在 OLAP 的业务场景中,Schema Change 是一个相对常见的业务需求,当上游数据源维度发生变化时,通常需要将数仓中的表结构进行相应的变更。相对于业界其他 OLAP 数据库,Apache Doris 对于 Schema Change 的支持非常友好,可支持 Online Schema Change,进行加减列或修改列类型时无须停服,保证了系统的高可用和业务的平稳运转。但在部分场景下,Schema Change 也存在一定的瓶颈,例如:在面对大数据量宽表场景下, Schema Change 执行效率相对较低、耗费时间较长;另外基于 Flink 和 Doris 构建实时数仓时,因 Schema Change 是异步作业,一旦上游表发生维度变化,需要自己维护 Schema Change 的执行状态,并在完成后重启 Flink Job,无法做到自动化变更,冗长复杂的操作流程无疑增加了许多开发和运维的成本,且可能会带来消费数据的积压。
SelectDB 技术团队 · 2022/11/11
技术分享
如何高效解决 C++内存问题,Apache Doris 实践之路
Apache Doris 使用 C++ 语言实现了执行引擎,C++ 开发过程中,影响开发效率的一个重要因素是指针的使用,包括非法访问、泄露、强制类型转换等。本文将会通过对 Sanitizer 和 Core Dump 分析工具的介绍来为大家分享:如何快速定位 Apache Doris 中的 C++ 问题,帮助开发者提升开发效率并掌握更高效的开发技巧。Apache Doris 是一款高性能 MPP 分析型数据库,出于性能的考虑,Apache Doris 使用了 C++ 语言实现了执行引擎。
SelectDB 技术团队 · 2022/09/05
技术分享
如何将 Pulsar 数据快速且无缝接入 Apache Doris
Apache Doris Routine Load 支持了将 Kafka 数据接入 Apache Doris,并保障了数据接入过程中的事务性操作。Apache Pulsar 定位为一个云原生时代企业级的消息发布和订阅系统。那么 Apache Pulsar 用户如何将数据接入 Apache Doris 呢?本次分享将介绍利用 KoP 如何将 Pulsar 数据快速且无缝接入 Apache Doris。
SelectDB 技术团队 · 2022/08/03
技术分享
Apache Doris 1.1 特性揭秘:Flink 实时写入如何兼顾高吞吐和低延时
随着数据实时化需求的日益增多,数据的时效性对企业的精细化运营越来越重要,使得实时数仓在这一过程中起到了不可替代的作用。本文将基于用户遇到的问题与挑战,揭秘 Apache Doris 1.1 特性,对 Flink 实时写入 Apache Doris 的优化实现与未来规划进行详细的介绍。在这种形势下,Apache Doris 作为一款实时 MPP 分析型数据库脱颖而出,同时具备高性能、简单易用等特性,具有丰富的数据接入方式
SelectDB · 2022/07/29