AutoMQ 流表一体新特性 Table Topic 发布: 无缝集成 AWS S3 Table 和 Iceberg

news2024/12/20 13:49:04

超越共享存储:使用 Apache Iceberg 中的 AutoMQ Table Topic 实现流处理与分析的统一

自 2023 年底官宣以来,AutoMQ 成功地将 Apache Kafka 从“Shared Nothing architecture”转变为“Shared Storage architecture”,这为京东、知乎、小红书等大型企业带来了至少 50%的成本节约。AutoMQ 的优势不仅在于成本节约,通过统一格式存储在 S3 中的数据,简化 ETL 流程,解决数据互操作性问题,特别是 2024 年 re:Invent 大会上发布的 AWS S3 Table,更提供了强力支持。本文探讨了 AutoMQ Table Topic 如何整合 AWS S3 Table 和 Apache Iceberg,实现流处理与分析的无缝统一。这一新特性帮助企业简化数据管理,提升效率,解锁数据潜力。赶快阅读本文,深入了解吧!

自 2023 年底官宣以来,AutoMQ 成功地将 Apache Kafka 从“Shared Nothing architecture”转变为“Shared Storage architecture”。这一演变利用了云计算的可扩展性、弹性和成本效益,为京东(JD.US)、知乎(ZH.US)、小红书、得物和吉利汽车(0175.HK)等大型公司带来了至少 50%的显著成本节约。共享存储架构的优势显而易见且影响深远。

然而,共享存储的好处是否仅限于成本节约?在当今数据密集型的软件环境中,数据最终存储在对象存储中。尽管在存储层上实现了收敛,不同系统由于存储格式不一致,常常在数据互操作性上遇到困难。这就需要复杂的 ETL(Extract, Transform, Load)流程来打破数据孤岛,充分利用大规模数据的潜力。

幸运的是,Apache Iceberg 已成为表格格式的事实标准,为存储在 S3(Simple Storage Service)上的数据提供了统一格式。这种标准化使不同系统间的数据交互和使用变得顺畅无阻。今天,我们正站在从共享存储到共享数据的新范式转变的边缘。

在本文中,我们探讨了 AutoMQ Table Topic 如何与 AWS(Amazon Web Services)S3 Table 和 Apache Iceberg 一起推动这一转变。通过统一流处理和分析,我们可以在数据管理中解锁前所未有的效率和能力。

Table Topic:从共享存储到共享数据的演变

数据密集型系统的格局在这些年里发生了显著变化,通过各种架构范式的演变,以满足日益增长的数据处理和管理需求。这一演变可以大致分为三个关键阶段:无共享架构、共享存储架构和共享数据架构。

无共享架构

大约十年前,许多本地数据管理系统是采用无共享架构设计的。在这种架构中,每个节点独立运行,拥有自己的内存和磁盘,消除了任何单点争用。这种设计特别适用于需要高扩展性和故障隔离的本地环境。

无共享系统的主要优势在于其水平扩展能力,通过增加节点来处理增加的数据负载。然而,随着系统规模的扩大,确保数据一致性和协调多个节点间的操作可能变得复杂且低效。

共享存储架构

随着数据量的增加,共享无存储架构的局限性逐渐显现,促使了共享存储系统的兴起。基于云的对象存储(如 Amazon S3、Azure Blob Storage 和 Google Cloud Storage)的成熟在这一演变中起到了关键作用。

对象存储提供了巨大的可扩展性、持久性和成本效益。它能够自动将数据复制到多个位置,确保高可用性,并且几乎可以无限扩展。相比传统存储解决方案,每千兆字节的成本更低,使其成为大规模数据存储的经济选择。

这些优势推动了各行业基础软件基于共享存储架构的发展。例如,像 AutoMQ 和 WarpStream 这样的流平台,以及 Grafana 的 Tempo、Loki 和 Mimir 这样的可观测工具,都是基于对象存储构建的。这使它们能够高效管理和处理海量数据,为现代数据密集型应用提供强大、可扩展且具有成本效益的解决方案。

共享数据架构的崛起

共享数据架构是最新的演变,解决了共享无存储和共享存储架构的局限性。共享数据系统利用分布式存储和处理框架,提供即时的数据访问,使实时分析和决策成为可能。

推动这一转变的关键创新是集成了如 Apache Iceberg 这样的先进数据格式。Iceberg 支持模式演进、分区和时间旅行,使其成为管理大规模数据湖的理想选择。支持 Iceberg 的系统可以无缝处理批量和流数据,打破了实时与历史数据处理之间的壁垒。

AutoMQ 通过其 Table Topic 功能,完美展示了共享数据架构。这一功能原生支持 Apache Iceberg,使流数据可以直接被摄取到数据湖中,并实时转换为结构化的、可查询的表。Table Topic 功能弥合了批处理和流处理之间的差距,使企业能够在数据生成的同时进行分析和决策。

深入探讨 Table Topic 架构

Table Topic 是 AutoMQ 内置的一项重要功能,利用 AutoMQ 核心架构的简便性,无需额外节点。这与亚马逊 CTO Werner Vogels 提出的“简单复合性”理念完美契合。Table Topic 包含多个子模块:

  • 模式管理:包含一个内置的 Kafka Schema Registry(一个提供 RESTful 接口用于存储和检索 Avro 模式的服务)。Kafka 客户端可以直接使用 Schema Registry 端点,它会自动与 Iceberg 的目录服务(如 AWS Glue、AWS Table Bucket 和 Iceberg Rest Catalog Service)同步 Kafka 模式。用户无需担心模式变更,因为 Table Topic 支持自动模式演进。

  • 表协调器:每个主题都有一个表协调器,负责集中协调所有节点的 Iceberg Snapshot 提交。这显著减少了提交频率,避免了冲突和潜在的性能影响。系统的主题 __automq.table.control 会定期广播 CommitRequest 消息给工作节点。工作节点上传数据文件后,协调器执行提交并将数据提交到目录。

  • 表工作节点:每个 AutoMQ 节点都有一个嵌入式表工作节点,负责将该节点上所有分区的数据写入 Iceberg。通过监听 CommitRequest 事件,表工作节点将表主题数据上传到数据文件。

数据提交到 Iceberg 的时间间隔是可配置的,允许用户在实时处理和成本效率之间找到平衡。建议将这个间隔设置为几分钟,以便通过 Iceberg 兼容的计算引擎进行查询。

与使用 Kafka Connect 将数据流式传输到数据湖相比,表主题具有以下主要优势:

  • 只需一次点击:只需一次点击,即可启用 AutoMQ 表主题,轻松地将数据流传输到你的 Iceberg 表中,实现连续的实时分析。

  • 内置 Schema Registry:内置的 Kafka Schema Registry 开箱即用。Table Topic 利用已注册的 schema 自动在您的目录服务中创建 Iceberg 表,例如 AWS Glue,并且还支持自动 schema 演进。

  • 零 ETL:传统的数据湖引入方法通常需要 Kafka Connect 或 Flink 等工具作为中介。Table Topic 消除了这一 ETL 流水线,显著降低了成本和运营复杂性。

  • 自动扩展:AutoMQ 本身是一种无状态且弹性的架构,允许代理无缝地扩展或缩减并动态重新分配分区。Table Topic 充分利用这一框架,轻松处理从数百 MiB/s 到数 GiB/s 的数据引入速率。

  • 与 AWS S3 Tables 的无缝集成:Table Topic 无缝集成 S3 Tables,利用其目录服务和维护功能,如压缩、快照管理和未引用文件删除。此集成还通过 AWS Athena 促进大规模数据分析。

在 AWS Marketplace 上开始使用 Table Topic。

在本节中,我们将引导您在 AWS Marketplace 上设置和使用 AutoMQ Table Topic。我们将重点构建一个使用 AWS S3 Tables 和 AWS Athena 优化的点击流数据架构。借助 AutoMQ,我们将数据直接摄取到 S3 Table Bucket 中,免去了 ETL(提取、转换、加载)的需求,使得在 Athena 中的查询更加简便。以下是开始的步骤:

步骤 1:订阅 AutoMQ

首先,导航到[AWS Marketplace 上的 AutoMQ 页面],点击“订阅”按钮以订阅 AutoMQ。按照说明在您的 VPC(虚拟私有云)中使用 BYOC(自带云)模式安装最新版本的 AutoMQ。此过程的详细说明可在[此处]找到。

步骤 2:创建启用 Table Topic 的 AutoMQ 实例

首先,启动 AWS 管理控制台并转到 S3 服务。为存储表数据创建一个新的 S3 table bucket,并记录其 ARN(Amazon 资源名称)。

然后,使用提供的 URL 和你的凭证登录 AutoMQ BYOC 控制台。在最新版本的 AutoMQ 中,设置一个新实例,并在设置过程中将其链接到你 S3 存储桶的 ARN(Amazon Resource Name)。

实例准备好后,进入 AutoMQ BYOC 的主题部分,创建一个测试主题,并为其激活表主题功能。

步骤三:通过 Schema 向表主题发送点击流数据

从 AutoMQ BYOC 控制台获取你的 AutoMQ 实例和 Schema Registry 的端点。使用 Kafka 客户端连接到你的 AutoMQ 实例,并将点击流数据发送到你在前一步创建的表主题。

步骤四:从 AWS Athena 查询表数据

AutoMQ Table Topic 将自动在您的 AWS S3 表桶中创建表。要查询这些数据,请在 AWS Management Console 中打开 AWS Athena。使用 Athena 查询 AutoMQ 创建的表中存储的 Clickstream 数据。

结论

在本文中,我们探讨了 AutoMQ Table Topic 与 AWS S3 Tables 及 Iceberg 的无缝集成。这一强大的组合简化了数据的摄取、存储和查询,消除了复杂的 ETL(提取、转换、加载)过程的需求。

通过利用 AutoMQ 和 AWS 服务,您可以高效地管理大量数据,并轻松获得实时洞察。这种集成为您的数据需求提供了可扩展且可靠的解决方案。

我们希望本指南对您有所帮助。欲了解更多信息,请参阅“AutoMQ 文档”。感谢阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2262743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

maven使用Dependency-Check来扫描安全漏洞

在现代软件开发中,使用开源库和第三方依赖项已成为常态。然而,这些依赖项可能包含已知的安全漏洞,给应用程序带来潜在的风险。为了解决这个问题,OWASP Dependency-Check 应运而生。本文将介绍 OWASP Dependency-Check 的功能、安装…

#渗透测试#红队全栈 powshell基础使用

声明! 学习视频来自B站up主 泷羽sec,任何违法事件与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!! 目录标题 认识powsehll打开方式 使用方式美化自己的powershell简单…

Qt:QMetaObject::connectSlotsByName实现信号槽自动关联

简介 在Qt中,QMetaObject::connectSlotsByName 是一个便利的方法,它可以根据对象的对象名(objectName)自动将信号和槽连接起来。但是,要使用这个方法,必须确保: 1 控件(如按钮&…

《算法ZUC》题目

判断题 ZUC算法LFSR部分产生的二元序列具有很低的线性复杂度。 A.正确 B.错误 正确答案A 单项选择题 ZUC算法驱动部分LFSR的抽头位置不包括( )。 A.s15 B.s10 C.s7 D.s0 正确答案C 单项选择题 ZUC算法比特重组BR层主要使用了软件实现友好的…

maven项目中对不同目录下的同包同名类的引用情况整理

说明 maven项目,允许在不同目录中出现相同包名和相同类名,不会出现冲突,包括: java目录test目录依赖中目录 这里就用Hutool.class类中的一个常量做测试,如图 好奇同包同名类同时存在时,会加载哪个类 Syst…

【UE5 C++课程系列笔记】10——动态单播/多播的基本使用

目录 概念 申明动态委托 一、DECLARE_DYNAMIC_DELEGATE 二、DECLARE_DYNAMIC_MULTICAST_DELEGATE 绑定动态委托 一、BindDynamic 二、AddDynamic 三、RemoveDynamic 执行动态委托 ​一、Execute 二、ExecuteIfBound 三、IsBound 四、Broadcast 动态单播使用示…

Redis篇-19--运维篇1-主从复制(主从复制,读写分离,配置实现,实战案例)

1、概述 Redis的主从复制(Master-Slave Replication)是一种数据冗余机制,它允许将一台Redis服务器的数据复制到其他Redis服务器。在主从复制中,有一台主服务器(Master)和一个或多个从服务器(Sl…

【ORACLE】一个允许关键字作为别名所引起的语法歧义场景

前言 最近在看SQL语法解析器,发现了antlr4提供的PlSql语法树存在一个BUG,然后我顺着这个BUG,构造了一条SQL,在ORACLE执行,如下 然后神奇的事情出现了,这个查询竟然没有返回行!t1表左关联t2&…

【前端】Jquery拍照,通过PHP将base64编码数据转换成PNG格式,并保存图像到本地

目录 一、需求 二、开发语言 三、效果 四、业务逻辑: 五、web端调用摄像头 六、示例代码 1、前端 2、后端 一、需求 web端使用jquery调用摄像头拍照,并使用PHP把base64编码转换成png格式图片,下载到本地。 由于js不能指定图片存储的…

本地摄像头视频流在html中打开

1.准备ffmpeg 和(rtsp-simple-server srs搭建流媒体服务器)视频服务器. 2.解压视频流服务器修改配置文件mediamtx.yml ,hlsAlwaysRemux: yes 3.双击运行服务器。 4,安装ffmpeg ,添加到环境变量。 5.查询本机设备列表 ffmpeg -list_devices true -f dshow -i d…

机器情绪及抑郁症识别算法(六)

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

34. Three.js案例-创建球体与模糊阴影

34. Three.js案例-创建球体与模糊阴影 实现效果 知识点 WebGLRenderer WebGLRenderer 是 Three.js 中用于渲染 3D 场景的核心类。它负责将场景中的对象绘制到画布上。 构造器 new THREE.WebGLRenderer(parameters)参数类型描述parametersObject可选参数对象,包…

服务器数据恢复—RAIDZ离线硬盘数超过热备盘数导致阵列崩溃的数据恢复案例

服务器存储数据恢复环境: ZFS Storage 7320存储阵列中有32块硬盘。32块硬盘分为4组,每组8块硬盘,共组建了3组RAIDZ,每组raid都配置了热备盘。 服务器存储故障: 服务器存储运行过程中突然崩溃,排除人为误操…

108. 将有序数组转换为二叉搜索树(java)

题目描述: 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。 示例 1: 输入:nums [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 解释:[0,-10,5,null,-3,…

电子应用设计方案-60:智能床垫系统方案设计

智能床垫系统方案设计 一、引言 智能床垫作为智能家居的一部分,旨在为用户提供更舒适的睡眠体验和健康监测功能。本方案将详细描述智能床垫系统的设计理念、功能模块及技术实现。 二、系统概述 1. 系统目标 - 实时监测睡眠状态,包括心率、呼吸、体动等…

YOLOv8目标检测(六)_封装API接口

YOLOv8目标检测(一)_检测流程梳理:YOLOv8目标检测(一)_检测流程梳理_yolo检测流程-CSDN博客 YOLOv8目标检测(二)_准备数据集:YOLOv8目标检测(二)_准备数据集_yolov8 数据集准备-CSDN博客 YOLOv8目标检测(三)_训练模型:YOLOv8目标检测(三)_训…

CSDN数据大屏可视化【开源】

项目简介 本次基于版本3 开源 版本3开源地址:https://github.com/nangongchengfeng/CsdnBlogBoard.git 版本1开源地址:https://github.com/nangongchengfeng/CSDash.git 这是一个基于 Python 的 CSDN 博客数据可视化看板项目,通过爬虫采…

Moretl安全日志采集工具

永久免费: 至Gitee下载 使用教程: Moretl使用说明 使用咨询: 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架…

无人机航测系统技术特点!

一、无人机航测系统的设计逻辑 无人机航测系统的设计逻辑主要围绕实现高效、准确、安全的航空摄影测量展开。其设计目标是通过无人机搭载相机和传感器,利用先进的飞行控制系统和数据处理技术,实现对地表信息的全方位、高精度获取。 需求分析&#xff1…

Java学习笔记(13)——面向对象编程

面向对象基础 目录 面向对象基础 方法重载 练习: 继承 继承树 protected super 阻止继承 向上转型 向下转型 区分继承和组合 练习 小结: 方法重载 如果有一系列方法,功能类似,只是参数有所不同,就可以把…