Apache Doris 2.0 冷热分离快速体验

这篇具有很好参考价值的文章主要介绍了Apache Doris 2.0 冷热分离快速体验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

对于任何一种数据库类软件来说,无论其基于传统数据库模型还是基于分布式结构,作为核心的永远是数据本身。而数据的生命周期,则体现在CRUD操作(创建、查询、更新、删除)上。任何一条数据从其生成的时刻开始,数据价值随着时间的推移而逐渐降低,直至成为无用数据,最终删除。

作为使用数据的主体用户,对于各种数据的需求程度是不同的,人们往往对重要的数据有更高效、稳定的访问需求;而对于不重要的数据则没有这么高的要求,而前者存储的代价往往是远高于后者的。用户在满足了自身对于数据使用要求的情况下,自然会开始考虑数据存储成本等方面的问题,对于那些很少访问甚至基本不访问的数据,使用成本更低的存储方式将是一种更好的选择。

针对这样的使用场景,我们将数据根据用户需求分为“热数据”与“冷数据”。顾名思义,“热数据”代表着用户对其有着更频繁的访问需求,“冷数据”则很少访问。一般数据在新创建的时候往往都是“热数据”,而随着时间的推移逐步变成“冷数据”。

对于热数据,其访问的频率很高,且往往是用户非常关心的数据,其实时性要求一般都很高,并且读写的频率也会更高,这正是DORIS本地存储重点解决的问题。

对于冷数据,其数据量往往远大于热数据,并且很少被访问,使用本地存储的代价就很高,这时使用存算分离模型,将其存储到代价更低的存储载体将大大降低成本。

未来一个很大的使用场景是类似于es日志存储,日志场景下数据会按照日期来切割数据,很多数据是冷数据,查询很少,需要降低这类数据的存储成本。从节约存储成本角度考虑

  1. 各云厂商普通云盘的价格都比对象存储贵
  2. 在doris集群实际线上使用中,普通云盘的利用率无法达到100%
  3. 云盘不是按需付费,而对象存储可以做到按需付费
  4. 基于普通云盘做高可用,需要实现多副本,某副本异常要做副本迁移。而将数据放到对象存储上则不存在此类问题,因为对象存储是共享的。

使用体验

下面我们 Minio 为例来演示怎么使用 Doris 基于对象存储的冷热分离功能。

我是在 MacOS 上来进行安装演示的

MacOS Doris 的编译安装

编译具体可以参照官方文档:在macOS平台上编译 - Apache Doris

本地安装单节点:快速开始 - Apache Doris

如果你是 Linux 系统,可以下载官方编译好的2.0.0 alpha 版本进行快速体验:下载 - Apache Doris

curl https://doris.apache.org/download-scripts/2.0.0-alpha1/download_x64_tsinghua.sh | sh

Minio 安装

本文是brew方式,Mac需安装brew支持,本文不再赘述, Linux 系统下的 Minio 网上很多教程,请自行百度

 brew install minio/stable/minio

然后可以看到安装成功的信息

Command-line Access: https://docs.min.io/docs/minio-client-quickstart-guide
​
Object API (Amazon S3 compatible):
   Go:         https://docs.min.io/docs/golang-client-quickstart-guide
   Java:       https://docs.min.io/docs/java-client-quickstart-guide
   Python:     https://docs.min.io/docs/python-client-quickstart-guide
   JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
   .NET:       https://docs.min.io/docs/dotnet-client-quickstart-guide
​
Talk to the community: https://slack.min.io
==> Get started:
NAME:
  minio server - start object storage server
​
USAGE:
  minio server [FLAGS] DIR1 [DIR2..]
  minio server [FLAGS] DIR{1...64}
  minio server [FLAGS] DIR{1...64} DIR{65...128}
​
DIR:
  DIR points to a directory on a filesystem. When you want to combine
  multiple drives into a single large system, pass one directory per
  filesystem separated by space. You may also use a '...' convention
  to abbreviate the directory arguments. Remote directories in a
  distributed setup are encoded as HTTP(s) URIs.
​
FLAGS:
  --address value              bind to a specific ADDRESS:PORT, ADDRESS can be an IP or hostname (default: ":9000") [$MINIO_ADDRESS]
  --console-address value      bind to a specific ADDRESS:PORT for embedded Console UI, ADDRESS can be an IP or hostname [$MINIO_CONSOLE_ADDRESS]
  --ftp value                  enable and configure an FTP(Secure) server
  --sftp value                 enable and configure an SFTP server
  --certs-dir value, -S value  path to certs directory (default: "/Users/zhangfeng/.minio/certs")
  --quiet                      disable startup and info messages
  --anonymous                  hide sensitive information from logging
  --json                       output logs in JSON format
  --help, -h                   show help
​
EXAMPLES:
  1. Start MinIO server on "/home/shared" directory.
     $ minio server /home/shared
​
  2. Start single node server with 64 local drives "/mnt/data1" to "/mnt/data64".
     $ minio server /mnt/data{1...64}
​
  3. Start distributed MinIO server on an 32 node setup with 32 drives each, run following command on all the nodes
     $ minio server http://node{1...32}.example.com/mnt/export{1...32}
​
  4. Start distributed MinIO server in an expanded setup, run the following command on all the nodes
     $ minio server http://node{1...16}.example.com/mnt/export{1...32} \
            http://node{17...64}.example.com/mnt/export{1...64}
​
  5. Start distributed MinIO server, with FTP and SFTP servers on all interfaces via port 8021, 8022 respectively
     $ minio server http://node{1...4}.example.com/mnt/export{1...4} \
           --ftp="address=:8021" --ftp="passive-port-range=30000-40000" \
           --sftp="address=:8022" --sftp="ssh-private-key=${HOME}/.ssh/id_rsa"
   /opt/homebrew/Cellar/minio/RELEASE.2023-05-04T21-44-30Z_1: 3 files, 100.9MB, built in 3 seconds
==> Running `brew cleanup minio`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

启动服务

设置 MINIO_REGION 、MINIO_ACCESS_KEY 、MINIO_SECRET_KEY

export MINIO_REGION=xian
export MINIO_ACCESS_KEY=minioadmin
export MINIO_SECRET_KEY=minioadmin

将 minio 服务放到后台运行

nohup minio server  /Users/zhangfeng/minio_data > /Users/zhangfeng/minio_data/log/minio.log 2>&1 &

然后可以看见登录界面:

登录进去创建 bucket 下面我们就可以进行Doris的冷热分离操作了

Apache Doris 2.0 冷热分离快速体验

Doris 冷热分离体验

首先我们在 fe/fe.conf 里打开冷热分离这个功能,因为新的功能在第一个版本默认是关闭的,所以我们要手动打开,添加下面的内容

enable_storage_policy=true

然后重启 FE。

首先我们创建一个 Resource

创建S3 RESOURCE的时候,会进行S3远端的链接校验,以保证RESOURCE创建的正确

CREATE RESOURCE "remote_s3"
PROPERTIES
(
    "type" = "s3",
    "AWS_ENDPOINT" = "localhost:9000",
    "AWS_REGION" = "xian",
    "AWS_BUCKET" = "test",
    "AWS_ROOT_PATH" = "/test/test001",
    "AWS_ACCESS_KEY" = "minioadmin",
    "AWS_SECRET_KEY" = "minioadmin",
    "AWS_MAX_CONNECTIONS" = "50",
    "AWS_REQUEST_TIMEOUT_MS" = "3000",
    "AWS_CONNECTION_TIMEOUT_MS" = "1000"
);

然后我们创建数据迁移策略(STORAGE POLICY),用于冷热数据转换

CREATE STORAGE POLICY test_policy
PROPERTIES(
    "storage_resource" = "remote_s3",
    "cooldown_ttl" = "1h"
);
  1. cooldown_datetime:热数据转为冷数据时间,不能与cooldown_ttl同时存在。
  2. cooldown_ttl:热数据持续时间。从数据分片生成时开始计算,经过指定时间后转为冷数据。支持的格式: 1d:1天 1h:1小时 50000: 50000秒

我们后面也可以根据自己的策略来修改这个 ttl 时间,修改命令示例:

ALTER STORAGE POLICY test_policy PROPERTIES("cooldown_ttl" = "5h");

我们创建一张表,并将这个数据迁移策略应用到这个表上

CREATE TABLE IF NOT EXISTS create_table_use_created_policy 
(
    k1 BIGINT,
    k2 LARGEINT,
    v1 VARCHAR(2048)
)
UNIQUE KEY(k1)
DISTRIBUTED BY HASH (k1) BUCKETS 1
PROPERTIES(
    "storage_policy" = "test_policy",
    "replication_num" = "1"
);

我们插入几条数据:

 insert into create_table_use_created_policy values (10001,100001,'11');
 insert into create_table_use_created_policy values (10002,100001,'11');
 insert into create_table_use_created_policy values (10003,100001,'11');

这里我设置了1个小时后进行冷热迁移,一个小时后我们可以在对象存储上看到数据已经迁移过来

Apache Doris 2.0 冷热分离快速体验

同时我们也可以通过 Doris 提供的命令来查看

show tablets from tbl

Apache Doris 2.0 冷热分离快速体验

从这个图上我们也可以看到,已经将部分数据迁移到对象存储上了

还可以通过show proc '/backends'可以查看到每个be上传到对象的大小,RemoteUsedCapacity项

Apache Doris 2.0 冷热分离快速体验

我们后面也会在 show data这个命令加上RemoteDataSize这个属性,这样更方便用户查看表的对象存储使用情况

是不是非常简单方便呢,快点动手体验提来吧文章来源地址https://www.toymoban.com/news/detail-488846.html

到了这里,关于Apache Doris 2.0 冷热分离快速体验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式数据库Apache Doris简易体验

    📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜😜😜 中国DBA联盟(ACDU)成员,目前服务于工业互联网 擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优

    2024年02月06日
    浏览(58)
  • Apache Doris 快速入门

    FE,Frontend,前端节点,接收用户查询请求,SQL解析,执行计划生成,元数据管理,节点管理等 BE,Backend,后端节点,数据存储,执行查询计划。 前端节点FE 和 后端节点BE 各自独立运行,互不影响。 broker:用来和外部文件系统打交道 DORIS_HOME=/export/server/doris-1.2.4.1 node1:安装

    2024年02月07日
    浏览(45)
  • 如何基于 Apache Doris 与 Apache Flink 快速构建极速易用的实时数仓

    随着大数据应用的不断深入,企业不再满足离线数据加工计算的时效,实时数据需求已成为数据应用新常态。伴随着实时分析需求的不断膨胀,传统的数据架构面临的成本高、实时性无法保证、组件繁冗、运维难度高等问题日益凸显。为了适应业务快速迭代的特点,帮助企业

    2024年02月12日
    浏览(48)
  • 数据库调优--冷热分离

    目录 业务场景: 数据库分区技术: 数据库分区的优点: 缺点: 冷热分离的简介: 热数据 冷数据 冷热分离 什么情况下我们可以使用冷热分离: 冷热分离的实现思路: 一、冷热数据都用mysql         需要考虑的问题: 二、冷数据存放到hbase Hbase: 什么是非关系型数据库

    2024年02月11日
    浏览(42)
  • 华为云HBase冷热分离最佳实践

    本文分享自华为云社区 《华为云HBase 冷热分离最佳实践》,作者:pippo。 HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面向列的数据库,它具有高可靠、高性能、面向列和可伸缩的特性,提供快速随机访问海量数据能力。 HBase采用Master/Slave架构,由HMaster节

    2024年02月08日
    浏览(44)
  • ClickHouse多级磁盘和冷热数据分离实践

    特别注意 ck可以大小写区分也可以不区分 ck 配置文件中的各个卷的是有顺序的。 开启远程访问  vim /etc/clickhouse-server/config.xml 前言 ClickHouse 的冷热数据分离和ES的类似,可以选择冷数据跑在哪个数据目录上。 总的来说 ClickHouse 冷热存储架构的整体设计思想是:本地 SSD 存储查

    2024年02月10日
    浏览(49)
  • 【数据库】详解数据库架构优化思路(两主架构、主从复制、冷热分离)

    对数据库架构进行优化是为了提高数据库系统的性能、可扩展性、稳定性和可维护性。MySQL官方说:单表2000万数据,性能就达到瓶颈了,为了保证查询效率需要让每张表的大小得到控制。 再来说,为什么要提高查询效率呢? 除了普通的用户查询操作,增、删、改操作都包含

    2024年02月11日
    浏览(43)
  • ES冷热分离架构设计:一招让你的ELK日志系统节省 50% 的硬盘成本

    首先抛出问题:对于热点搜索而言,最高效的存储手段是什么? 一味地堆硬件配置,不仅不能有效的解决问题,反而会让服务变得臃肿,集群变得累赘增加管理成本和硬件成本。 本文主要探讨关于热点数据的高效存储问题,讨论范围在数据持久化前提下,多级缓存暂不讨论

    2024年02月05日
    浏览(77)
  • Apache Doris (四十八): Doris表结构变更-替换表

     🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客  🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。  🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录

    2024年02月07日
    浏览(43)
  • 02_快速体验 Hudi、编译 Hudi、安装HDFS、安装Spark 3.x、模拟数据、插入数据、查询数据、.hoodie文件、数据文件、Hudi 数据存储概述、Metadata 元数据等

    本文来自\\\"黑马程序员\\\"hudi课程 2.第二章 快速体验 Hudi 2.1 编译 Hudi 2.1.1 第一步、Maven 安装 2.1.2 第二步、下载源码包 2.1.3 第三步、添加Maven镜像 2.1.4 第四步、执行编译命令 2.1.5 第五步、Hudi CLI测试 2.2 环境准备 2.2.1 安装HDFS 2.2.2 安装Spark 3.x 2.3 spark-shell 使用 2.3.1 启动spark-shell

    2024年02月04日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包