划重点!AWS的湖仓一体使用哪种数据湖格式进行衔接?
此前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的湖仓一体使用哪种数据湖格式进行衔接?的更多相关文章
- 李呈祥:bilibili在湖仓一体查询加速上的实践与探索
导读: 本文主要介绍哔哩哔哩在数据湖与数据仓库一体架构下,探索查询加速以及索引增强的一些实践.主要内容包括: 什么是湖仓一体架构 哔哩哔哩目前的湖仓一体架构 湖仓一体架构下,数据的排序组织优化 湖仓一 ...
- 华为云FusionInsight湖仓一体解决方案的前世今生
摘要:华为云发布新一代智能数据湖华为云FusionInsight时再次提到了湖仓一体理念,那我们就来看看湖仓一体的来世今生. 伴随5G.大数据.AI.IoT的飞速发展,数据呈现大规模.多样性的极速增长 ...
- Apache Hudi在华米科技的应用-湖仓一体化改造
徐昱 Apache Hudi Contributor:华米高级大数据开发工程师 巨东东 华米大数据开发工程师 1. 应用背景及痛点介绍 华米科技是一家基于云的健康服务提供商,拥有全球领先的智能可穿戴技 ...
- JuiceFS 在数据湖存储架构上的探索
大家好,我是来自 Juicedata 的高昌健,今天想跟大家分享的主题是<JuiceFS 在数据湖存储架构上的探索>,以下是今天分享的提纲: 首先我会简单的介绍一下大数据存储架构变迁以及它 ...
- 从 Delta 2.0 开始聊聊我们需要怎样的数据湖
盘点行业内近期发生的大事,Delta 2.0 的开源是最让人津津乐道的,尤其在 Databricks 官宣 delta2.0 时抛出了下面这张性能对比,颇有些引战的味道. 虽然 Databricks ...
- 初创电商公司Drop的数据湖实践
欢迎关注微信公众号:ApacheHudi 1. 引入 Drop是一个智能的奖励平台,旨在通过奖励会员在他们喜爱的品牌购物时获得的Drop积分来提升会员的生活,同时帮助他们发现与他们生活方式产生共鸣的新 ...
- 使用 Iceberg on Kubernetes 打造新一代云原生数据湖
背景 大数据发展至今,按照 Google 2003年发布的<The Google File System>第一篇论文算起,已走过17个年头.可惜的是 Google 当时并没有开源其技术,& ...
- 通过Apache Hudi和Alluxio建设高性能数据湖
T3出行的杨华和张永旭描述了他们数据湖架构的发展.该架构使用了众多开源技术,包括Apache Hudi和Alluxio.在本文中,您将看到我们如何使用Hudi和Alluxio将数据摄取时间缩短一半.此 ...
- 使用Apache Hudi构建大规模、事务性数据湖
一个近期由Hudi PMC & Uber Senior Engineering Manager Nishith Agarwal分享的Talk 关于Nishith Agarwal更详细的介绍,主 ...
随机推荐
- pandas - 异常值处理
异常值概念:是指那些远离正常值的观测,即“不合群”观测.异常值的出现一般是人为的记录错误或者是设备的故障等,异常值的出现会对模型的创建和预测产生 严重的后果.当然异常值也不一定是坏事,有些情况下,通过 ...
- java项目的心得,java项目的代码层次的架构划分
java项目使用的架构是ssm(Spring+SpringMVC+MyBatis). 一.后台代码一般分三层,Controller,Service,Dao. 1.Controller层是对前端或者接口 ...
- 牛客网数据库SQL实战解析(21-30题)
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...
- Java小菜求职记-以前在Dubbo踩的坑,这次全被问到了,这下舒服了
前传 小林求职记(五)上来就一连串的分布式缓存提问,我有点上头.... 终于,在小林的努力下,获得了王哥公司那边的offer,但是因为薪水没有谈妥,小林又重新进入了求职的旅途,在经历了多次求职过程之后 ...
- 接口测试 Mock 实战 | 结合 jq 完成批量化的手工 Mock
本文霍格沃兹测试学院学员学习实践笔记. 一.应用背景 因为本章的内容是使用jq工具配合完成,因此在开始部分会先花一定的篇幅介绍jq机器使用,如果读者已经熟悉jq,可以直接跳过这部分. 先来看应用场景, ...
- Spark SQL dropDuplicates
spark sql 数据去重 在对spark sql 中的dataframe数据表去除重复数据的时候可以使用dropDuplicates()方法 dropDuplicates()有4个重载方法 第一个 ...
- MySQL 字符类型
字符类型 MySQL提供了多种关于字符存储的类型,但是在大多数情况下我们只使用char和varchar即可 类型 大小 用途 CHAR 0-255字节 定长字符串 VARCHAR 0-65535 字节 ...
- 没想到,Git居然有3种“后悔药”!
没想到,Git居然有后悔药! 你知道Git版本控制系统中都有哪些"后悔药"吗? 本文通过案例讲解git reset . git revert . git checkout在版本控制 ...
- Illegal instruction报错 c/c++
报错 # ./agent Illegal instruction# 原因 myLog(log4cplus::INFO_LOG_LEVEL, g_p_debugLog, "sendLog ip ...
- 使用jQuery设置和获取css样式