基于Flink+Iceberg构建可落地的企业级实时数据湖教程

xiaoshuai8888 · · 191 次点击 · · 开始浏览    
基于Flink+Iceberg构建可落地的企业级实时数据湖教程 给大家分享一套课程——基于Flink+Iceberg构建可落地的企业级实时数据湖教程,附代码+课件。 iceberg是一种表格式。我们可以简单理解为他是基于计算层(flink、spark)和存储层(orc、parqurt)的一个中间层,我们可以把它定义成一种“数据组织格式”,Iceberg将其称之为“表格式”也是表达类似的含义。他与底层的存储格式(比如ORC、Parquet之类的列式存储格式)最大的区别是,它并不定义数据存储方式,而是定义了数据、元数据的组织方式,向上提供统一的“表”的语义。它构建在数据存储格式之上,其底层的数据存储仍然使用Parquet、ORC等进行存储。在hive建立一个iceberg格式的表。用flink或者spark写入iceberg,然后再通过其他方式来读取这个表,比如spark、flink、presto等。 iceberg优势 增量读取处理能力:Iceberg支持通过流式方式读取增量数据,支持Structed Streaming以及Flink table Source; 支持事务(ACID),上游数据写入即可见,不影响当前数据处理任务,简化ETL; 提供upsert和merge into能力,可以极大地缩小数据入库延迟; 可扩展的元数据,快照隔离以及对于文件列表的所有修改都是原子操作; 同时支持流批处理、支持多种存储格式和灵活的文件组织:提供了基于流式的增量计算模型和基于批处理的全量表计算模型。批处理和流任务可以使用相同的存储模型,数据不再孤立; Iceberg支持隐藏分区和分区进化,方便业务进行数据分区策略更新。支持Parquet、Avro以及ORC等存储格式。 支持多种计算引擎,优秀的内核抽象使之不绑定特定的计算引擎,目前Iceberg支持的计算引擎有Spark、Flink、Presto以及Hive。 Flink+Iceberg环境搭建: 1. Flink SQL Client配置Iceberg Flink集群需要使用Scala 2.12版本的 将Iceberg的依赖包下载放到Flink集群所有服务器的lib目录下,然后重启Flink Iceberg默认支持Hadoop Catalog。如果需要使用Hive Catalog,需要将flink-sql-connector-hive-3.1.2_2.12-1.14.3.jar放到Flink集群所有服务器的lib目录下,然后重启Flink 然后启动SQL Client就可以了 Iceberg 是为分析海量数据准备的,被定义为 table format,table format 介于计算层和存储层之间。 table format 主要用于向下管理在存储系统上的文件,向上为计算层提供一些接口。存储系统上的文件存储都会采用一定的组织形式,譬如读一张 Hive 表的时候,HDFS 文件系统会带一些 partition,数据存储格式、数据压缩格式、数据存储 HDFS 目录的信息等,这些信息都存在 Metastore 上,Metastore 就可以称之为一种文件组织格式。![QQ截图20240229101800.png](http://static.itsharecircle.com/240229/4c1b116507cc8c8d25c105e785fb9ed4.png)
191 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传