Arctic——流式湖仓系统

news2025/8/12 3:59:20

1、Arctic介绍

Arctic 是由网易开源的流式湖仓系统,Arctic 在 Iceberg 和 Hive 之上添加了更多实时场景的能力,并且面向 DataOps 提供流批统一,开箱即用的元数据服务,让数据湖更加好用和实用。

Arctic 是搭建在 Apache Iceberg 表格式之上的流式湖仓服务(Streaming LakeHouse Service)。通过 Arctic,用户可以在 Flink、Spark、Trino 等引擎上实现更加优化的 CDC,流式更新,OLAP 等功能, 结合数据湖高效的离线处理能力,Arctic 能够服务于更多流批混用的场景;同时,Arctic 的结构自优化、并发冲突解决以及标准化的湖仓管理功能,可以有效减少用户在数据湖管理和优化上的负担。

Arctic 服务通过部署 AMS 来展现,AMS 可以认为是 HMS(Hive Metastore)的下一代产品,或者是面向 Iceberg 的 HMS。 Arctic 依赖 Iceberg 作为基础表格式,但 Arctic 没有侵入 Iceberg 实现,而是将 Iceberg 作为一个 Lib 使用, 在 Flink、Spark、Trino 等计算引擎来看,Arctic 首先是一个独立数据源,具有流式湖仓的特性, 其次也可以将 Arctic 表当做一个或多个 Iceberg 表来使用,考虑到 Hive 依然有很大的用户体量, Arctic 在设计时考虑了 Hive 的兼容性。Arctic 开放的叠加式架构,可以帮助已具规模的离线数据湖快速批量升级为实时数据湖, 而不用担心和原有数据湖的兼容性问题,让数据湖满足更多实时分析,实时风控,实时训练,特征工程等场景。

2、Arctic特性

  • 基于主键高效地流式更新

  • 数据自动分桶,结构自优化(self-optimized)

  • 支持将数据湖和消息队列封装成统一的表,实现更低延迟的流批一体

  • 提供流式数仓标准化的度量,dashboard 和相关管理工具

  • 支持 Spark 和 Flink 读写数据,支持 Trino/Impala 查询数据

  • 百分百兼容 Iceberg / Hive 的表格式和语法

  • 解决并发写入冲突,实现事务一致性语义

3、Arctic架构图

AMS

Arctic Meta Service,在 Arctic 架构中,AMS 定义为新一代 HMS,AMS 管理 Arctic 所有 schema,向计算引擎提供元数据服务和事务 API,以及负责触发后台结构优化任务。

Transaction

Arctic 将一次数据提交定义为事务,并且保障流和批并发写入下的事务一致性语义,与 Iceberg 提供的 ACID 不同,Arctic 因为支持 CDC 摄取和流式更新,需要保障基于主键的数据一致性。

Tablestore

Tablestore 是 Arctic 在数据湖上存储的表格式实体,Tablestore 类似于数据库中的 cluster index,代表独立的存储结构,一个 Tablestore 是一张 Iceberg 表,数据流式写入和批式写入会分别进入 Arctic 的 Changestore 和 Basestore,在查询时 Arctic 会在多个 Tablestore 上提供整合的视图,后续在 Arctic 上扩展 sort key 或 aggregate key 也将通过扩展 Tablestore 来实现。

Optimizing

Arctic 作为流式湖仓服务,会在后台持续进行文件结构优化操作,并致力于这些优化任务的可视化和可测量,优化操作包括但不限于小文件合并,数据分区,数据在 Tablestore 之间的合并转化。

  • Optimizing planner 决定了优化任务的调度策略,Arctic 支持在表属性中设置 quota,以此影响 Optimizing planner 在单表结构优化占用的资源。

  • Optimizer container 是 optimizing 任务调度的容器,目前支持两种调度:standalone 和 yarn,standalone 在 AMS 本地调度,适合测试,arctic 支持用户扩展 optimizer container 实现。

  • Optimizer group 用于资源隔离,optimizing container 下可以设置一个或多个 optimizer group,也可以通过 optimizer group 保障优先级,在 yarn 上 optimizer container 对应队列。

4、参考资料

[1]Arctic文档地址:Arctic

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

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

相关文章

详解MybatisPlus数据安全

MybatisPlus数据安全 概述 ​ 存在数据库中的数据对于普通用户而言是不可见的,好像是藏起来了一样,但对于开发者,只要知道数据库的连接地址、用户名、密码,则数据不再安全;这也意味着,一旦连接数据库的配…

卡塔尔世界杯倒计时!世界杯直播在哪里观看?美家市场汇总来了!

来了来了,2022卡塔尔世界杯倒计时3天!2022卡塔尔世界杯将在北京时间11月21日开始,持续时间28天,至2022年12月18日结束,将近一个月的赛程让众多球迷们期待不已,这一个月将是全世界球迷们最快乐的一个月&…

【网站架构】如何长久运行升级?高可用部署只是基础,巡检、监控、应用数据备份、日志、灰度发布

大家好,欢迎来到停止重构的频道。本期讨论大型网站的可用性。 高可用指的是当一部分服务器宕机时,网站系统仍可正常运行。 一些常用的软件服务的高可用部署方案 ,如Tomcat、Nginx、Redis、MySQL等,在往期性能调优时已经有详细的介…

H5组件Canvas画电子印章

效果图 代码 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>HTML5 Canvas印章</title> <script type"text/javascript" src"https://code.jquery.com/jquery-2.2.4.js"></scri…

电科大离散数学-4-二元关系

目录 4.1 序偶和笛卡尔积 4.1.1 有序组的定义 4.1.2 笛卡儿积 4.1.3 笛卡儿积的性质 4.1.4 推广 4.2 关系的定义 4.2.1 二元关系的定义 4.2.2 二元关系的数学符号 4.2.3 枚举二元关系 4.2.4 几种重要关系 4.2.5 定义域和值域 4.2.6 n元关系 4.3 关系的表示 4.3.1…

[附源码]SSM计算机毕业设计中小型艺术培训机构管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

List<Map<String, Object>>,Map<String,List<Map<String, Object>>>多方式循环遍历

多方式循环遍历1. List<Map<String, Object>>多方式循环测试结果2. Map&#xff1c;String,List&#xff1c;Map&#xff1c;String, Object&#xff1e;&#xff1e;&#xff1e;测试结果☀️相关笔记章节&#xff1a; &#x1f339;java 1.8 stream使用总结&…

MySQL8.0优化 - 优化MySQL服务器、优化MySQL的参数、优化数据类型

文章目录学习资料优化MySQL服务器优化服务器硬件配置较大的内存配置高速磁盘系统合理分布磁盘I/O配置多处理器优化MySQL的参数innodb_buffer_pool_sizekey_buffer_sizetable_cachequery_cache_sizequery_cache_typesort_buffer_sizejoin_buffer_sizeread_buffer_sizeinnodb_flu…

RabbitMQ初步到精通-第四章-RabbitMQ工作模式-SIMPLE

RabbitMQ工作模式-SIMPLE模式 1.模式介绍 这是最简单的一个模式了&#xff0c;一般在实际的生产环境中&#xff0c;大家应该都不会使用一个消费者。只做入门的介绍。 一个生产者&#xff0c;一个默认的交换机【图中没体现】&#xff0c;一个队列&#xff0c;一个消费者。 生产…

【Java技术专题】「Java8技术盲区」函数接口字典-看看还有哪些你所不知道函数接口

函数接口的定义 函数式接口(Functional Interface)就是一个有且仅有一个抽象方法&#xff0c;但是可以有多个非抽象方法的接口。 函数接口的特点 函数式接口可以被隐式转换为lambda表达式。 Lambda表达式和方法引用&#xff08;实际上也可认为是Lambda表达式&#xff09;上。 …

子序列宽度之和

目录题目1. 子序列2. 子序列找最大最小值3. 代码题目 一个序列的 宽度 定义为该序列中最大元素和最小元素的差值。 给你一个整数数组 nums &#xff0c;返回 nums 的所有非空 子序列 的 宽度之和 。由于答案可能非常大&#xff0c;请返回对 109 7 取余 后的结果。 子序列 定义…

[附源码]java毕业设计农业种植管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

IDEA中给源码添加自己注释——private-notes插件安装使用

一、前言 我们在空闲之余喜欢研究一些经典框架的源码&#xff0c;发现没办法把自己的注释添加上。 会给出提示&#xff1a;File is read-only 很烦&#xff0c;但是为了安全考虑也是没有办法的&#xff01; 这是一个大佬就写了一个IDEA插件&#xff0c;让我们摆脱了这个烦恼&a…

U2-Net 使用嵌套 U 结构进行更深入的显着目标检测

在给定图像中分割不同的对象一直是计算机视觉领域的一项众所周知的任务。多年来,我们已经看到自编码器到疯狂的深度学习模型(如 Deeplab)被用于语义分割。在所有模型的深海中,仍然有一个名字排在最前面,它就是U-Net。U-Net 于 2018 年发布,此后获得了巨大的普及,并以某种…

Android入门第30天-Android里的Toast的使用

介绍 本篇带来的是&#xff1a; Android用于提示信息的一个控件——Toast(吐司)&#xff01;Toast是一种很方便的消息提示框,会在 屏幕中显示一个消息提示框,没任何按钮,也不会获得焦点一段时间过后自动消失&#xff01; 非常常用&#xff01;我们通过一个例子把Toast的使用讲…

【重识云原生】第六章容器基础6.4.9.6节——Service 与 Pod 的DNS

1 Service 与 Pod 的 DNS Kubernetes 为 Service 和 Pod 创建 DNS 记录。 你可以使用一致的 DNS 名称而非 IP 地址访问 Service。 Kubernetes DNS 除了在集群上调度 DNS Pod 和 Service&#xff0c; 还配置 kubelet 以告知各个容器使用 DNS Service 的 IP 来解析 DNS 名称。 集…

bcn_timout,ap_probe_send_start

ESP32 使用 beacon 超时机制检测 AP 是否活跃。如果 station 在 inactive 时间内未收到所连接 AP 的 beacon&#xff0c;将发生 beacon 超时。inactive 时间通过调用函数 esp_wifi_set_inactive_time() 设置。 beacon 超时发生后&#xff0c;station 将向 AP 发送 5 个 probe …

智芯传感MEMS压力传感器促进无人机跨入极其广阔的应用市场

2022年11月8日至13日&#xff0c;第十四届中国国际航空航天博览会在广东珠海国际航展中心举办。伴随着人工智能技术的进步&#xff0c;全球无人化装备的发展如火如荼。各式各样的无人机在无人化装备中可谓是一枝独秀&#xff0c;广受外界的高度关注。 据美国《Aviation Week&am…

【元宇宙欧米说】从GameFi的视角讨论Web2到Web3的利弊

什么将会是Web3生态赛道发展的未来&#xff1f;争议很大的GameFi如何建立高价值的商业生态&#xff1f; 11月23日下午三点&#xff0c;IDV合作经理Chillax将以“从GameFi视角讨论Web2到Web3的利弊”为题&#xff0c;与大家共同探讨Web3时代的到来如何影响GameFi的发展。 Bloc…

web自动化测试入门篇03——selenium使用教程

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…