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 的读取功能,同时规划他们的写入作以适应他们选择的格式的限制。
相关文章:
Apache XTable:在数据湖仓一体中推进数据互作性
Apache XTable 通过以多种开放表格式提供对数据的访问,在增强互作性方面迈出了一大步。移动数据很困难,在过去,这意味着在为数据湖仓一体选择开放表格式时,您被锁定在该选择中。一个令人兴奋的项目当在数据堆栈的这一层引入互作性…...
Java直通车系列14【Spring MVC】(深入学习 Controller 编写)
目录 基本概念 编写 Controller 的步骤和要点 1. 定义 Controller 类 2. 映射请求 3. 处理请求参数 4. 调用业务逻辑 5. 返回响应 场景示例 1. 简单的 Hello World 示例 2. 处理路径变量和请求参数 3. 处理表单提交 4. 处理 JSON 数据 5. 异常处理 基本概念 Cont…...
36-Openwrt wifi命令工具iwconfig、iwinfo、iwpriv、iwlist
增对wifi的调试命令有很多,这边列出我们常用的命令提供参考,方便查看信息定位问题。 1、iwconfig 查看当前 WIFI 的工作信道以及工作带宽模式: root@openwrt:/# iwconfig ra0 ra0 mt7603e ESSID:"openwrt" Mode:Managed Channel:8 Access Point: DC:4B…...
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…...
大白话CSS 优先级计算规则的详细推导与示例
大白话CSS 优先级计算规则的详细推导与示例 答题思路 引入概念:先通俗地解释什么是 CSS 优先级,让读者明白为什么要有优先级规则,即当多个 CSS 样式规则作用于同一个元素时,需要确定哪个规则起作用。介绍优先级的分类࿱…...
【GoTeams】-4:为项目引入etcd
本文目录 1. 书接上回2. 引入etcddiscoverystruct{}{} resolverserver 3. 将服务注册到etcd中4. 梳理下etcd调用逻辑 1. 书接上回 本节是为项目引入etcd这个环节,然后我们来看看具体该怎么实现。 首先来谈谈为什么要引入服务发现? 动态服务注册与发现…...
DeepSeek + Kimi:高效制作PPT实战详解
在快节奏的职场环境中,制作高质量的PPT已成为许多人的日常任务。然而,从零开始构思、设计、撰写并优化一份精美的PPT往往耗时费力。幸运的是,AI技术的飞速发展为我们提供了全新的解决方案。本文将详细介绍如何利用DeepSeek与Kimi智能助手的高…...
计算机基础:二进制基础06,用八进制来计数
专栏导航 本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。 (一)WIn32 专栏导航 上一篇:计算机基础:二进制基础05,八进制简介 回…...
OSCP最新备考攻略:迎接2024改版后的OSCP+认证
OSCP(Offensive Security Certified Professional)是渗透测试领域一块金字招牌,由Offensive Security打造,因其硬核实战和高门槛备受推崇。2024年11月1日,OSCP迎来了一次重量级改版,推出了OSCP认证…...
Jmeter使用介绍
文章目录 前言Jmeter简介安装与配置JDK安装与配置JMeter安装与配置 打开JMeter方式一方式二 设置Jmeter语言为中文方法一(仅一次性)方法二(永久设置成中文) Jmeter文件常用目录 元件与组件元件组件元件的作用域元件的执行顺序第一个案例添加线程组添加 H…...
hooks useModule自定义hooks (二次封装AgGridReact ag-table)自定义表头,自定义表头搜索
场景业务: 多次运用AgGridReact的table 列表 思路: 运用自定义hooks进行二次封装: 通用配置例如:传参的参数,传参的url,需要缓存的key这些键值类 定制化配置例如:需要对table 的一些定制化传…...
Android Studio 配置国内镜像源
Android Studio版本号:2022.1.1 Patch 2 1、配置gradle国内镜像,用腾讯云 镜像源地址:https\://mirrors.cloud.tencent.com/gradle 2、配置Android SDK国内镜像 地址:Index of /AndroidSDK/...
OFA:通过简单的序列到序列学习框架统一架构、任务和模态
【摘要】 摘要总结 本文介绍了一种新的统一框架OFA(One For All),旨在通过一个简单的序列到序列学习框架来实现跨模态和单模态任务的统一预训练。OFA框架支持任务无关性和模态无关性,并能实现任务全面性。OFA统一了包括图像生成、视觉定位、图像字幕、图像分类、语言建模…...
C++11新特性2.空指针nullptr
目录 一.简介 1.基本概念 2.语法 二.使用示例 示例1:初始化指针 示例2:作为函数参数 三.nullptr与NULL的区别 1.类型安全 2.函数重载问题 3.注意事项 一.简介 1.基本概念 nullptr 是一个类型安全的空指针常量,它的类型是 std::nul…...
实战案例分享:WLAN TKIP/CCMP加密组件的选择
无线接入点(AP)与终端(STA)在连接过程中涉及多种加密算法,如CCMP、TKIP等,选择合适的加密组件对于保证网络安全和兼容性至关重要。本篇我们将分析Wi-Fi加密机制、Wi-Fi加密组件的选型要点、典型问题及解决方…...
Day(19)--IO流(三)
文件加密 ps:^异或: 两边相同就是false 两边不同就是true 如果比较的是数字,那就会把它转换成为二进制,从右自左依次比较 总结:如果一个数字被异或两次,结果还是原来的数字 缓冲流 字节缓冲流 BufferedInputStream------字节缓冲输入流 BufferedOutputStream----字节…...
解锁STM32外设:开启嵌入式开发新世界
✨✨✨这里是小韩学长yyds的BLOG(喜欢作者的点个关注吧) ✨✨✨想要了解更多内容可以访问我的主页 小韩学长yyds-CSDN博客 目录 探索 STM32 强大的外设家族 初窥门径:STM32 外设开发基础 开发方式与工具 外设配置基础步骤 深入剖析:常见外设应用实例…...
SSLScan实战指南:全面检测SSL/TLS安全配置
SSLScan是一款开源的SSL/TLS安全扫描工具,用于检测服务器的加密协议、支持的加密套件、证书信息以及潜在的安全漏洞。本指南将详细介绍如何安装、使用SSLScan,并结合实战案例帮助您全面评估服务器的安全性。 一、SSLScan简介 功能特性: 检测支持的SSL/TLS协议版本(如TLS 1.…...
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 冯-诺依曼体系结构 我们现在所使用的计算机就是冯-诺依曼体系结构。 存储器就是内存。 由下图可知,寄存器最快,为啥不用寄存器呢? 因为越快价格就最贵,冯诺依曼体系结构的诞生…...
PromQL计算gateway指标增量最佳实践及常见问题答疑
普米官方网站 普米官方帮助:Getting started | Prometheus 普米下载地址:Download | Prometheus 普米查询语法:Querying basics | Prometheus 普米函数参考:Query functions | Prometheus promql计算增量 在PromQLÿ…...
vue使用slot时子组件的onUpdated执行问题
vue使用slot时子组件的onUpdated执行问题 在使用 Vue 的插槽 (slot) 功能时,可能会遇到一个问题:当父组件的任何状态更新时,子组件的 onUpdated 事件会被触发。这个问题在使用默认插槽时尤为明显。 为了避免这种情况,可以使用作用…...
从零到多页复用:我的WPF MVVM国际化实践
文章目录 第一步:基础实现,资源文件入门第二步:依赖属性,提升WPF体验第三步:多页面复用,减少重复代码第四步:动态化,应对更多字符串总结与反思 作为一名WPF开发者,我最近…...
C++11新特性 3.constexpr
目录 一.简介 1.基本概念 2.语法 (1)constexpr 变量 (2)constexpr 函数 二.使用示例 示例1:constexpr 修饰变量 示例2:constexpr 修饰函数 示例3:constexpr 修饰构造函数 三.注意事项 …...
什么是AI Agent
AI Agent(人工智能代理)是一种能够感知环境、自主决策并采取行动以实现特定目标的智能实体。它结合了人工智能技术(如机器学习、自然语言处理、计算机视觉等),能够通过与环境交互不断学习和优化行为。 核心特征 自主…...
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…...
学校地摊尝试实验
学校地摊尝试实验 诸位,我要告诉诸位一件大消息,那就是,我将会利用学校时光的最后一段时间进行疯狂摆摊练习,如何进行摆摊,大家 听我娓娓道来。我要确定摆摊的目的, 第一,赚钱,第二…...
