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

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

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

相关文章

anolis8.9-k8s1.32-node-二进制部署

一、系统 # cat /etc/anolis-release Anolis OS release 8.9 # uname -r 5.10.134-18.an8.x86_64 二、从master上拷贝dockers及cri-docker相关文件 # groupadd docker # mkdir /etc/docker# scp -P 4033 root192.168.7.201:/etc/systemd/system/containerd.service /etc/s…

《AJAX:前端异步交互的魔法指南》

什么是AJAX AJAX(Asynchronous JavaScript and XML,异步 JavaScript 和 XML) 是一种用于创建异步网页应用的技术,允许网页在不重新加载整个页面的情况下,与服务器交换数据并局部更新页面内容。尽管名称中包含 XML&…

Python 性能优化:从入门到精通的实用指南

Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…

利用 requestrepo 工具验证 XML外部实体注入漏洞

1. 前言 在数字化浪潮席卷的当下,网络安全的重要性愈发凸显。应用程序在便捷生活与工作的同时,也可能暗藏安全风险。XXE(XML外部实体)漏洞作为其中的典型代表,攻击者一旦利用它,便能窃取敏感信息、掌控服务…

FreeRTOS第17篇:FreeRTOS链表实现细节05_MiniListItem_t:FreeRTOS内存优化

文/指尖动听知识库-星愿 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:深入FreeRTOS内核:从原理到实战的嵌入式开发指南 1 为什么需要迷你列表项? 在嵌入式系统中,内存资源极其宝贵。FreeRTOS为满足不同场景需求,设计了标准列表项(ListItem_…

Spring 无法解决循环依赖的 5 种场景

一、构造器注入引发的循环依赖 1. 问题复现 Component public class ServiceA {private final ServiceB serviceB;Autowiredpublic ServiceA(ServiceB serviceB) { // 构造器注入this.serviceB serviceB;} }Component public class ServiceB {private final ServiceA servic…

Core Vision Kit(基础视觉服务)

文章目录 一、Core Vision Kit简介场景介绍约束与限制二、通用文字识别三、人脸检测一、Core Vision Kit简介 Core Vision Kit(基础视觉服务)是机器视觉相关的基础能力,例如通用文字识别(即OCR,Optical Character Recognition,也称为光学字符识别)、人脸检测、人脸比对…

第TR3周:Pytorch复现Transformer

🍨 本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 Transformer通过自注意力机制,改变了序列建模的方式,成为AI领域的基础架构 编码器:理解输入,提取上下文特征…

FreeRTOS 任务间通信机制:队列、信号量、事件标志组详解与实验

1. FreeRTOS 消息队列 1.1 简介 ​ 队列是 任务间通信的主要形式,可用于在任务之间以及中断与任务之间传递消息。队列在 FreeRTOS 中具有以下关键特点: 队列默认采用 先进先出 FIFO 方式,也可以使用 xQueueSendToFront()实现 LIFO。FreeRT…

【虚拟化】Docker Desktop 架构简介

在阅读前您需要了解 docker 架构:Docker architecture WSL 技术:什么是 WSL 2 1.Hyper-V backend 我们知道,Docker Desktop 最开始的架构的后端是采用的 Hyper-V。 Docker daemon (dockerd) 运行在一个 Linux distro (LinuxKit build) 中&…

Unity光照之Halo组件

简介 Halo 组件 是一种用于在游戏中创建光晕效果的工具,主要用于模拟光源周围的发光区域(如太阳、灯泡等)或物体表面的光线反射扩散效果。 核心功能 1.光晕生成 Halo 组件会在光源或物体的周围生成一个圆形光晕,模拟光线在空气…

Flink深入浅出之01:应用场景、基本架构、部署模式

Flink 1️⃣ 一 、知识要点 📖 1. Flink简介 Apache Flink — Stateful Computations over Data StreamsApache Flink 是一个分布式大数据处理引擎,可对有界数据流和无界数据流进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以…

2025年【高压电工】报名考试及高压电工考试总结

随着电力行业的快速发展,高压电工成为确保电力系统安全稳定运行的重要一环。为了提高高压电工的专业技能和安全意识,“安全生产模拟考试一点通”平台特别整理了2025年高压电工报名考试的相关信息及考试总结,并提供了一套完整的题库&#xff0…

网络HTTP

HTTP Network Request Library A Retrofit-based HTTP network request encapsulation library that provides simple and easy-to-use API interfaces with complete network request functionality. 基于Retrofit的HTTP网络请求封装库,提供简单易用的API接口和完…

os-copilot安装和使用体验测评

简介: OS Copilot是阿里云基于大模型构建的Linux系统智能助手,支持自然语言问答、命令执行和系统运维调优。本文介绍其产品优势、功能及使用方法,并分享个人开发者在云服务器资源管理中的实际应用体验。通过-t/-f/管道功能,OS Cop…

Python Flask框架学习汇编

1、入门级: 《Python Flask Web 框架入门》 这篇博文条理清晰,由简入繁,案例丰富,分十五节详细讲解了Flask框架,强烈推荐! 《python的简单web框架flask【附例子】》 讲解的特别清楚,每一步都…

【HarmonyOS Next之旅】DevEco Studio使用指南(一)

目录 1 -> 工具简介 1.1 -> 概述 1.2 -> HarmonyOS应用/服务开发流程 1.2.1 -> 开发准备 1.2.2 -> 开发应用/服务 1.2.3 -> 运行、调试和测试应用/服务 1.2.4 -> 发布应用/服务 2 -> 工程介绍 2.1 -> APP包结构 2.2 -> 切换工程视图 …

Manus开源平替-开源通用智能体

原文链接:https://i68.ltd/notes/posts/250306-opensource-agi-agent/ OWL-比Manus还强的全能开源Agent OWL: Optimized Workforce Learning for General Multi-Agent Assistance in Real-World Task Automation,现实世界中执行自动化任务的通用多代理辅助优化学习…

【3.2-3.8学习周报】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 摘要Abstract一、方法介绍1.任务适应性持续预训练(TACP)2.领域自适应连续预训练(DACP)3.ETS-DACP和ETA-DACP 二、实验…

【Linux】用户和组

思考 使用useradd在Linux下面创建一个用户,默认情况下,会自动创建一个同名组,并且加入其中,那么是先创建用户呢?还是先创建组呢? 很简单,我们实践一下不就知道了,如下所示&#xff…