一文读懂 Doris 冷热分离,优化存储与查询性能

在大数据分析领域,随着数据量的迅猛增长,如何高效管理和利用数据成为了关键问题。Doris 作为一款强大的分析型数据库,其冷热分离功能为解决这一问题提供了有力的支持。本文将深入探讨 Doris 冷热分离的相关知识,包括其重要性、原理、使用方式、最佳实践以及常见问题解答等,帮助读者全面了解并掌握这一功能。

一、为什么需要冷热分离

随着业务的发展,数据量呈爆发式增长。企业不仅需要存储海量数据,还面临着如何在保证查询性能的同时降低存储成本的挑战。在这种情况下,冷热分离技术应运而生。

在许多业务场景中,数据的访问频率具有明显的时间特征。近期产生的数据通常会被频繁查询和分析,这些数据被称为热数据。而随着时间的推移,数据的访问频率逐渐降低,这些数据则成为冷数据。如果将所有数据都存储在高性能、高成本的存储介质上,无疑会造成资源的浪费。因此,冷热分离的核心目的就是将热数据和冷数据分开存储,热数据存储在高性能的存储介质中以保证查询性能,冷数据则存储在低成本的存储介质中以降低存储成本,从而实现查询性能和存储成本的平衡。

以日志分析场景为例,新产生的日志数据对于实时监控和故障排查至关重要,需要快速查询和分析,属于热数据。而历史日志数据虽然访问频率较低,但出于合规性和偶尔的数据分析需求,仍需要长期保存,这些就是冷数据。通过冷热分离,将近期的日志数据存储在 Doris 的本地存储中,保证实时查询的高性能,而将历史日志数据存储到对象存储等低成本存储介质中,既能满足数据保存需求,又能大幅降低存储成本。

二、Doris 冷热分离原理简介

Doris 的冷热分离功能主要基于存储策略和资源管理来实现。用户可以创建不同的存储资源,如基于对象存储(如 S3 兼容模式、AZURE 模式)或 HDFS 的资源,并通过创建存储策略来指定数据何时以及如何移动到不同的存储资源上。

在 Doris 中,每个表或分区都可以绑定一个存储策略。当数据满足存储策略中定义的冷却条件(如达到指定的时间 TTL 或具体的冷却时间点)时,Doris 会自动将数据从本地存储迁移到指定的远程存储资源中,如对象存储。在查询时,Doris 会根据数据的存储位置,自动从相应的存储介质中读取数据。如果查询涉及到冷数据,Doris 会高效地从远程存储中获取数据并进行处理,同时结合本地缓存和优化的查询执行计划,尽量减少查询延迟,确保查询性能。

例如,创建一个存储策略,设置冷却时间为数据导入后的 1 天(即 cooldown_ttl = “1d”),并指定存储资源为一个 S3 兼容的对象存储资源。那么,在数据导入 Doris 一天后,符合条件的数据就会被自动迁移到该对象存储中。

三、使用方式

(一)基于对象存储

  1. S3 兼容模式
CREATE RESOURCE "remote_s3"
PROPERTIES
(
   "type" = "s3",
   "s3.endpoint" = "bj.s3.com",
   "s3.region" = "bj",
   "s3.access_key" = "bbb",
   "s3.secret_key" = "aaaa",
   -- 以下为可选属性
   "s3.root.path" = "prefix",
   "s3.connection.maximum" = "50",
   "s3.connection.request.timeout" = "3000",
   "s3.connection.timeout" = "1000"
);

在创建 S3 兼容的存储资源时,需要指定关键的属性,如端点(s3.endpoint)、区域(s3.region)、访问密钥(s3.access_key)和秘密密钥(s3.secret_key)。可选属性如根路径(s3.root.path)可以用于在对象存储中指定一个特定的前缀路径来存储数据,连接最大数(s3.connection.maximum)等属性可以优化与对象存储的连接性能。

(1) 关于 path style

Path style 和 Virtual hosted style:Virtual hosted style 是指将 Bucket 置于 Host Header 的访问方式。基于安全考虑,OSS 仅支持 virtual hosted 访问方式。所以在 S3 迁移至 OSS 后,客户端应用需要进行相应设置。部分 S3 工具默认使用 Path style,也需要进行相应配置,否则可能导致 OSS 报错,并禁止访问。可参考阿里云文档进行详细配置。

(2) AZURE 这类和

课程总体架构请观看89讲。数据仓库是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,用于对管理决策过程的支持。数据仓库的应用有:1.数据分析、数据挖掘、人工智能、机器学习、风险控制、无人驾驶。2.数据化运营、精准运营。3.广告精准、智能投放等等。数据仓库是伴随着企业信息化发展起来的,在企业信息化的过程中,随着信息化工具的升级和新工具的应用,数据量变的越来越大,数据格式越来越多,决策要求越来越苛刻,数据仓库技术也在不停的发展。数据仓库有两个环节:数据仓库的构建数据仓库的应用。随着IT技术走向互联网、移动化,数据源变得越来越丰富,在原来业  务数据库的基础上出现了非结构化数据,比如网站log,IoT设备数据,APP埋点数据等,这些数据量比以往结构化的数据大了几个量级,对ETL过程、存储都提出了更高的要求。互联网的在线特性也将业务需求推向了实时化 ,随时根据当前客户行为而调整策略变得越来越常见,比如大促过程中库存管理,运营管理等(即既有中远期策略型,也有短期操作型)。同时公司业务互联网化之后导致同时服务的客户剧增,有些情况人工难以完全处理,这就需要机器 自动决策 。比如欺诈检测和用户审核。总结来看,对数据仓库的需求可以抽象成两方面: 实时产生结果、处理和保存大量异构数据。本课程基于真实热门的互联网电商业务场景为案例讲解,结合分层理论和实战对数仓设计进行详尽的讲解,基于Flink+DorisDB实现真正的实时数仓,数据来及分析,实时报表应用。具体数仓报表应用指标包括:实时大屏分析、流量分析、订单分析、商品分析、商家分析等,数据涵盖全端(PC、移动、小程序)应用,互联网企业大数据技术同步,让大家能够学到大数据企业级实时数据仓库的实战经验。本课程包含的技术: 开发工具为:IDEA、WebStorm Flink 1.11.3Hadoop 2.7.5Hive 2.2.0ZookeeperKafka 2.1.0、Spring boot 2.0.8.RELEASESpring Cloud Finchley.SR2Flume 、Hbase 2.2.6DorisDB 0.13.9、RedisVUE+jQuery+Ajax+NodeJS+ElementUI+Echarts+Datav等课程亮点: 1.企业接轨、真实工业界产品2.DorisDB高性能分布式数据库3.大数据热门技术Flink最新版4.真正的实时数仓以及分层设计5.海量数据大屏实时报表6.数据分析涵盖全端(PC、移动、小程序)应用7.主流微服务后端系统8.数据库实时同步解决方案9.涵盖主流前端技术VUE+jQuery+Ajax+NodeJS+ElementUI+Echarts+Datav10.集成SpringCloud实现统一整合方案11.互联网大数据企业热门技术栈12.支持海量数据的实时数仓报表分析13.支持全端实时实时数仓报表分析14.全程代码实操,提供全部代码和资料 15.提供答疑和提供企业技术方案咨询企业一线架构师讲授,代码在老师的指导下企业可以复用,提供企业解决方案。  版权归作者所有,盗版将进行法律维权。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据极客圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值