Apache XTable:在数据湖仓一体中推进数据互作性

Apache XTable 通过以多种开放表格式提供对数据的访问,在增强互作性方面迈出了一大步。移动数据很困难,在过去,这意味着在为数据湖仓一体选择开放表格式时,您被锁定在该选择中。一个令人兴奋的项目当在数据堆栈的这一层引入互作性时,它有效地将查询引擎商品化,降低了价格,并迫使查询引擎本身通过高级功能、优化的查询性能和其他超出简单数据访问的增值功能来区分其产品,以使用户受益。 最终促进分析生态系统中的创新和竞争。

什么是 Apache XTable?

Apache XTable 是一个开源元数据转换器,可简化开放表格式(Apache Iceberg、Apache Hudi 和 Delta Lake)之间的互作性。XTable 允许您跨多种表类型进行读取和写入,而不是复制数据或被锁定为一种格式。它轻量级、高效,非常适合格式灵活性很重要的灵活数据架构。

它是如何工作的?

XTable 允许您在打开的表格格式之间切换,而无需移动或重写数据。它的工作原理是读取表的现有元数据并以正确的格式写出新元数据,因此您的数据看起来就像最初是用 Delta、Hudi 或 Iceberg 编写的一样。元数据存储在每种格式所需的位置:delta_log 表示 Delta,metadata/ 表示 Iceberg,.hoodie/ 表示 Hudi。从那里,您选择的 compute 可以使用您选择的元数据读取数据。

Apache XTable 的体系结构包括 3 个主要组件:

源读取器: 此模块负责从源表格式读取元数据。它提取基本信息,例如架构定义、事务历史记录和分区详细信息,并将它们转换为统一的内部表示形式。

核心逻辑:作为中央处理单元,核心逻辑协调整个翻译过程。它管理组件的初始化,监督状态管理,并处理缓存以提高效率和增量处理等任务。

目标作家:该模块从核心逻辑中获取统一的内部表示,并将其准确映射到目标表格式的元数据结构,确保一致性和兼容性。

使用案例

我们已经向您展示了如何从 Hadoop 迁移到 MinIO,而无需完全淘汰和替换。来自 Hadoop 生态系统的出色软件,包括 HMS 和 Hudi。我们的迁移模板允许您保留 HMS,同时放弃 Haddop 以支持 MinIO 进行存储。这是可能的,因为 HMS 有一个 S3 连接器。从这一点来看,组织可以使用 HMS、Hudi 和 MinIO 构建数据湖仓一体。从那里,他们无需迁移数据即可探索其他计算引擎,例如 Dremio 和 Snowflake,这些引擎使用 XTable 在 Iceberg Tables 上运行。

对于许多仍在运行的遗留系统来说,这可能是一条实现现代化的途径。有很多可能性,但也有一些限制。

限制

在此阶段,XTable 主要支持表的写入时复制 (CoW) 和读取优化视图。这意味着,虽然基础 Parquet 文件已同步,但不会捕获某些动态方面。

哪些内容未同步?

  • Hudi 日志文件:对于使用 Apache Hudi 的读取时合并 (MOR) 表的用户,XTable 当前不会同步存储增量数据的日志文件。在使用 MoR 的情况下,这种遗漏可能导致数据表示不完整。

  • Delta 和 Iceberg 删除向量:在 Delta Lake 和 Apache Iceberg 等格式中,删除向量在标记要删除的记录而不实际删除记录方面起着至关重要的作用。目前,XTable 不会捕获这些删除向量,这可能会导致同步后反映过时或不正确的数据。

由于这些限制,Hudi、Delta Lake 或 Iceberg 中的上述机制跟踪的任何更新或删除都不会反映在同步数据中。这可能会给依赖最新数据集状态的工作流带来挑战,尤其是在数据经常更新或删除的环境中。

前方的道路

尽管目前存在写入限制,但 Apache XTable 代表了现代数据堆栈发展的重要一步。看看这个令人兴奋的项目的下一步会很有趣。目前,组织应该战略性地利用 XTable 的读取功能,同时规划他们的写入作以适应他们选择的格式的限制。

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

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

相关文章

hive面试题--left join的坑

student 表&#xff1a; 课程表course: 1、key为null, 不关联 select * from student s left join course c on s.id c.s_id;2、on中过滤条件 与 where 过滤条件区别 on and c.id<>‘1001’ 先过滤右表数据&#xff0c;然后与左表关联 select * from student s le…

2路模拟量同步输出卡、任意波形发生器卡—PCIe9100数据采集卡

品牌&#xff1a;阿尔泰科技 型号&#xff1a; PCIe9100、PCIe9101、PXIe9100、PXIe9101 产品系列&#xff1a;任意波形发生器 支持操作系统&#xff1a;XP、Win7、Win8、Win10 简要介绍&#xff1a; 910X 系列是阿尔泰科技公司推出的 PCIe、PXIe 总线的任意波形发生器&…

elementUI改样式失败问题——DatePicker 日期选择器

今天做一个vue2的项目时&#xff0c;发现使用deep对时间选择器的选择控件不生效&#xff0c;因为elementUI官方文档里写了&#xff1a; popper-classDatePicker 下拉框的类名 并且通过浏览器可以发现&#xff0c;选择控件是直接挂在body下的&#xff0c;所以解决方法是直接找到…

C++ 链表List使用与实现:拷贝交换与高效迭代器细致讲解

目录 list的使用&#xff1a; 构造与赋值 元素访问 修改操作 容量查询 链表特有操作 拼接&#xff08;Splice&#xff09; C11 新增方法 注意&#xff1a; stl_list的模拟实现&#xff1a; 一、链表节点设计的艺术 1.1 结构体 vs 类的选择 二、迭代器实现的精髓 2…

【C++】C++入门基础

C&#xff08;C plus plus&#xff09; 是一种计算机高级程序设计语言&#xff0c;既可以进行 C语言 的过程化程序设计&#xff0c;又可以进行以抽象数据类型为特点的基于对象的程序设计&#xff0c;还可以进行以继承和多态为特点的面向对象的程序设计。 文章目录 前言一、C 的…

探索AI对冲基金:开源自动化交易系统的革新之路

在量化交易领域,人工智能技术的应用正悄然改变传统对冲基金的运作模式。GitHub上的开源项目ai-hedge-fund为开发者和金融从业者提供了一个独特的实践平台。该项目通过多智能体系统架构,整合市场数据分析、量化策略生成、风险管理和投资组合优化等核心功能,实现了从数据采集到…

C语言每日一练——day_3(快速上手C语言)

引言 针对初学者&#xff0c;每日练习几个题&#xff0c;快速上手C语言。第三天。&#xff08;会连续更新&#xff09; 采用在线OJ的形式 什么是在线OJ&#xff1f; 在线判题系统&#xff08;英语&#xff1a;Online Judge&#xff0c;缩写OJ&#xff09;是一种在编程竞赛中用…

SpringCloud系列教程(十三):Sentinel流量控制

SpringCloud中的注册、发现、网关、服务调用都已经完成了&#xff0c;现在就剩下最后一部分&#xff0c;就是关于网络控制。SpringCloud Alibaba这一套中间件做的非常好&#xff0c;把平时常用的功能都集成进来了&#xff0c;而且非常简单高效。我们下一步就完成最后一块拼图Se…

VMware安装欧拉操作系统(openEuler)第二节

摘要&#xff1a; 本篇文章接上篇《VMware安装欧拉操作系统&#xff08;openEuler&#xff09;第一节》&#xff0c;上一篇写到vmware workstation 17中创建openEuler虚拟机&#xff0c;本篇将详细介绍openEuler操作系统初始化以及相关配置的详细内容。 VMware安装欧拉操作系统…

[数据结构]并查集--C++版本的实现代码

目录 并查集的基本框架 查找一个元素在哪一个集合 判断两个元素是否在同一个集合 将两个集合进行合并 查询有多少组 测试 大学班级的同学会来自于五湖四海&#xff0c;每个人的家乡可能都不相同&#xff0c;那么如何将相同省份的同学连接到一块&#xff0c;也就是按省份进…

基于SpringBoot+Vue的瑜伽课体验课预约系统【附源码】

基于SpringBootVue的瑜伽课体验课预约系统 一、系统技术说明二、运行说明三、系统的演示四、系统的核心代码演示 一、系统技术说明 框架&#xff1a;SpringbootVue 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软…

【编译器】VSCODE烧录ESP32-C3——xiaozhi智能聊天机器人固件

【编译器】VSCODE烧录ESP32-C3——xiaozhi智能聊天机器人固件 文章目录 [TOC](文章目录) 前言一、方法一&#xff1a;使用固件烧录工具1. 安装CH340驱动2. 打开FLASH_DOWNLOAD文件3. 选择芯片类型和烧录方式4. 选择烧录文件5. 参数配置 二、方法二&#xff1a;VSCODE导入工程1.…

【C++】 —— 笔试刷题day_1

为了锻炼自己写代码的思路&#xff0c;开始每日刷题&#xff0c;加油&#xff01;&#xff01;&#xff01; 第一题 数字统计 题目要求&#xff1a; ​ 给定一个范围 [L , R] 求出数字L在该区间内出现的次数。&#xff08;其中1<L<R<10000&#xff09; 算法思路&…

R语言和RStudio安装

整体还是比较简单的&#xff0c;主要是记录个流程。 官方镜像站列表R语言官网 1 安装R&#xff08;2025/3/6&#xff09; R语言官网&#xff1a;The R Project for Statistical Computing 打开之后就Hello world一下吧 配置环境变量 2 安装RStudio 下载地址&#xff1a;htt…

计算机视觉应用|自动驾驶的感知革命:多传感器融合架构的技术演进与落地实践

一、引言 自动驾驶的终极目标是实现比人类驾驶更安全、更高效的交通系统。其核心挑战在于如何让机器像人类一样感知和理解复杂环境。然而&#xff0c;人类驾驶员依赖视觉、听觉和触觉的多模态信息&#xff0c;而自动驾驶系统则需要通过传感器和算法模拟这一过程。当前&#xf…

高效自动化测试:打造Python+Requests+Pytest+Allure+YAML的接口测试框架

一、背景 在快节奏的开发周期中&#xff0c;如何确保接口质量&#xff1f;自动化测试是关键。通过构建标准化、可复用的测试框架&#xff0c;能显著提升测试效率与准确性&#xff0c;为项目质量保驾护航[1][7]。 二、目标 ✅ 核心目标&#xff1a; ● 实现快速、高效的接口测试…

速算迷你世界脚本UI

--[[ --数学速算主界面 local UI"6996144362677448610" local v"6996144362677448610_" --自定义玩家数据界面 --显示界面分类 -- --称号积分幼儿园0学前班50小学生200初中生500高中生1000大学生2000研究生5000博士生10000教授50000 local A {["主屏幕…

『PostgreSQL』 Ubuntu 系统下PG15的安装与 PGVector 配置指南

&#x1f4e3;读完这篇文章里你能收获到 &#x1f4e6; 学会如何在 Ubuntu 上安装最新的 PostgreSQL 15 数据库。&#x1f511; 掌握修改 PostgreSQL 管理员密码和配置远程连接的方法。&#x1f310; 了解如何启用 PGVector 插件&#xff0c;实现向量存储和多种距离计算。&…

关于在electron(Nodejs)中使用 Napi 的简单记录

当我们使用electron想要集成一个C SDK实现很底层的算法逻辑就有可能与C SDK进行数据通信。 Napi 应该是比较好的选择&#xff0c;因为C本身的运行速度很快&#xff0c;使用Napi也能很大程度上保证软件的兼容性、又不会阻塞C线程、还可以很简单的与C 实现数据传递。 开始使用 安…

vscode(cursor)配置python环境,含远程调试

一、本地配置 1.1 安装python插件 1.2 配置python环境 在右下角就可以切换python环境&#xff0c;太简单了&#xff01; 1.3 Debug说明 打断点直接开启&#xff01; 在debug的过程中&#xff0c;还可以输入打印中间变量或者做一些测试 二、远程连接 2.1 下载远程工具 2.2 连…