自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(153)
  • 收藏
  • 关注

原创 元数据管理和数据目录对于现代数据平台的重要性——Lakehouse架构(四)

Lakehouse 架构中的存储层负责存储整个平台的数据,要查询存储的这些数据,我们需要一个数据目录来帮助用户查询、检索和发现这些数据。本文将对元数据、元存储和数据目录等重要概念进行说明。

2024-04-19 09:18:17 1008

原创 数据血缘对于数据平台的重要性

数据血缘是一个元数据地图,它跟踪数据管道中上游和下游依赖之间的关系,以说明数据的来源、变化方式以及向用户最终展示的位置。通俗的讲,数据血缘就是映射关系:数据来自哪里、数据在整个管道中移动时如何变化以及向最终消费者展示的位置构建完毕,数据血缘将给数据团队带来极大的价值。有时与数据映射(跨模型组合数据字段的过程)相混淆,数据血缘提供了数据如何在环境中移动的可视化。了解特定资产的变化将如何影响下游依赖关系,因此他们不必盲目工作,也不必冒给未知利益相关者带来不受欢迎的意外的风险。

2024-04-19 09:04:23 817

原创 湖仓一体(Lakehouse)架构的核心组件之存储层——Lakehouse 架构(三)

存储层是任何数据平台的核心,在基于lakehouse架构的平台中,它对于高效持久化各类数据、提高查询引擎的性能发挥着重要作用。Lakehouse存储层由云存储、文件格式和表格式组成。本文将说明与 Lakehouse 存储相关的基本概念、行式存储和列式存储之间的区别,以及存储格式是如何与性能密切相关的。然后,将深入探讨用于数据分析场景的存储格式、使用每种格式的好处以及构建数据平台时应考虑的关键功能。了解了上边的概念后将讨论湖仓一体中的开放表格式,包括其功能和优点,以及在使用的时候需要注意的地方。

2024-04-18 17:57:22 1088

原创 传统大数据架构与现代数据平台的期望——Lakehouse 架构(二)

本文概述了传统数据架构:数据仓库和数据湖,以及现代数据平台的期望,和新兴数据架构 Lakehouse 的详细介绍说明,架构没有好坏只有合适与否,但是个人认为湖仓一体架构 Lakehouse 将在未来数据平台的架构设计中占有强大的竞争力。本文概述了传统数据架构:数据仓库和数据湖,以及现代数据平台的期望,和超新星数据架构 Lakehouse 的简单优点介绍,上云是大势所趋,笔者认为在未来大数据架构会越来越简单,可以让各行各业都能感受到数据带来的价值,以及大数据带来的魅力。

2024-04-18 06:00:00 2135

原创 新型大数据架构之湖仓一体(Lakehouse)架构特性说明——Lakehouse 架构(一)

数据仓库和数据湖一直是实现数据平台最流行的架构,然而,过去几年,社区一直在努力利用不同的数据架构方法来实现数据平台。本文就是对当下非常流行的湖仓一体架构的特性说明。

2024-04-17 18:45:46 1301 1

原创 构建数据平台架构指导原则与平台核心组件说明

湖仓一体是最近几年非常流行的现代大数据架构,目前它已经成为设计数据平台架构的首要选择。在本文中,我将介绍与数据架构、数据平台及其核心组件相关的基本概念,以及数据架构是如何帮助构建数据平台的。然后,我将解释为什么需要像 Lakehouse 这样的新架构模式、Lakehouse 基础知识、其特征以及使用 Lakehouse 架构实现数据平台的好处。数据平台是使用所选技术堆栈实现数据架构的最终结果,是定义我们要构建的系统的蓝图。

2024-04-17 18:39:35 1020

原创 Apache Paimon 流式湖仓介绍说明

Apache Flink 自诞生以来经历了重大演变,如今,它不仅充当批处理和流数据处理的统一引擎,而且为迈向新时代铺平了道路:流式数据湖。Apache Flink 的概念是动态表,与数据库中的物化视图类似,但是,动态表不能直接查询,因此社区提出使用中间表进行查询,就演变出了 Paimon。

2024-04-15 23:22:57 757

原创 数据湖技术选型——Flink+Paimon 方向

本文结合 Flink 对几大数据湖选型进行了对比,最终选择使用 Flink + Paimon 技术栈。

2024-04-15 23:20:32 841

原创 OLTP 与 OLAP 系统说明对比和大数据经典架构 Lambda 和 Kappa 说明对比——解读大数据架构(五)

本文我们将研究不同类型的大数据架构设计,将讨论 OLTP 和 OLAP 的系统设计,以及有效处理数据的策略包括 SMP 和 MPP 等概念。然后我们将了解经典的 Lambda 架构和 Kappa 架构。

2024-04-14 16:55:51 872 1

原创 大数据存储解决方案和处理流程——解读大数据架构(四)

在数字时代,数据已成为公司的命脉。但是,仅仅拥有数据是不够的,数据真正的价值在于如何有效地管理、存储和处理。管理数据的组件就像复杂机器中的齿轮,每个都有自己的职责,但又同步工作实现共同的目标。本文将从一些最实用的存储解决方案开始说起,包括数据集市、可实操的数据存储方案和数据中心。以及有效管理和利用数据所涉及的广泛流程,还会讨论主数据管理数据虚拟化数据目录和数据市场等概念。

2024-04-14 11:57:14 943

原创 数据湖概述与层级和文件夹划分总结——解读大数据架构(三)

本文对数据湖进行了概述,讨论了什么叫数据湖以及通过与传统数据仓库对比,说明了为啥要选择数据湖,数据湖的好处是什么。数据湖的构建与传统的数据仓库的构建方式不同,数据湖采用的是自下而上的构建方式,这种构建方式可以使不同源数据快速入湖,第一时间挖掘数据的价值。同时我们也讨论了数据湖在逻辑上的层级划分,以及在物理上的文件夹的结构改如何划分。

2024-04-13 15:23:26 933

原创 大数据架构之关系型数据仓库——解读大数据架构(二)

本文对关系型数据仓库(RDW)进行了简要的介绍说明,包括什么是关系型数据仓库,以及为什么要使用关系型数据仓库,其优缺点有哪些,如何增量更新数据等,最后还讨论了关系型数据仓库是否会消失的问题,以及哪些人会继续使用关系型数据仓库。关系型数仓(RDW是集中存储和管理从多个数据源复制的大量结构化数据的地方,用于历史和趋势分析报表,以便公司可以做出更好的业务决策。之所以称为关系型,是因为它基于关系模型,这是一种广泛使用的数据库数据表示和组织方法。在关系模型中,数据被组织成表(也称为关系)。

2024-04-12 12:26:12 1752

原创 大数据架构的演变与多种大数据架构类型说明——解读大数据架构(一)

在搭建和使用大数据组件前,预先投入时间设计和构建正确的数据架构绝对至关重要。如果在前期没有设计正确的数据架构就开始实施方案,在后期想更改架构设计是十分困难的。但是又不存在放之四海而皆准的架构,架构没有好坏之分,只有合适与不合适之分,需要根据具体的情况选择最合适的架构。但是好在目前已经有很多成熟的数据架构方案,本文主要简单介绍多种数据架构类型:关系数据仓库、数据湖、现代数据仓库、数据网络、数据湖仓和数据网格。

2024-04-12 00:17:16 1240

原创 Spark 应用程序优化和调优总结

本文总结了 Spark 中比较重要和常用的调优手段,包括设置并优化 Spark 程序的默认配置,来改进大型任务的工作负载和并行度,从而减少 Spark executor 内存不足的问题。以及如何使用适当的缓存和持久化策略来增加对常用数据集的访问速度。还有说明了在操作复杂聚合时常用的两种连接方式,以及如何设置合理的排序键来进行分桶,尽量减少 shuffle 操作等优化手段。

2024-04-11 08:50:59 1054

原创 通过 Spark SQL 和 DataFrames 与外部数据源交互

Spark 和 Hive 都会使用到的 UDF 函数通过 JDBC 连接各种外部数据源简单和复杂的数据类型和各种高阶运算符还将了解使用Spark SQL查询Spark的一些不同工具,例如Spark SQL shell、Beeline和Tableau。本文探讨了Spark SQL如何与外部组件接口。我们讨论了创建用户定义函数,包括Pandas udf,并提供了一些执行Spark SQL查询的选项(包括Spark SQL shell、Beeline和Tableau)。

2024-04-09 17:37:47 1151

原创 通过 Spark SQL 和 DataFrame 操作表和多种内部数据源总结

本文将探讨 Spark 中 Spark SQL 接口是如何与其他外部组件交互的。为 Spark 上层结构化 API (DataSet, DataFram)提供查询引擎可以读写各种结构化格式的数据(如JSON、Hive表、Parquet、Avro、ORC、CSV)。允许我们使用JDBC/ODBC连接器从外部商业智能(BI)数据源(如Tableau, Power BI, Talend)或rdbms(如MySQL和PostgreSQL)查询数据。

2024-04-09 17:35:06 1173

原创 Spark 的结构化 APIs——RDD,DataFrame, Dataset, SparkSQL 使用和原理总结

在本文中,我们将探索 Spark 的结构化 APIs(DataFrames and Datasets)。我们还将看下 Spark SQL 引擎是如何支撑高级的结构化 APIs 的。当Spark SQL在早期的Spark 1.x 中首次引入时, 随后是DataFrames继承了Spark 1.3中SchemaRDDs,此时我们第一次看到了Spark中的结构化 API。

2024-04-03 06:00:00 950

原创 Spark 部署与应用程序交互简单使用说明

在本章中,我们介绍了开始使用Apache Spark所需的三个简单步骤:下载框架,熟悉Scala或PySpark交互shell,掌握高级Spark应用程序概念和术语。我们快速概述了使用转换和操作来编写Spark应用程序的过程,并简要介绍了使用Spark UI来检查所创建的job、stage和task。最后,通过一个简短的示例,展示了如何使用高级结构化api来告诉Spark要做什么——在下一篇文章我将更详细地介绍这些api。

2024-04-02 14:46:54 1246 2

原创 Spark 起源发展与项目架构说明

本文主要讲解 Spark 的起源及其基本理念,Spark 项目的主要组件及其分布式体系结构。

2024-04-02 09:31:45 954

原创 构建&操作可靠的数据流系统

在流式架构中,任何对非功能性需求的漏洞都可能导致严重后果。如果数据工程师没有将可伸缩性、可靠性和可操作性等非功能性需求作为首要考虑因素来构建系统,他们将花费大量时间来处理问题和保持系统运行。如果你没有将这些“ility”作为系统的第一类公民来构建,你将支付高昂的运营成本。要构建可靠的流式数据管道,可以将流式管道概念化为一系列事务性链路。这些链路通过 Kafka 主题连接,每个主题都提供事务性保证。一旦将这些链路组合起来,整个管道就会是事务性的。

2024-03-31 06:15:00 1770

原创 DolphinScheduler on k8s 云原生部署实践

1. DolphinScheduler 的高效云原生部署模式,比原始部署模式节省了95%以上的人力资源和工作时间,提升了部署效率和成本效益。2. 通过集成 GitOps 技术,我们提升了 DolphinScheduler 的 DevOps 管理能力,改善了软件交付效率和安全审计能力。3. 通过集成新的云原生技术,我们为 DolphinScheduler 增加了水平扩展、健康探测和滚动部署等功能,提升了其灵活性和适应性。4. 将 Prometheus 等可观测性技术整合到基础设施和服务网格中,显著提升了

2024-03-31 06:00:00 1268 2

原创 位置_分布式处理和数据的MVA考虑——可持续架构(七)

采用云技术很容易让团队以为不需要担心程序和数据在分布式上带来的问题,但在某些方面,它使问题变得更加困难,因为在云中更难以看到真正发生的事情。云让团队误以为计算资源是由一个巨大的均匀池组成的,但实际上,在表面下始终有物理硬件和软件运行,就像隐藏的浅滩,团队必须穿过它们航行。考虑数据和进程分布问题将帮助他们找到正确的方向。

2024-03-30 06:15:00 933

原创 拆分巨石:将MVPS和MVAS应用于遗留应用程序——可持续架构(六)

MVP 和 MVA 的概念不仅适用于新应用程序;它们提供了一种新颖的方式来审视对遗留系统的范围变更,以防止过快地承担过多的变化 - 参见图1。MVA 可以帮助组织评估和更新其技术标准,通过展示新技术如何真正对支持 MVP 至关重要。创建 MVA 可以帮助团队评估哪些遗留系统的部分现在需要现代化,哪些部分可以等待。遗留应用程序,由于其经常是使命关键的,需要特别关注可持续性。最后,有必要记住,今天的遗留应用程序在很多情况下曾经是闪亮而新颖的。将 MVA 视为每个新发布的一部分有助于保持应用程序的新鲜度。

2024-03-30 06:00:00 904

原创 最小可行架构实践:创建家庭保险聊天机器人——可持续架构(四)

我们之前的文章[最小可行产品需要最小可行架构](https://blog.csdn.net/qq_42586468/article/details/137111728?spm=1001.2014.3001.5501)探讨了最小可行架构(MVA)的概念。本文探讨了如何运用最小可行架构概念,以一个虚构的例子——一个与传统保险系统(如保单管理系统)以及可能在企业外部的其他数据源(如重建成本数据、房屋估价)进行交互的聊天机器人——来回答房主可能对其保单和保险范围感兴趣的问题。为了说明问题,我们将专注于涉及住宅重建成

2024-03-29 06:00:00 756

原创 架构框架、模式和策略不能代替你自己做决定——可持续架构(五)

在之前的文章中,我们探讨了决策是构建软件系统的基础。在软件架构:可能和你想的不太一样一文中,我们认为软件架构是关于捕获决策,而不是描述结构;在为什么你应该关注软件架构一文中,我们指出,对开发团队正在做出的隐含架构决策有更深入的了解,并迫使这些决策被明确地做出,可以帮助他们利用从他们的迭代中获得的经验数据做出更好、更明智的决策。团队将做出的最重要的架构决策之一是他们将使用的框架、采用的模式和使用的架构策略。对每种选择的优劣考虑将塑造团队做出的决策以及系统的最终架构。

2024-03-29 06:00:00 1476

原创 最小可行产品需要最小可行架构——可持续架构(三)

MVP(最小可行产品)不仅需要考虑产品的市场可行性,还需要考虑其技术可行性,以便随着时间的推移进行维护和适应不断变化的需求。MVP并不局限于初创企业的背景,因为每个应用程序都有一个可以视为MVP的初始发布版本,它们可以成为产品开发战略的有用组成部分。将MVA(最小可行架构)作为MVP的一部分创建有助于团队评估技术可行性,并为产品提供一个稳固的基础,可以随着产品的发展而进行调整。公开透明的架构决策有助于组织更好地理解为何会做出某些选择,从而帮助他们更好地决定如何使产品适应不断变化的市场条件和不断发展的客户需求

2024-03-28 14:55:29 748

原创 你为什么需要关心软件架构——可持续架构(二)

在长达二十年的“大量预先设计”与敏捷实践之间的冲突中,软件开发人员一直在努力寻找这两种方法之间的有意义的折衷方案,并倾向于避开有意识的架构重点活动,而更多地采用从自组织团队中涌现出的架构设计。因此,他们经常认为软件架构并不那么重要。对他们正在做出的隐含决策有更深的认识,并迫使这些决策被明确地做出,可以帮助开发团队更好地利用他们从迭代中获得的经验数据,做出更加明智、更加知情的决策。现代架构实践,如持续架构和进化架构,为使架构决策更加明确提供了工具,使开发人员能够交付更具可持续性的软件产品。

2024-03-28 14:42:44 1104

原创 软件架构:可能和你想的不太一样——可持续架构(一)

很多公司都有架构委员会,这些人很多都与开发无关,要想保证我们的应用软件拥有弹性并且可以持续发展,必须将软件架构的控制权从这些人手中移交至真正实施的人手中:即开发人员。软件架构的重点是做出决策而不是描述静态的结构设计。对于一个敏捷团队来说,架构是整个团队的表现,是每个人的参与付出,这也意味着架构师对于敏捷团队来说并不仅仅是一个个人角色。架构并不是在一开始设计好就是一成不变的,它应该是随着时代与技术的发展,而去不断调整和选择新的技术方案,从而是软件质量不断提升。

2024-03-28 14:36:18 1571

原创 superset 二开增加 flink 数据源连接通过flink sql 查询数据

superset 目前不支持 flink 数据源连接,通过 flink sql 查询底层存储的数据,本文章总结了二开 superset 支持 flink 数据源连接,通过 flink gatway 执行 flink sql, 需要保证 flink集群是正常运行的。

2024-03-22 16:59:57 989

原创 Pycharm 调试 superset 源码配置(远程调试)

superset 的源码调试方式还是比较简单的,容易出问题的步骤应该就是环境安装了,最好是有 vpn,前后端都启动成功后,我们只需要在 Pycharm 中打断点就可以调试了。superset 的目录结构还是比较清晰的,我们需要调试哪个模块到对应的目录下去找到对应的视图函数就行了。后边会总结下superset 前端功能模块对应后端代码位置,以及源码说明,使用第三方登录验证 superset 源码改造等。

2024-03-22 16:52:43 1000

原创 Hive 中的数据模型分析

Hive 可以说是 Hadoop 生态中比较坚挺的一个组件了,在大数据架构飞速发展的今天,各种组件也是层出不穷,随着k8s 云原生的发展,跟不上云原生脚步的组件也必将被淘汰。Hive 也逃脱不了被 SparkSQL 替代的命运,但是学习掌握 Hive 的数据模型还是很有必要的。技术发展之快,让人不得不感慨一将功成万骨枯!

2023-07-07 18:03:36 710

原创 列式存储工具 HBase 总结——大数据组件

HBase是一种开源的、分布式的非关系型数据库,它构建在Apache Hadoop之上。HBase被设计用于存储和处理大规模的结构化数据。本文就是对 HBase 的架构设计的总结。

2023-07-05 18:13:42 1171

原创 airflow metrics 监控部署(grafana+ prometheus)

本文主要总结了 airflow metrics 监控部署的方案以及个人经验分享。指标监控采用的是业界比较成熟的 prometheus + grafana 的方案。

2023-07-04 11:09:29 1607 2

原创 Go 语言精进之路——错误优雅处理

Go 语言的错误处理是其经典设计,但是 Go 语言初学者往往为太多的错误处理感到困惑,为什么 Go 不能像其他语言一样可以异常捕获。这其实是 Go 语言的设计哲学,在 Go 中错误就是值,需要显示的处理,这样代码才能更加健壮,开发人员才能对代码更加有信心。我们不需要额外的语言机制去处理它们,而只需利用已有的语言机制,像处理其他普通类型值一样去处理错误。这也决定了这样的错误处理机制让代码更容易调试(就像对待普通变量值那样),也更容易针对每个错误处理的决策分支进行测试覆盖;

2023-06-30 13:08:58 578

原创 Go 语言精进之路——Go 中常见并发模式总结

本文主要总结了 Go 中使用 goroutine 和 channel 以及 select 实现的几种常用并发模式,包括优雅退出,取消超时,管道模式等。附:封面图片在文章末尾哟~ 😊

2023-06-30 10:23:13 648

原创 Go 语言精进之路——Go语言代码块与作用域理解

如果不深入理解 Go 语言的代码块作用域,程序将产生我们无法理解的行为,比如说在循环中创建 goroutine func, 为什么需要传递参数至 goroutine 内部,否则所有的 func 使用的变量参数都是循环的最后一个值。

2023-06-29 19:51:55 496

原创 airflow 自定义 operator 开发

airflow 为了保证系统功能的单一性和灵活性,并没有提供过多 operator,而是以插件的形式对外提供,用户根据自己的需要开发符合自身业务的 operator, 本文主要讲了在生产中operator 的使用需求场景,以及开发流程。

2023-06-19 19:56:18 680

原创 airflow v2.6.0 Docker Compose 部署

本文主要记载 airflow 容器化部署步骤以及需要注意的事项。

2023-06-19 19:49:02 1741

原创 airflow v2.6.0 k8s 部署(Rancher)

将 airflow 部署在 k8s 上有多种部署方式,官方也提供了对应的 k8s executor, 但是本文介绍的是使用 CeleryExecutor 部署 k8s 的方式,分别将 scheduler, webserver, flower, worker 部署在 k8s 上。通过 Rancher 部署 yaml 的形式,使部署方式简单了很多,也可以通过命令的方式部署。

2023-06-19 19:45:48 2012 1

原创 八、基于 Istio 的高级流量管理

envoy 是一个开源的高性能代理服务,可以作为独立的网络代理,也可以集成到服务网格(例如 Istio)中,用于处理服务之间的通信。目前社区比较流行的网络代理软件如下:还包括后起之秀 Istio, Istio 直接将 Envoy 作为其网络代理组件,Istio 服务控制面板, Envoy 负责数据面。本文简单总结了下 Istio 的使用,分享Istio 的强大之处。

2023-04-24 08:44:31 797 1

大数据概述包括: 大数据绪论,Hadoop简介,数据库技术历史和发展,分布式计算架构

大数据概述包括: 大数据绪论,Hadoop简介,数据库技术历史和发展,分布式计算架构

2023-06-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除