Apache Doris接入Kafka实时流数据

简介: 一.简述Apache Doris是由百度的Palo项目开源而来,整体架构分为两层:多个 FE 组成第一层,提供 FE 的横向扩展和高可用;多个 BE 组成第二层,负责数据存储于管理。FE 节点分为 follower 和 observer 两类。

一.简述

Apache Doris是由百度的Palo项目开源而来,整体架构分为两层:多个 FE 组成第一层,提供 FE 的横向扩展和高可用;多个 BE 组成第二层,负责数据存储于管理。

  1. FE 节点分为 follower 和 observer 两类。各个 FE 之间,通过 bdbje(BerkeleyDB Java Edition)进行 leader 选举,数据同步等工作。
  2. follower 节点通过选举,其中一个 follower 成为 leader 节点,负责元数据的写入操作。当 leader 节点宕机后,其他 follower 节点会重新选举出一个 leader,保证服务的高可用。
  3. observer 节点仅从 leader 节点进行元数据同步,不参与选举。可以横向扩展以提供元数据的读服务的扩展性。

二.Kafka实时流数据

Ⅰ).创建数据表

CREATE TABLE IF NOT EXISTS datasource_name.table_name(
  'id' LARGEINT NOT NULL,
  'name' VARCHAR(50) NOT NULL,
  'process_time' BIGINT SUM DEFAULT '0'
)
ENGINE=olap
AGGREGATE KEY('id','name')
DISTRIBUTED BY HASH('id') BUCKETS 16
PROPERTIES(
  "replication_num"="2",
  "storage_medium"="SSD",
  "storage_cooldown_time"="2020-01-01 12:00:00"
)

Ⅱ).动态插入列

drois数据库由于是列式存储,所以支持动态扩展列

ALTER TABLE datasource_name.table_name ADD COLUMN jsp_process_time BIGINT SUM DEFAULT '0' after process_time;

ALTER TABLE datasource_name.table_name ADD COLUMN ejb_process_time BIGINT SUM DEFAULT '0' after jsp_process_time;

Ⅲ).查看表结构

DESC datasource_name.table_name;

Ⅳ).配置Kafka routine load

CREATE ROUTINE LOAD datasource_name.kafka_load ON datasource_name.table_name
COLUMNS TERMINATED BY "|",
COLUMNS(id,name,process_time,jsp_process_time,ejb_process_time)
PROPERTIES(
  "desired_concurrent_number"="3",
  "max_batch_interval"="20",
  "max_batch_rows"="300000",
  "max_batch_size"="209715200"
)
FROM KAFKA(
  "kafka_broker_list"="hostname1:9092,hostname2:9092,hostname3:9092",
  "kafka_topic"="topic_name",
  "kafka_partitions"="0,1,2",
  "kafka_offsets"="0,0,0"
)

Ⅴ).查看routine load状态

SHOW ALL ROUTINE LOAD FOR datasource_name.kafka_load;

Ⅵ).常用routine load命令

a).暂停routine load

PAUSE ROUTINE LOAD FOR datasource_name.kafka_load;

b).恢复routine load

RESUME ROUTINE LOAD FOR datasource_name.kafka_load;

c).停止routine load

STOP ROUTINE LOAD FOR datasource_name.kafka_load;

d).查看所有routine load

SHOW [ALL] ROUTINE LOAD FOR datasource_name.kafka_load;

e).查看routine load任务

SHOW ROUTINE LOAD TASK datasource_name.kafka_load;

Ⅶ).查看数据

SELECT * FROM datasource_name.table_name LIMIT 10;

三.Apache Doris优缺点

优点

  1. 支持MySQL客户端的方式,查询访问数据源
  2. 支持数据列式存储,对数据列的动态增减方便
  3. BE、FE的扩容简单
  4. 支持在明细数据上的SUM、MIN、MAX等基本聚合统计
  5. 对RDBMS数据库有基础的,上手容易

缺点

  1. Doris编译,环境依赖重、编译过程问题多
  2. Doris数据格式支持较简单,不支持或json格式的数据
  3. 微批导入数据量不能超过1GB,而且不支持多文件同时导入
  4. streaming数据,需等数据streaming结束后才开始导入任务
  5. 导入过程中的出现异常数据会导致整个导入任务的失败(为保障数据的原子性和一致性)
  6. 目前社区活跃度低,基本由百度贡献
目录
相关文章
|
12天前
|
消息中间件 Java Kafka
什么是Apache Kafka?如何将其与Spring Boot集成?
什么是Apache Kafka?如何将其与Spring Boot集成?
43 5
|
15天前
|
消息中间件 Java Kafka
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
22 1
|
1月前
|
消息中间件 Ubuntu Java
Ubuntu系统上安装Apache Kafka
Ubuntu系统上安装Apache Kafka
|
1月前
|
消息中间件 监控 Kafka
Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面
随着大数据技术的发展,Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面,方便管理和监控 Kafka 集群。本文详细介绍了 Kafka Manager 的部署步骤和基本使用方法,包括配置文件的修改、启动命令、API 示例代码等,帮助你快速上手并有效管理 Kafka 集群。
44 0
|
2月前
|
消息中间件 存储 运维
为什么说Kafka还不是完美的实时数据通道
【10月更文挑战第19天】Kafka 虽然作为数据通道被广泛应用,但在实时性、数据一致性、性能及管理方面存在局限。数据延迟受消息堆积和分区再平衡影响;数据一致性难以达到恰好一次;性能瓶颈在于网络和磁盘I/O;管理复杂性涉及集群配置与版本升级。
|
2月前
|
消息中间件 Java Kafka
Flink-04 Flink Java 3分钟上手 FlinkKafkaConsumer消费Kafka数据 进行计算SingleOutputStreamOperatorDataStreamSource
Flink-04 Flink Java 3分钟上手 FlinkKafkaConsumer消费Kafka数据 进行计算SingleOutputStreamOperatorDataStreamSource
52 1
|
4月前
|
消息中间件 Java Kafka
Kafka不重复消费的终极秘籍!解锁幂等性、偏移量、去重神器,让你的数据流稳如老狗,告别数据混乱时代!
【8月更文挑战第24天】Apache Kafka作为一款领先的分布式流处理平台,凭借其卓越的高吞吐量与低延迟特性,在大数据处理领域中占据重要地位。然而,在利用Kafka进行数据处理时,如何有效避免重复消费成为众多开发者关注的焦点。本文深入探讨了Kafka中可能出现重复消费的原因,并提出了四种实用的解决方案:利用消息偏移量手动控制消费进度;启用幂等性生产者确保消息不被重复发送;在消费者端实施去重机制;以及借助Kafka的事务支持实现精确的一次性处理。通过这些方法,开发者可根据不同的应用场景灵活选择最适合的策略,从而保障数据处理的准确性和一致性。
319 9
|
4月前
|
消息中间件 负载均衡 Java
"Kafka核心机制揭秘:深入探索Producer的高效数据发布策略与Java实战应用"
【8月更文挑战第10天】Apache Kafka作为顶级分布式流处理平台,其Producer组件是数据高效发布的引擎。Producer遵循高吞吐、低延迟等设计原则,采用分批发送、异步处理及数据压缩等技术提升性能。它支持按消息键值分区,确保数据有序并实现负载均衡;提供多种确认机制保证可靠性;具备失败重试功能确保消息最终送达。Java示例展示了基本配置与消息发送流程,体现了Producer的强大与灵活性。
73 3
|
4月前
|
vr&ar 图形学 开发者
步入未来科技前沿:全方位解读Unity在VR/AR开发中的应用技巧,带你轻松打造震撼人心的沉浸式虚拟现实与增强现实体验——附详细示例代码与实战指南
【8月更文挑战第31天】虚拟现实(VR)和增强现实(AR)技术正深刻改变生活,从教育、娱乐到医疗、工业,应用广泛。Unity作为强大的游戏开发引擎,适用于构建高质量的VR/AR应用,支持Oculus Rift、HTC Vive、Microsoft HoloLens、ARKit和ARCore等平台。本文将介绍如何使用Unity创建沉浸式虚拟体验,包括设置项目、添加相机、处理用户输入等,并通过具体示例代码展示实现过程。无论是完全沉浸式的VR体验,还是将数字内容叠加到现实世界的AR应用,Unity均提供了所需的一切工具。
153 0
|
4月前
|
消息中间件 存储 关系型数据库
实时计算 Flink版产品使用问题之如何使用Kafka Connector将数据写入到Kafka
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。

推荐镜像

更多