草庐IT

数据湖及湖仓一体化项目学习框架

Lansonli 2023-04-18 原文

文章目录

数据湖及湖仓一体化项目学习框架

前言

一、数据湖基础知识介绍

1、数据湖技术Hudi

2、数据湖技术Iceberg

二、湖仓一体化项目


数据湖及湖仓一体化项目学习框架

前言

利用框架的力量,看懂游戏规则,才是入行的前提

大多数人不懂,不会,不做,才是你的机会,你得行动,不能畏首畏尾

选择才是拉差距关键,风向,比你流的汗水重要一万倍,逆风划船要累死人的


上面这些看似没用,但又很重要,这里我就不在详述作用,有兴趣的同学可以看看我的大数据学习探讨话题:

学习框架的重要性

我是怎么坚持学习的

怎么确定学习目标

这个栏目初学者全面整理数据湖必学知识,内容是按照体系划分的,带你从基础知识项目实战,想学会就得自律加坚持,赶快行动吧

一、数据湖基础知识介绍

1、数据湖技术Hudi

大多数大数据企业在构建数仓时采用Lambda架构,一条离线数仓链路,一条实时数仓链路。一些实时业务多的公司构建数仓时采用Kappa架构,但是也避免不了离线处理一些数据,所以一些公司也采用Kappa架构+Lambda架构方式构建数仓。以上不同的架构都有各自的优点及缺点,这里不再赘述。批数据处理与流式数据处理的不同效率决定了针对两类数据采用不同的架构进行分析处理,未来数据仓库的发展也终将走向批数据和流数据使用同一套架构处理,同时也要求批数据及流数据存储上也需要统一,这就所说的批流一体,那么使用什么技术可以既能满足批数据海量存储分析又能满足实时数据存储的效率高、支持数据更新删除?数据湖技术应运而生。Hudi 就是典型的数据湖技术,支持批数据和流式数据的存储,同时还支持高效的OLAP分析查询。

在本栏目中将会带领大家学习为什么要用数据湖技术、Hudi Timeline、Hudi文件格式及索引、Hudi表类型、Hudi与Spark、Flink框架整合等知识,如果你在学习、工作中针对批流一体数据处理场景正不知选择何种技术,在工作中使用到数据湖技术,那么选择这个栏目绝对没错,将带领大家学习最热的批流一体、湖仓一体前沿技术,给自己学习、工作增加“魅力”分值。

主要知识点:

1.数据湖概念详解
2.数据湖与数据仓库区别
3.数据湖技术Hudi原理剖析
4.数据湖技术Hudi Timeline详解
5.数据湖技术Hudi 文件格式及索引详解
6.数据湖技术Hudi COW表类型详解
7.数据湖技术Hudi MOR表类型详解
8.数据湖技术Hudi 查询类型详解
9.数据湖技术Hudi与Spark框架整合
10.数据湖技术Hudi增删改查实战操作
11.数据湖技术Hudi覆盖分区和表数据
12.数据湖技术Hudi与Hive框架深度整合
13.数据湖技术Hudi与Flink框架深度整合

2、数据湖技术Iceberg

这里不再赘述,Iceberg就是典型的数据湖技术,支持批数据和流式数据的存储,同时还支持高效的OLAP分析查询。

主要知识点:

1.什么是数据湖
2.大数据为什么需要数据湖
3.Iceberg概念及特点
4.Iceberg数据存储格式
5.Iceberg术语
6.表格式Table Format
7.Iceberg特点详述
8.Iceberg分区与隐藏分区(Hidden Partition)
9.Iceberg表演化(Table Evolution)
10.模式演化(Schema Evolution)
11.分区演化(partition Evolution)
12.列顺序演化(Sort Order Evolution)
13.Iceberg数据类型
14.开启Hive支持Iceberg
15.Hive中操作Iceberg格式表
16.Iceberg表数据组织与查询
17.Iceberg底层数据存储
18.Spark3.1.2与Iceberg0.12.1整合
19.SparkSQL设置catalog配置
20.使用Hive Catalog管理Iceberg表
21.使用Hadoop Catalog管理Iceberg表
22.Spark与Iceberg整合DDL操作
23.DataFrame API加载Iceberg中的数据
24.Spark整合Iceberg之查询表快照
25.Spark整合Iceberg之查询表历史
26.Spark整合Iceberg之查询表data files
27.Spark整合Iceberg之查询Manifests
28.Spark整合Iceberg之查询指定快照数据
29.Spark整合Iceberg之根据时间戳查询数据
30.Spark整合Iceberg之回滚快照
31.Spark整合Iceberg之合并Iceberg表的数据文件
32.Spark整合Iceberg之 删除历史快照
33.spark整合Iceberg之 INSERT INTO
34.spark整合Iceberg之 MERGE INTO
35.spark整合Iceberg之 INSERT OVERWRITE
36.spark整合Iceberg之 DELETE FROM
37.spark整合Iceberg之 UPDATE
38.DataFrame API 写入Iceberg表
39.Structured Streaming实时写入Iceberg
40.Flink DataStream API 操作Iceberg
41.Flink DataStream API 实时写入Iceberg表
42.Flink DataStream API 批量/实时读取Iceberg表
43.Flink 指定基于快照实时增量读取数据
44.Flink 合并data files
45.Flink SQL API 与Iceberg整合
46.Flink SQL API 批量查询Iceberg表数据
47.Flink SQL API 实时查询Iceberg表数据
48.Flink SQL API指定基于快照实时增量读取数据
49.Flink SQL API 读取Kafka数据实时写入Iceberg表
50.Flink兼容Iceberg目前不足
51.数据湖技术Iceberg与Hudi对比

二、湖仓一体化项目

目前很多互联网公司处理公司海量数据都采用湖仓一体的架构技术设计方案,比如阿里、腾讯、百度、小米等,在数据智能时代,湖仓一体成为企业构建大数据栈的必选项,湖仓一体架构设计方案替换传统独立的数据仓库设计方案已经成为不可逆转的趋势。在数据分析领域,湖仓一体是未来,可以很好的应对当下时代数据离线和实时分析的需求,更适合数据量规模大的公司现状。

湖仓一体电商数据分析平台从Lambda架构Kappa架构数仓的发展为出发点,详细阐述了目前湖仓一体构建数据分析平台方案设计优点与落地方案。本项目是基于某宝商城电商项目的电商数据分析平台,在技术方面涉及大数据技术组件搭建,湖仓一体分层数仓设计、实时到离线数据指标分析及数据大屏可视化,项目所用到的技术组件都从基础搭建开始,目的在于湖仓一体架构中数据仓库与数据湖融合打通,实现企业级项目离线与实时数据指标分析。在业务方面涉及到会员主题与商品主题,分析指标有用户实时登录信息分析、实时浏览pv/uv分析、实时商品浏览信息分析、用户积分指标分析等内容,其中技术涉及到Iceberg数据湖、Maxwell、Flink、Phoenix、ClickHouse等技术内容点。在项目中还会给大家讲解湖仓一体设计方式以及湖仓设计中的优化点,给各从业小伙伴打下坚实的基础。

如果你目前正打算学习大数据,不了解湖仓一体架构设计方式或者目前正在从事大数据开发对湖仓一体架构设计方式无从下手,那么来学习本栏目,全方位无死角的学习湖仓一体架构在企业真正落地实战,旨在帮助更多同学快速掌握湖仓一体架构设计方案。在此项目中我会带领大家敲出每个业务代码,同时教大家如何在湖仓一体架构中针对实时场景、离线场景进行分析,项目执行过程中优化处理、如何进行数据发布及数据可视化等重点内容。

Lambda实时数仓架构: 

Kappa实时数仓架构:

批流一体实时数仓架构:

湖仓一体项目分层架构设计:

项目最终效果展示: 

项目部分业务分层设计实现: 


  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

有关数据湖及湖仓一体化项目学习框架的更多相关文章

  1. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  4. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  5. ruby - Ruby 有 `Pair` 数据类型吗? - 2

    有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳

  6. Ruby 从大范围中获取第 n 个项目 - 2

    假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit

  7. ruby - 我如何添加二进制数据来遏制 POST - 2

    我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_

  8. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  9. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  10. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

随机推荐