谷歌云 | BigQuery 现在支持用于查询开放表格式的清单文件

news2025/2/12 1:49:09

Cloud Ace 是谷歌云全球战略合作伙伴,拥有 300 多名工程师,也是谷歌最高级别合作伙伴,多次获得 Google Cloud 合作伙伴奖。作为谷歌托管服务商,我们提供谷歌云谷歌地图谷歌办公套件谷歌云认证培训服务。 

开放表格式依赖嵌入式元数据来提供事务一致的 DML 和时间旅行功能。它们保留不同版本的数据文件,并且能够生成清单,清单是表示时间点快照的数据文件列表。许多数据运行时(例如Delta Lake和Apache Hudi)都可以生成清单,可用于加载和查询用例。BigQuery 现在支持清单文件,这将使使用 BigQuery 查询开放表格式变得更加容易。

BigQuery 支持  SymLinkTextInputFormat 中的清单文件,它只是一个以换行符分隔的 URI 列表。客户现在可以在表选项中将 file_set_spec_type 标志设置为NEW_LINE_DELIMITED_MANIFEST,以指示提供的 URI 是换行符分隔的清单文件,每行一个 URI。此功能还支持 Hive 式分区表的分区修剪,从而提高性能并降低成本。 

以下是使用清单文件创建 BigLake 表的示例。

图片

使用清单支持查询 Apache Hudi 

Apache Hudi是一个用于大数据工作负载的开源数据管理框架。它构建在 Apache Hadoop 之上,提供了一种管理 Hadoop 分布式文件系统 (HDFS) 或任何其他云存储系统中的数据的机制。

可以使用Hudi-BigQuery Connector从 BigQuery 作为外部表查询 Hudi 表。Hudi-BigQuery 集成仅适用于 hive 样式分区的写入时复制表。该实现不允许使用一些重要的查询处理优化,这会损害性能并增加槽消耗。

为了克服这些痛点,Hudi-BigQuery 连接器进行了升级,以利用 BigQuery 的清单文件支持。以下是使用连接器查询 Apache Hudi 工作负载的分步过程。

第 1 步:下载并构建 BigQuery Hudi 连接器

下载并构建最新的 hudi-gcp-bundle 以运行BigQuerySyncTool。 

步骤 2:运行 Spark 应用程序以生成 BigQuery 外部表

以下是使用清单方法使用连接器的步骤:

  • 删除 BigQuery 中表示 Hudi 表的现有视图 [如果使用旧实现]

    • Hudi 连接器查找表名,如果存在,它只会更新清单文件。由于架构不匹配,查询将开始失败。确保在触发最新的连接器之前删除视图。

  • 运行最新的 Hudi Connector 来触发清单方法

    • 使用 --use-bq-manifest-file 标志运行 BigQuerySyncTool。

    • 如果您要从旧实现过渡,请将 --use-bq-manifest-file 标志附加到运行现有连接器的当前 Spark 提交。建议使用相同的表名称,因为它将允许保留现有的下游管道代码。

    • 使用 use-bq-manifest-file 标志运行连接器将以 BigQuery 支持的格式导出清单文件,并使用它来创建具有 --table 参数中指定的名称的外部表。

以下是清单方法的 Spark 提交示例。

图片

步骤 3:推荐:升级到加速 BigLake 表

运行大规模分析的客户可以将外部表升级到 BigLake 表,以设置适当的细粒度控制,并通过利用元数据缓存和物化视图来加速这些工作负载的性能。

使用清单支持查询 Delta Lake 

Delta Lake是一个开源存储框架,可以构建 Lakehouse 架构。它使用基于文件的事务日志扩展了 Parquet 数据文件,以实现 ACID 事务和可扩展的元数据处理。它还提供了导出清单文件的选项,其中包含表示时间点快照的数据文件列表。 

借助清单支持,用户可以创建 BigLake 表来查询 GCS 上的 Delta Lake 表。每当底层 Delta Lake 表发生更改时,用户有责任生成清单,并且此方法仅支持查询 Delta Lake reader v1 表。

以下是使用清单支持查询 Delta Lake 表的分步过程。

步骤 1:使用 Apache Spark 生成 Delta 表的清单

Delta Lake 支持导出清单文件。生成命令在 <path-to-delta-table>/_symlink_format_manifest/ 生成清单文件。此目录中的文件将包含读取 Delta 表快照时应读取的数据文件(即 Parquet 文件)的名称。

图片

步骤 2:在生成的清单上创建 BigLake 表 

使用上一步生成的清单文件创建基于BigLake 表的清单文件。如果底层 Delta Lake 表已分区,您可以创建 Hive 样式分区 BigLake 表。

图片

步骤 3:推荐:升级到加速 BigLake 表

在 Delta Lake 工作负载上运行大规模分析的客户可以通过利用元数据缓存和物化视图来提高性能。 

下一步是什么?

如果您是 OSS 客户,希望在 GCS 上查询 Delta Lake 或 Apache Hudi 工作负载,请利用清单支持,如果您还希望进一步提高性能,则可以通过利用元数据缓存和物化视图来实现。 

如果您有任何疑问或需求,欢迎随时与我们取得联系。

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

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

相关文章

C++:string类模拟实现

C&#xff1a;string类模拟实现 成员变量构造和析构容量相关1.获取容器大小(_size)和容量(_capacity)2.扩容(reserve)3.更改容器大小 修改相关1.尾插2.指定位置插入3.指定位置删除4.清空5.交换两个对象 比较相关访问相关迭代器相关查找相关其它成员函数1.截取子串2.取得C格式字…

交融动画学习

学习抖音&#xff1a; 渡一前端教科频道 利用 filter 的属性实现交融效果 变成 让后利用这个效果实现一个功能 实现代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><style>* {margin: 0;…

c# .net mvc的IHttpHandler奇妙之旅--图片文件请求安全过滤,图片防盗链

在阅读该文章前,请先阅读该文章 c# .net mvc的IHttpHandler奇妙之旅。.net的生命周期和管道你听说过吗?你可以利用他处理业务如:跳转业务页面,文件请求的安全过滤,等等,还有许多神秘业务等着你去发现_橙-极纪元的博客-CSDN博客 该篇文章延续上面文章的第二小节《二、文件…

StarRocks企业级数据库

第1章 StarRocks简介 1.1 StarRocks介绍 StarRocks是新一代极速全场景MPP数据库 StraRocks充分吸收关系型OLAP数据库和分布式存储系统在大数据时代的优秀研究成果&#xff0c;在业界实践的基础上&#xff0c;进一步改进优化、升级架构&#xff0c;并增添了众多全新功能&…

Cadence OrCAD Capture CIS批量替换GND符号的方法

🏡《总目录》   🏡《宝典目录》 目录 1,概述2,方法3,总结1,概述 如下图所示,有时由于绘图是从多个地方复制粘贴而来,一个图纸中会存在多种GND符号。此时比较容易引起GND网络名不同意的问题,为了避免该问题可对其批量替换。 2,方法 第1步:选择需要替换的GND符号…

【Nginx】Nginx的优化和防盗链

nginx版本迭代比较快 *工作中&#xff0c;在发版期&#xff0c;通常先备份文件并备注时间&#xff0c;方便后期故障后回档 例&#xff1a; cp nginx.conf nginx.conf.bak.2023.0805 隐藏版本号的两种方法*** 1.修改配置文件 vim /usr/local/nginx/conf/nginx.conf 在http模…

分享花店行业小程序平台搭建教程

随着移动互联网的快速发展&#xff0c;花店也开始意识到拥有一个专属的小程序能够提升用户体验、增加销售额。那么&#xff0c;如何快速搭建一个漂亮、实用的花店小程序呢&#xff1f;下面就为大家介绍一下具体的步骤。 第一步&#xff0c;使用第三方制作平台。如乔拓云网是一个…

Linux下C语言调用libcurl库获取天气预报信息

一、概述 当前文章介绍如何在Linux&#xff08;Ubuntu&#xff09;下使用C语言调用libcurl库获取天气预报的方法。通过HTTP GET请求访问百度天气API&#xff0c;并解析返回的JSON数据&#xff0c;可以获取指定城市未来7天的天气预报信息。 二、设计思路 【1】使用libcurl库进…

24届近5年南京大学自动化考研院校分析

今天给大家带来的是南京大学控制考研分析 满满干货&#xff5e;还不快快点赞收藏 一、南京大学 学校简介 南京大学是一所历史悠久、声誉卓著的高等学府。其前身是创建于1902年的三江师范学堂&#xff0c;此后历经两江师范学堂、南京高等师范学校、国立东南大学、国立第四中…

数字孪生和元宇宙之间的差别与联系是什么?

元宇宙和数字孪生是两个引人瞩目的概念&#xff0c;它们在虚拟与现实世界的交汇点上呈现出独特的视角和应用。虽然二者都涉及数字化和模拟技术&#xff0c;但在其差异与联系上&#xff0c;我们可以发现深刻的内涵和潜力。 首先&#xff0c;元宇宙是一个更为宽泛的概念&#xf…

嵌入式是大坑吗?

嵌入式不是坑&#xff0c;但里面遍地是坑。一不小心&#xff0c;你就会掉进去。 嵌入式覆盖的范围太广&#xff0c;低端的产品太多。 单片机叫嵌入式&#xff0c;开发板叫嵌入式&#xff0c;摄像头叫嵌入式&#xff0c;手机、平板电脑、通讯基站、无人机、机器人、自动驾驶汽…

C++之红黑树剖析

博主&#xff1a;拖拉机厂第一代码手 gitee:拖拉机厂第一代码手 已收录到专栏C&#xff0c;点击访问 目录 &#x1f4b4;红黑树简介&#x1f4b5;红黑树的插入操作&#x1f4b6;红黑树的删除操作&#x1f4b7;红黑树的实现&#x1f4b8;红黑树节点的定义&#x1f4b8;红黑树结构…

autoware 之 op_behavior_selector行为选择器状态机代码分析

autoware 1 op_behavior_selector行为选择器状态机代码分析 /这里是整个状态机运行时的结构&#xff1a;/ //停止状态:[#停止状态]//任务完成状态:[#任务完成状态]//转向状态:[*前进状态,#转向状态]//停止信号停止状态:[*停止信号等待状态,#停止信号停止状态]//前进状态 :[*目…

C语言学习系列-->看淡指针(1)

文章目录 一、概述二、指针变量和地址2.1 取地址操作符2.2 指针变量和解引用操作符2.2.1 指针变量2.2.2 拆解指针类型2.2.4 解引用操作符 2.3 指针变量的大小 三、指针变量的意义3.1 指针的解引用指针-整数 四、 const修饰指针五、指针运算5.1 指针- 整数5.2 指针-指针5.3 指针…

OpenText 企业安全 调查 产品简介

关于OpenText OpenText是一家信息软件公司&#xff0c;使企业能够通过市场领先的信息管理解决方案&#xff08;内部或云中&#xff09;获得洞察力。 全球面临的数字风险 市场合力驱动的信息管理 处于风暴中心的信息 →安全漏洞和数据保护 • 防止威胁并将破坏影响降至最低 …

通过PostMan监视提交文件,验证web文件传输

切换文件流,传输文件 找到图片地址 发送请求然后接受 再来一张 哈&#xff0c;谢谢各位同志的阅读&#xff0c;然后呢如果觉得本文对您有所帮助的话&#xff0c;还给个免费的赞捏 Thanks♪(&#xff65;ω&#xff65;)&#xff89;

【二】数据库系统

数据库系统的分层抽象DBMS 数据的三个层次从 数据 到 数据的结构----模式数据库系统的三级模式&#xff08;三级视图&#xff09;数据库系统的两层映像数据库系统的两个独立性数据库系统的标准结构 数据模型从 模式 到 模式的结构----数据模型三大经典数据模型 数据库的演变与发…

给大家推荐9个Linux高效运维命令技巧!

文章目录 前言一、实用的 xargs 命令二、命令或脚本后台运行三、找出当前系统内存使用量较高的进程四、找出当前系统CPU使用量较高的进程五、同时查看多个日志或数据文件六、持续ping并将结果记录到日志七、查看tcp连接状态八、查找80端口请求数最高的前20个IP九、ssh实现端口转…

构建高性能的MongoDB数据迁移工具:Java的开发实践

随着大数据时代的到来&#xff0c;数据迁移成为许多企业和组织必须面对的挑战之一。作为一种非关系型数据库&#xff0c;MongoDB在应用开发中得到了广泛的应用。为了满足数据迁移的需求&#xff0c;我们需要一个高性能、稳定可靠的MongoDB数据迁移工具。下面将分享使用Java开发…