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

超越共享存储:使用 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 文档”。感谢阅读!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Upload-labs 靶场(通关攻略)

WebShell 一句话木马: <?php eval($_POST[a])?> <?php system($_POST[a])?> 第一关&#xff08;删除前端js校验&#xff09; 删除return checkFile() 就能上传成功 第二关(抓包文件类型校验) BP抓包修改后缀 改为2.php后放行 第三关(上传php同种类型的不…

Linux —— 管理进程

一、查看进程 运行态&#xff08;Running&#xff09; 定义&#xff1a;处于运行态的进程正在 CPU 上执行指令。在单 CPU 系统中&#xff0c;同一时刻只有一个进程处于运行态&#xff1b;在多 CPU 或多核系统中&#xff0c;可能有多个进程同时处于运行态。示例&#xff1a; 当…

Linux脚本语言学习--下

4.Bash的变量 4.1.用户自定义变量 4.1.1.什么是变量 变量是计算机内存的单元&#xff0c;其中存放的值可以改变。当Shell脚本需要保存一些信息的时候&#xff0c;如一个文件名或是一个数字&#xff0c;就把他存放在一个变量中。每个变量有一个名字&#xff0c;所以很容易引用…

武汉市电子信息与通信工程职称公示了

2024年武汉市电子信息与通信工程专业职称公示了&#xff0c;本次公示通过人员有109人。 基本这已经是今年武汉市工程相关职称最后公示了&#xff0c;等待出证即可。 为什么有人好奇&#xff0c;一样的资料&#xff0c;都是业绩、论文等&#xff0c;有的人可以过&#xff0c;有的…

ModelScope-Agent(3):docker启动

目录 前两篇并没有使用到docker,但我看项目中是有docker配置的&#xff0c;不过没有在教程中写出来。学习了ragflow的docker配置流程之后&#xff0c;试一下modelscope-agent的配置。 先创建model-scope的cuda环境 conda create --name modelscope-agent python3.10 conda acti…

如何高效获取Twitter数据:Apify平台上的推特数据采集解决方案

引言 在数据分析和市场研究领域&#xff0c;Twitter&#xff08;现在的X&#xff09;数据一直是重要的信息来源。但是&#xff0c;自从Twitter更改API定价策略后&#xff0c;获取数据的成本大幅提升。本文将介绍一个经济实惠的替代方案。 为什么需要Twitter数据&#xff1f; …

MySql 中的解决某列中多个字段查询是否存在指定某个值, FIND_IN_SET 用法。

简言&#xff1a;今天公司数据库里面有个列是多个数据拼接而成的比如&#xff1a;**“,131113,749932833,749932825,749932826,749932827,749932828,749932829,”**想要通过sql 查找749932833值的列&#xff0c;很多同学第一想到的就是like 模糊匹配&#xff0c;模糊匹配不能保…

go引用包生成不了vendor的问题

比如我要引入github.com/jinzhu/gorm这个包. 1. 首先获取包 go get github.com/jinzhu/gorm 这时go.mod文件中也有这个包依赖信息了. 2. 然后构建vendor go mod vendor 结果发现vendor目录下没有生成对应的包, 而且modules.txt也注释掉这个包了. 原因是没有其进行引用, go…

基于 SSM 框架 Vue 电脑测评系统:引领电脑评测新方向

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

知识分享第三十天-力扣343.(整数拆分)

343 整数拆分 给定一个正整数 n&#xff0c;将其拆分为至少两个正整数的和&#xff0c;并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2 输出: 1 解释: 2 1 1, 1 1 1。 示例 2: 输入: 10 输出: 36 解释: 10 3 3 4, 3 3 4 36。 说明: 你可…

Nginx常用配置详解(1)

Nginx常用配置详解 一、全局块&#xff08;main&#xff09;配置 在Nginx的配置文件中&#xff0c;最外层的部分是全局块。这部分配置通常会影响Nginx服务器整体的运行参数。 worker_processes 作用&#xff1a;这个配置指令用于指定Nginx工作进程的数量。工作进程是Nginx处理…

力扣2300.咒语和药水的成功对数(二分法)

根据 灵茶山艾府 题解所写 题目描述&#xff1a; 给你两个正整数数组 spells 和 potions &#xff0c;长度分别为 n 和 m &#xff0c;其中 spells[i] 表示第 i 个咒语的能量强度&#xff0c;potions[j] 表示第 j 瓶药水的能量强度。 同时给你一个整数 success 。一个咒语和药…

电商大数据的几种获取渠道分享!

在当今数字化时代&#xff0c;电商大数据已成为企业决策和运营的重要基础。如何高效地获取、分析和利用这些数据&#xff0c;对于提升电商企业的竞争力至关重要。本文将详细介绍几种电商大数据的获取渠道&#xff0c;帮助电商从业者更好地掌握数据资源&#xff0c;提升业务洞察…

CQRS Design Pattern in Microservices - CQRS模式

原文链接 CQRS Design Pattern in Microservices - GeeksforGeeks 【文章看起来像是AI写的。。。 &#x1f602;&#x1f602;&#x1f602;】 简介 实现步骤 1&#xff0c;识别有界上下文&#xff1a;&#xff08;Identify Bounded Contexts:&#xff09; 2&#xff0c;命…

c语言----选择结构

基本概念 选择结构是C语言中用于根据条件判断来执行不同代码块的结构。它允许程序在不同的条件下执行不同的操作&#xff0c;使程序具有决策能力。 if语句 单分支if语句 语法格式&#xff1a; if (条件表达式) { 执行语句块; } 功能&#xff1a; 当条件表达式的值为真&#…

RK3588 , mpp硬编码rgb, 保存MP4视频文件.

RK3588 , mpp硬编码yuv, 保存MP4视频文件. ⚡️ 传送 ➡️ RK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGBRk3588 FFmpeg 拉流 RTSP, 硬解码转RGBUbuntu x64 架构, 交叉编译aarch64 FFmpeg mppCode Init MppMPP_RET init_mpp

uniapp blob格式转换为video .mp4文件使用ffmpeg工具

前言 介绍一下这三种对象使用场景 您前端一旦涉及到文件或图片上传Q到服务器&#xff0c;就势必离不了 Blob/File /base64 三种主流的类型它们之间 互转 也成了常态 Blob - FileBlob -Base64Base64 - BlobFile-Base64Base64 _ File uniapp 上传文件 现在已获取到了blob格式的…

【Linux运维】配置ssh免密登录

1.场景描述 内网环境&#xff0c;需要同步17服务器的文件到10服务器进行备份。因为每次输入密码比较繁琐&#xff0c;如果实现免密登录后&#xff0c;即可简化脚本。 要求&#xff1a;需要2台服务器-免密登录 2.方案分析 &#xff08;1&#xff09;现状&#xff1a;登录需要输…

使用Python从阿里云物联网平台获取STM32温度数据

在物联网&#xff08;IoT&#xff09;应用中&#xff0c;设备数据的采集与监控至关重要。本文将详细介绍如何使用Python从阿里云物联网平台获取STM32设备的温度数据。我们将从已有的Java代码出发&#xff0c;逐步将其转换为Python&#xff0c;并处理在过程中遇到的问题&#xf…

职场上,如何做好自我保护?

今天我们讨论一个话题&#xff1a;在职场上&#xff0c;如何保护好自己&#xff1f;废话不多说&#xff0c;我们直接上干货。 &#xff08;一&#xff09; 1.时刻准备一点零食或代餐&#xff0c;如果遇到长时间的会议&#xff0c;就补充点能量。代餐最好选流体&#xff0c;这…