此前Apache Hudi社区一直有小伙伴询问能否使用Amazon Redshift查询Hudi表,现在它终于来了。

现在您可以使用Amazon Redshift查询Amazon S3 数据湖中Apache Hudi/Delta Lake表数据。Amazon Redshift Spectrum作为Amazon Redshift的特性可以允许您直接从Redshift集群中查询S3数据湖,而无需先将数据加载到其中,从而最大限度地缩短了洞察数据价值时间。

Redshift Spectrum支持Lake house架构,可以跨Redshift、Lake house和操作数据库查询数据,而无需进行ETL或加载数据。Redshift Spectrum支持开放数据格式,如Parquet、ORC、JSON和CSV。Redshift Spectrum还支持查询具有复杂嵌套数据类型(如struct、array或map)。

Redshift Spectrum允许您读取Apache Hudi 0.5.2版本的Copy-on-Write(CoW)表的最新快照,并且可以通过manifest文件读取最新的Delta Lake 0.5.0版本表。

要查询Apache Hudi的Copy-On-Write(CoW)格式的数据,可以使用Amazon Redshift-Spectrum外表。Hudi Copy On Write表是存储在Amazon S3中的Apache Parquet文件的集合。有关更多信息,请参阅开源Apache Hudi文档中的Copy-On-Write表。

当创建引用Hudi CoW格式数据的外表后,将外表中的每一列映射到Hudi数据中的列。映射是按列完成的。

Hudi分区和未分区表的数据定义语言(DDL)语句与其他Apache Parquet文件格式的语句类似。对于Hudi表,可以将INPUTFORMAT定义为org.apache.hudi.hadop.HoodieParquetInputFormat. LOCATION参数必须指向包含.hoodie文件夹的Hudi表基础文件夹,该文件夹是建立Hudi提交时间线所必需的。在某些情况下,对Hudi表的SELECT操作可能会失败,并显示消息No valid Hudi commit timeline found。如果是,请检查.hoodie文件夹是否在正确的位置,并且包含有效的Hudi提交时间线。

注意,Apache Hudi格式只有在使用AWS Glue Data时支持,不支持使用Apache Hive metastore作为外部catalog。

使用如下命令定义非分区表

CREATE EXTERNAL TABLE tbl_name (columns)
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS
INPUTFORMAT 'org.apache.hudi.hadoop.HoodieParquetInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION 's3://s3-bucket/prefix'

使用如下命令定义分区表

CREATE EXTERNAL TABLE tbl_name (columns)
PARTITIONED BY(pcolumn1 pcolumn1-type[,...])
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS
INPUTFORMAT 'org.apache.hudi.hadoop.HoodieParquetInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION 's3://s3-bucket/prefix'

为Hudi分区表添加分区,请使用ALTER TABLE ADD PARTITION命令,其中LOCATION参数指向属于分区的Amazon S3子文件夹。

使用如下命令添加分区

ALTER TABLE tbl_name
ADD IF NOT EXISTS PARTITION(pcolumn1=pvalue1[,...])
LOCATION 's3://s3-bucket/prefix/partition-path'

Apache Hudi最早被AWS EMR官方集成,然后原生集成到AWS上不同云产品,如Athena、RedShift,可以看到Hudi作为数据湖框架在云上发挥的作用越来越大,生态也越来越完善,也欢迎广大开发者参与Apache Hudi社区,一起建设更好的数据湖,Github传送门https://github.com/apache/hudi

划重点!AWS的湖仓一体使用哪种数据湖格式进行衔接?的更多相关文章

  1. 李呈祥:bilibili在湖仓一体查询加速上的实践与探索

    导读: 本文主要介绍哔哩哔哩在数据湖与数据仓库一体架构下,探索查询加速以及索引增强的一些实践.主要内容包括: 什么是湖仓一体架构 哔哩哔哩目前的湖仓一体架构 湖仓一体架构下,数据的排序组织优化 湖仓一 ...

  2. 华为云FusionInsight湖仓一体解决方案的前世今生

    摘要:华为云发布新一代智能数据湖华为云FusionInsight时再次提到了湖仓一体理念,那我们就来看看湖仓一体的来世今生. 伴随5G.大数据.AI.IoT的飞速发展,数据呈现大规模.多样性的极速增长 ...

  3. Apache Hudi在华米科技的应用-湖仓一体化改造

    徐昱 Apache Hudi Contributor:华米高级大数据开发工程师 巨东东 华米大数据开发工程师 1. 应用背景及痛点介绍 华米科技是一家基于云的健康服务提供商,拥有全球领先的智能可穿戴技 ...

  4. JuiceFS 在数据湖存储架构上的探索

    大家好,我是来自 Juicedata 的高昌健,今天想跟大家分享的主题是<JuiceFS 在数据湖存储架构上的探索>,以下是今天分享的提纲: 首先我会简单的介绍一下大数据存储架构变迁以及它 ...

  5. 从 Delta 2.0 开始聊聊我们需要怎样的数据湖

    盘点行业内近期发生的大事,Delta 2.0 的开源是最让人津津乐道的,尤其在 Databricks 官宣 delta2.0 时抛出了下面这张性能对比,颇有些引战的味道. 虽然 Databricks ...

  6. 初创电商公司Drop的数据湖实践

    欢迎关注微信公众号:ApacheHudi 1. 引入 Drop是一个智能的奖励平台,旨在通过奖励会员在他们喜爱的品牌购物时获得的Drop积分来提升会员的生活,同时帮助他们发现与他们生活方式产生共鸣的新 ...

  7. 使用 Iceberg on Kubernetes 打造新一代云原生数据湖

    背景 大数据发展至今,按照 Google 2003年发布的<The Google File System>第一篇论文算起,已走过17个年头.可惜的是 Google 当时并没有开源其技术,& ...

  8. 通过Apache Hudi和Alluxio建设高性能数据湖

    T3出行的杨华和张永旭描述了他们数据湖架构的发展.该架构使用了众多开源技术,包括Apache Hudi和Alluxio.在本文中,您将看到我们如何使用Hudi和Alluxio将数据摄取时间缩短一半.此 ...

  9. 使用Apache Hudi构建大规模、事务性数据湖

    一个近期由Hudi PMC & Uber Senior Engineering Manager Nishith Agarwal分享的Talk 关于Nishith Agarwal更详细的介绍,主 ...

随机推荐

  1. 【转】Python进度条tqdm的使用

    有时候在使用Python处理比较耗时操作的时候,为了便于观察处理进度,这时候就需要通过进度条将处理情况进行可视化展示,以便我们能够及时了解情况.这对于第三方库非常丰富的Python来说,想要实现这一功 ...

  2. 牛客网PAT练习场-个位数的统计

    思路:每接受一个字符,便统计一次即可 题目地址:https://www.nowcoder.com/questionTerminal/a2063993dd424f9cba8246a3cf8ef445 # ...

  3. Android开发之常用必备工具类图片bitmap转成字符串string与String字符串转换为bitmap图片格式

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...

  4. ugui 自定义字体

    Unity/UI —— 使用字符图片自定义字体(Custom Font) ---[佳] https://blog.csdn.net/qq_28849871/article/details/777190 ...

  5. 模拟CMOS集成电路 课后习题总结(2.1)

    前几天开始自学拉扎维的模设教材,看之前浏览了EETOP论坛里面好多大神们对这本书的看法,当然也有人在抱怨,比如冒出“太科幻”.“一年才看完”之类恐怖的修饰语句,因此在开始看的时候就对此书充满了“敬畏” ...

  6. webpack 多页面构建

    目标: 基于webpack支持react多页面构建(不用gulp,gulp-webpack 构建速度太慢[3]), generator-react-webpack 对单页面支持很好,但对多页面,需要改 ...

  7. Mybatis联合查询(一)

    Mybatis的简单联合查询操作: 实体类: Employee: package com.test.mybatis; public class Employee { private Integer i ...

  8. 15 自定义分页pagination全局组件

    1.Pagination.vue <template> <el-pagination @size-change="handleSizeChange" @curre ...

  9. CentOS 7 安装部署 cassandra作为kairosdb的数据存储

    环境 Centos 7.4 java 1.8.0 安装步骤 java yum -y install java-1.8.0-openjdk* cassandra wget https://mirrors ...

  10. Kubernetes K8S之Pod跨namespace名称空间访问Service服务

    Kubernetes的两个Service(ServiceA.ServiceB)和对应的Pod(PodA.PodB)分别属于不同的namespace名称空间,现需要PodA和PodB跨namespace ...