谷歌云

2023-11-08

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 工作负载,请利用清单支持,如果您还希望进一步提高性能,则可以通过利用元数据缓存和物化视图来实现。 

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

谷歌云 的相关文章

随机推荐

  • VScode编译调试C++环境

    首先去官网下载vscodehttps code visualstudio com 为了编译C C 要使用gcc Windows本身不支持gcc 所以有了MinGW 我用的是dev带的MinGW 也可以自己安装MinGW 或者用VS的编译器
  • VTM7.0配置并运行(windows系统)

    文章目录 一 下载安装VTM 下载方式一 下载方式二 1 解压VTM软件压缩包 2 在解压好的目录里新建 build 文件夹 二 下载安装Cmake 1 下载Cmake并解压 2 配置Cmake环境变量 三 编译 方法一 界面 1 打开 c
  • Netty案例(二)之耗时任务的处理

    文章目录 netty版本 Netty耗时任务的处理 代码案例 Handler 自定义业务线程池 Context中添加线程池 netty版本 使用的netty版本是io netty netty all 4 1 33 Final Netty耗时
  • 全网最好的免费开源ERP:Odoo库存路线规则设置应用详解

    引言 在库存管理中 供应链战略确定了产品何时应该采购或制造 交付到分销中心 并最终提供给零售渠道 在开源智造 Odoo免费开源ERP解决方案中 可以使用WMS应用中的仓库路线来配置产品的供应链策略 其中包括库内作业的拉取和推送规则 一旦一切
  • Java架构直通车——深入理解B+树

    文章目录 引入 AVL树和B树 AVL树 红黑树 B树 B 树 数据库为什么不使用二叉树 为什么使用B 树 与B树的区别 引入 AVL树和B树 AVL树 平衡二叉搜索树是基于二分法的策略提高数据的查找速度的二叉树的数据结构 平衡二叉搜索树的
  • 删除双系统中的一个linux,双系统删除linux

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 双系统删除linux系统2008 10 12 00 27方法一 我们知道在xp里一个很好的分区工具 PQ partition magic 但在双系统下 由于linux改变了xp里C盘的一个启动项
  • LVGL-obj对象

    对象创建 1 lv中所有的对象都以obj为基础进行扩展的 创建对象时父对象是空 则在显示器屏链表增加一个节点 父对象非空则在其子链表增加一个节点 创建完成会通过parent gt signal cb parent LV SIGNAL CHI
  • MySQL数据库之索引

    目录 前言 一 索引的概念 二 索引的作用和副作用 1 索引的作用 2 索引的副作用 3 创建索引的原则依据 总结 三 索引的分类和创建 1 普通索引 1 直接创建索引 2 修改表方式创建 3 创建表的时候指定索引 不建议 2 唯一索引 1
  • 国标GB28181安防视频平台EasyGBS显示状态正常,却无法播放该如何解决?

    国标GB28181视频平台EasyGBS是基于国标GB T28181协议的行业内安防视频流媒体能力平台 可实现的视频功能包括 实时监控直播 录像 检索与回看 语音对讲 云存储 告警 平台级联等功能 国标GB28181视频监控平台部署简单 可
  • C/C++函数参数读取顺序

    说到C C 函数参数读取顺序 很多人都知道在入栈时是从右至左的 可是真的有那么简单吗 先看一个例子 include
  • 允许chatgpt上传文件的插件

    https chrome google com webstore detail chatgpt file uploader ext becfinhbfclcgokjlobojlnldbfillpf related 事实上在其它浏览器 例如e
  • Solidity编程开发实例

    Solidity 编程开发实例 Voting 投票 接下来的智能合约教程非常复杂 但展示了很多Solidity的特性 它实现了一个入门的投票合约 当然 电子选举的主要问题是如何赋予投票权给准确的人 并防止操纵 我们不能解决所有的问题 但至少
  • java-编程输出一个随机字母

    编程输出一个随机字母 public class s public static void main String args TODO Auto generated method stub int i int Math random 2 1
  • Sqlite学习笔记(四)&&SQLite-WAL原理 Write ahead logging

    Sqlite学习笔记 四 SQLite WAL原理 转 2015 08 24 21 55 by 沧海一滴 90 阅读 0 评论 收藏 编辑 Sqlite学习笔记 三 WAL性能测试中列出了几种典型场景下WAL的性能数据 了解到WAL确实有性
  • linux下QT源码安装简书,QT Creator 5在linux下的安装及问题(libCore.so无法加载)的解决...

    Qt 以其开源 免费 完全面向对象 很容易扩展 允许真正的组件编程以及可移植跨平台等诸多优势得到越来越多的开发人员的青睐 Qt Creator 是 Nokia 官方推出的专门针对 Qt 开发的 IDE 本文详细介绍了 Linux 下 Qt
  • QT 多线程信号与槽(一)

    QT 中 QObject 作QT中类的最终父类 具有自定义信号与槽的能力 只要继承自这个类的类 也一样拥有自定义信号和槽的能力 QT 中定义信号与槽是十分有用的 那我们的线程类是不是也有这个能力呢 查一下 QThread 的源码 我们发现
  • 利用Xming X Server使用服务器上使用kettle

    Xming X Server安装部署 1 下载 http sourceforge net project showfiles php group id 156984 Xming 6 9 0 31 用OpenGL展示界面 Xming font
  • 电源抑制比(PSRR )

    如果运算放大器的电源发生变化 输出不应变化 但实际上通常会发生变化 如果X V的电源电压变化产生Y V的输出电压变化 则该电源的PSRR 折合到输出端 为X Y 无量纲比通常称为电源电压抑制比 PSRR 以dB表示时则称为电源电压抑制 PS
  • This system is not registered with RHN问题解决

    1 问题 公司有一台服务器 因为一直用的是centos的系统 但是那个分中心没有现成centos的系统 问我红帽5 3的能行吗 我说试一试 然后在配置yum源的时候就遇到了问题 提示如下错误 这是因为这个系统没有在红帽注册 所以不能用yum
  • 谷歌云

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