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

news2025/4/22 6:29:33

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 的读取功能,同时规划他们的写入作以适应他们选择的格式的限制。

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

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

相关文章

tauri加载网页处理点击a链接默认浏览器打开问题

添加click事件,当点击了a标签,就阻止默认事件,然后自己处理,在自己窗口中打开这个页面。将这个js注入到页面中就可以了 const hookClick (e) > {console.log(hookClick, e)e.preventDefault()const origin e.target.closest…

openharmony 软总线-设备发现流程

6.1 设备发现流程 6.1.1 Wi-Fi设备发现 6.1.1.1 Wi-Fi设备发现流程 Wi-Fi设备在出厂状态或者恢复出厂状态下,设备上电默认开启SoftAP模式,SoftAP的工作信道在1,6,11中随机选择,SoftAP的Beacon消息中携带的SSID eleme…

【GoTeams】-4:为项目引入etcd

本文目录 1. 书接上回2. 引入etcddiscoverystruct{}{} resolverserver 3. 将服务注册到etcd中4. 梳理下etcd调用逻辑 1. 书接上回 本节是为项目引入etcd这个环节,然后我们来看看具体该怎么实现。 首先来谈谈为什么要引入服务发现? 动态服务注册与发现…

Jmeter使用介绍

文章目录 前言Jmeter简介安装与配置JDK安装与配置JMeter安装与配置 打开JMeter方式一方式二 设置Jmeter语言为中文方法一(仅一次性)方法二(永久设置成中文) Jmeter文件常用目录 元件与组件元件组件元件的作用域元件的执行顺序第一个案例添加线程组添加 H…

Android Studio 配置国内镜像源

Android Studio版本号:2022.1.1 Patch 2 1、配置gradle国内镜像,用腾讯云 镜像源地址:https\://mirrors.cloud.tencent.com/gradle 2、配置Android SDK国内镜像 地址:Index of /AndroidSDK/

实战案例分享:WLAN TKIP/CCMP加密组件的选择

无线接入点(AP)与终端(STA)在连接过程中涉及多种加密算法,如CCMP、TKIP等,选择合适的加密组件对于保证网络安全和兼容性至关重要。本篇我们将分析Wi-Fi加密机制、Wi-Fi加密组件的选型要点、典型问题及解决方…

解锁STM32外设:开启嵌入式开发新世界

✨✨✨这里是小韩学长yyds的BLOG(喜欢作者的点个关注吧) ✨✨✨想要了解更多内容可以访问我的主页 小韩学长yyds-CSDN博客 目录 探索 STM32 强大的外设家族 初窥门径:STM32 外设开发基础 开发方式与工具 外设配置基础步骤 深入剖析:常见外设应用实例…

docker学习笔记(1)从安装docker到使用Portainer部署容器

docker学习笔记第一课 先交代背景 docker宿主机系统:阿里云ubuntu22.04 开发机系统:win11 docker镜像仓库:阿里云,此阿里云与宿主机系统没有关系,是阿里云提供的一个免费的docker仓库 代码托管平台:github&…

基于Spring Boot的健美操评分管理系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

【Linux】——初识操作系统

文章目录 冯-诺依曼体系结构操作系统shell 冯-诺依曼体系结构 我们现在所使用的计算机就是冯-诺依曼体系结构。 存储器就是内存。 由下图可知,寄存器最快,为啥不用寄存器呢? 因为越快价格就最贵,冯诺依曼体系结构的诞生&#xf…

PromQL计算gateway指标增量最佳实践及常见问题答疑

普米官方网站 普米官方帮助:Getting started | Prometheus 普米下载地址:Download | Prometheus 普米查询语法:Querying basics | Prometheus 普米函数参考:Query functions | Prometheus promql计算增量 在PromQL&#xff…

vue使用slot时子组件的onUpdated执行问题

vue使用slot时子组件的onUpdated执行问题 在使用 Vue 的插槽 (slot) 功能时,可能会遇到一个问题:当父组件的任何状态更新时,子组件的 onUpdated 事件会被触发。这个问题在使用默认插槽时尤为明显。 为了避免这种情况,可以使用作用…

从零到多页复用:我的WPF MVVM国际化实践

文章目录 第一步:基础实现,资源文件入门第二步:依赖属性,提升WPF体验第三步:多页面复用,减少重复代码第四步:动态化,应对更多字符串总结与反思 作为一名WPF开发者,我最近…

LeetCode 解题思路 12(Hot 100)

解题思路: 定义三个指针: prev(前驱节点)、current(当前节点)、nextNode(临时保存下一个节点)遍历链表: 每次将 current.next 指向 prev,移动指针直到 curre…

HTML-05NPM使用踩坑

2025-03-04-NPM使用踩坑 本文讲述了一个苦逼程序员在使用NPM的时候突然来了一记nmp login天雷,然后一番折腾之后,终究还是没有解决npm的问题😞😞😞,最终使用cnpm完美解决的故事。 文章目录 2025-03-04-NPM使用踩坑[toc…

学校地摊尝试实验

学校地摊尝试实验 诸位,我要告诉诸位一件大消息,那就是,我将会利用学校时光的最后一段时间进行疯狂摆摊练习,如何进行摆摊,大家 听我娓娓道来。我要确定摆摊的目的, 第一,赚钱,第二…

MHA集群

一.MHA集群 MHA master high avavibility 主服务器高可用 如上图所示,我们之前说过,如果在主从复制架构中主服务器出现故障,就需要我们将从服务器作为主服务器,等故障的主服务器修复好之后,再将修好的主服务器作为从服…

Bazel搭建CUDA工程入门

环境版本: 工程目录: 测试输出: WORKSPACE 参考仓库:CUDA rules for Bazel 及 examples load("bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")http_archive(name "rules_cuda…

QILSTE灯珠:尺寸光电全解析

QILSTE灯珠:尺寸光电全解析 🌟 型号H4-115BGRYA/5M,由QILSTE(HongKong)Technology Co., Ltd精心打造,以其1.6x1.5x0.4mm的紧凑外观尺寸,展现高亮红光、翠绿、蓝的缤纷色彩。 📏 尺寸…

golang从入门到做牛马:第一篇-我与golang的缘分,go语言简介

还记得2018年的夏天,刚毕业的我不知道该做些什么,于是自学了一周的go语言,想要找一份go语言工作的代码,当时的go还没有go mod来管理依赖包,在北京找了一个月的工作,找到了一个小公司做了后端开发,当然使用go语言开发,带着兴奋劲,年轻身体也好,边努力学习,边工作。 时…