- 博客(430)
- 问答 (4)
- 收藏
- 关注

原创 【2024年度总结】多元发展 积极向上 不断前行 无限进步 --- 致我的朋友们
(配图按时间顺序排列)学习、记录、读书、AI、游戏、运动、拍照、人像、无人机、聚餐、血糖、星空、拉花、大数据、博客、冷水澡、风景、3D打印…: ) 文案抄抄改改 心是真的大河川流不息,不断迎来送往。对我来说,让我开心的不是废话本身,而是被你认真回复认真对待的感觉,在这日常琐碎的细节里,好像每句话的言外之意都是我喜欢你。希望你可以迈出走向我的一步,剩下的九十九步我会毫不犹豫的奔向你,这次,下次,以后。愿将这份力量传递给你们,祝大家新年快乐!如果你愿意的话,我们一起无限进步!
2024-12-31 09:43:00
3437

原创 【2023年度总结】 何其有幸 年岁并进 一元复始 万象更新
多个日夜,深夜清晨,我都在想到底自己适合不适合在这里。当你在技术团队中,每天听到大家谈论的都是房子车子、一地鸡毛时,我常常发呆,我到底想要的是什么?无数新东西,两天一个新工具,三天一个新技术,能让我都感觉到学不动了。随着学会的东西陡增,信息爆炸,也看到了自己无知的一面。早起、拍照、运动、读书、学习、认识了很多厉害的朋友,尝试影响周围的人。最后我想说,人生如棋,无限重复只找到局部最优,不断的寻求变数,下一个也许就是全局最优解。☀️ 何其有幸,年岁并进,长安常安。祝我,祝你,也祝大家。
2024-01-01 10:28:52
24915
5
原创 大数据-270 Spark MLib - 基础介绍 机器学习算法介绍 WordCount 代码编写 三个测试案例
SparkMLib 是Spark的机器学习库(Machine Learning),封装了一些通用机器学习算法和工具,便于我们开展机器学习实践。常用算法:包括类、回归、聚类和协同过滤特征化工具:包括特征提取、转换、降维和选择工具管道:用于构建、评估和调整机器学习管道的工具持久化工具:保存和加载算法、模型、管道其他工具:线性代数、统计、数据处理等。
2025-03-10 14:18:43
5981
原创 大数据-269 实时数仓 - DIM DW ADS 层处理 Scala实现将数据写出HBase等
DW(Data WareHouse 数据仓库层),包含 DWD、DWS、DIM 层数据加工而成,主要完成数据架构与整合,建立一致性的维度,构建可复用的面向分析和统计的明细事实表,以及汇总公共粒度的指标。基于 DW 数据,整合汇总成主题域的服务数据,用于提供后续的业务查询等。在分析交易过程时,可以通过卖家、买家、商品和时间等维度描述交易发生的环境,所以维度的作用一般是查询约束、分类汇总以及排序等。转换 area 表 到 地区ID、地区的名字、城市ID、城市的名字、省份 ID、省份的名字 到 HBase 中。
2025-01-03 10:42:57
10269
原创 大数据-268 实时数仓 - ODS层 将 Kafka 中的维度表写入 DIM
在 Kafka 中写入维度表(DIM)通常涉及将实时或批处理数据从 Kafka 主题(Topic)读取,并根据数据流中的信息更新维度表(DIM),这在数据仓库或数据湖的 ETL(提取、转换、加载)过程中非常常见。维度表(DIM)存储的是与业务数据相关的维度信息,例如客户、产品、地理位置等,用于支持 OLAP(联机分析处理)查询。
2025-01-03 10:36:34
9532
原创 大数据-267 实时数仓 - ODS Lambda架构 Kappa架构 核心思想
在互联网企业中,常见的 ODS 数据有业务日志数据(Log)和业务 DB 数据两类,对于业务 DB 数据来说,从 MySQL 等关系型数据库的业务数据进行采集,然后导入到 Hive 中,是进行数据仓库生产的重要环节。它的作用是存储大量的结构化数据,并能进行频繁和可重复的分析。为了彻底解决这些问题,我们逐步实时 binlog 采集进行实时处理,binlog 是 MySQL的二进制日志,记录了 MySQL 中发生的所有数据的变化,MySQL 集群自身的主从同步就是基于 binlog 做的。
2025-01-02 17:20:15
7925
原创 大数据-266 实时数仓 - Canal 对接 Kafka 客户端测试
Canal 是阿里巴巴开源的 MySQL binlog 增量订阅与消费平台。它模拟 MySQL 的主从复制机制,通过解析 MySQL 的二进制日志(binlog),实现数据库变更的数据捕获(CDC, Change Data Capture)。数据同步:支持将数据库的变更数据同步到其他数据源或消息系统,如 Kafka、RocketMQ、Elasticsearch 等。实时性:基于 binlog 的解析和订阅,能够实现毫秒级的数据变更捕获。分布式架构:支持集群部署,满足高可用性和高吞吐量需求。
2025-01-02 17:14:12
6384
原创 大数据-265 实时数仓 - Canal 部署安装 启动服务 常见问题解决
Canal 是阿里巴巴开源的数据同步工具,用于 MySQL 数据库的增量日志解析和同步。它模拟 MySQL 从库协议,获取主库的 binlog 日志,从而实现实时数据捕获和传输,常用于数据迁移、缓存更新和搜索引擎同步等场景。Canal 集群模式通常结合 ZooKeeper 实现分布式协调,保证高可用性和负载均衡。独立实例模式:多个 Canal 实例独立运行,适合小规模场景。HA 模式:基于 ZooKeeper 实现主备切换,提高可靠性。
2024-12-31 09:09:21
5859
原创 大数据-264 实时数仓 - Canal MySQL的binlog研究 存储目录 变动信息 配置MySQL
MySQL 的二进制日志(Binary Log,简称 binlog)是 MySQL 数据库中的一种日志文件类型,它记录了对数据库执行的所有更改操作(不包括 SELECT 和 SHOW 等查询操作)。它主要用于数据恢复、复制和审计等场景。
2024-12-30 12:33:22
5754
原创 大数据-263 实时数仓 - Canal 工作原理 工作流程 MySQL Binglog基本介绍
Canal 是一款用于 MySQL 数据库 binlog 增量订阅和消费的开源工具。它主要用于解决数据同步和分布式事务问题,支持将数据库变更同步到其他系统中,比如消息队列、大数据平台等。Master 主库将改变记录写进二进制 binary log 中Slave 从库向 MySQL Master 发送 DUMP 协议,将 Master 主库的 binary log events 拷贝到它的中继日志(relay log)。Slave 从库读取并重做中继日志中的事件,将改变的数据同步到自己的数据库。
2024-12-30 08:52:57
5542
原创 Java-38 深入浅出 Spring - AOP切面增强 核心概念 相关术语 Proxy配置
上图描述的就是未采用的 AOP 思想的设计的程序,当我们红色框中圈定的方法时,会带来大量的重复劳动,程序中充斥着大量的重复代码,使我们程序的独立性很差,而下图中采用了 AOP 思想涉及的程序,它把红框部门的代码抽取出来的同时,运用动态代理技术,在运行期间对需要使用业务逻辑方法进行增强。改变代理的配置,Spring 在选择创建代理的时候,会根据被代理对象实际情况来选择的,被代理对象实现了接口,则采用基于接口的动态代理,当被代理对象没有实现任何接口的时候,Spring 会自动切换到基于子类的动态代理方式。
2024-12-29 09:39:41
4515
1
原创 大数据-262 实时数仓 - Canal 同步数据 介绍背景原理与优势 拉链表 实时统计
阿里巴巴 B2B 公司,由于业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,从 2010 年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅、消费的业务。Canal是用 Java 开发的基于数据库增量日志解析,提供增量数据订阅、消费的中间件。目前,Canal主要支持了 MySQL 的 Binlog 解析,解析完成后才利用 Canal Client 用来处理获得相关数据。
2024-12-29 09:03:35
6545
原创 Java-37 深入浅出 Spring - IoC容器体系 循环依赖 原型Bean 原型作用域 Lazy ObjectFactory
循环依赖是循环引用,也就是两个或者两个以上的 Bean 互相持有对方,最终形成环:注意,这里不是函数的循环调用,是对象的相互依赖关系,循环调用其实是一个死循环,除非有终止条件。构造器的循环依赖(构造器注入)Field 属性的循环依赖(set 方法注入)其中,构造器的循环依赖无法解决,只能抛出:BeanCurrentlyInCreationException 的异常,在解决属性循环以来的问题的时候,Spring 采用的是提前暴露对象的方法。
2024-12-28 20:54:58
4809
原创 大数据-261 实时数仓 - 业务数据库表结构 交易订单、订单产品、产品分类、商家店铺、地域组织表
实时数仓是一种数据仓库系统,区别于传统批处理数仓,它强调低延迟、高吞吐和高可用性。实时数仓能够处理流式数据或近实时的数据流,使企业能够及时监控关键指标并做出决策。实时数仓是现代企业实现实时决策和分析的重要工具,它通过低延迟、高并发的特点满足企业对时效性数据的需求。尽管实时数仓的搭建与维护具有一定的复杂性,但其在业务分析、风控管理和用户行为分析等方面具有显著优势。随着技术的发展,实时数仓将会更加智能化、云原生化,为企业带来更高的竞争力。
2024-12-28 11:45:27
6034
原创 Java-36 深入浅出 Spring - IoC容器体系 BeanFactory过程分析 Bean Lazy-Init
Resource 定位:指定 Beandefinition 的资源定位过程,就是 JavaBean 信息的 XML 文件,将其封装为 Resource 对象。BeanDefinition 载入:把用户定义好的 JavaBean 表示为 IoC 容器内部的数据结构,这个容器内部的数据结构就是 BeanDefinition。
2024-12-27 21:14:58
8111
2
原创 大数据-260 实时数仓 - 项目背景与需求 实时数仓架构 需求分析 技术选型 逻辑架构
数据实时处理能力成为企业提升竞争力的一大因素,最初阶段主要采用来一个需求,编写一个实时任务的方式来处理实时数据,随着需求的增多,计算任务也相对增多,并且不同任务的开发人员不同,导致开发风格差异化,该阶段的实时数据处理缺乏统一的规划,代码风格差异化严重,在维护成本和开发效率上有很大障碍。CDH:最成型的发型版本,拥有最多的部署案例,提供强大的部署、管理和监控工具,国内使用最多的版本,拥有强大的社区支持,当遇到问题时,能够通过社区、论坛等网络资源快速获取解决方法。数据、任务和资源三个角度去管理 集群资源。
2024-12-27 10:27:03
6365
原创 Java-35 深入浅出 Spring - IoC容器体系 Bean源码 断点分析 IoC容器实例化分析
创建 IoC 容器之后,容器会加载 Bean 定义,这些定义通常是通过配置文件(XML 配置文件或注解)提供的。容器会解析这些配置,加载所有 Bean 的元数据。Spring 支持 XML 配置文件、注解配置以及 Java 配置类的方式。XML 配置:解析 XML 文件中的 标签,获取 Bean 的名称、类型、属性、构造函数参数等信息。注解配置:通过扫描指定的包或类,查找如 @Component、@Service、@Repository、@Configuration 等注解标记的类。
2024-12-25 09:18:23
4742
原创 大数据-259 离线数仓 - Griffin架构 修改配置 pom.xml sparkProperties 编译启动
用户可以自定义规则,使用 JSON 或其他标准格式来描述数据质量的各项要求。这些规则能够对数据进行周期性检查,并在发现问题时发出警报或进行自动修复。Apache Griffin 是一个开源的数据质量管理框架,旨在帮助组织在大数据环境中监控和提高数据质量。它提供了一套用于定义、度量和报告数据质量标准的工具,支持批处理和流处理数据。Apache Griffin 的核心功能包括数据质量的检测、评估、监控和报告,适用于大数据处理平台,如 Hadoop、Spark、Flink 等。
2024-12-25 09:02:18
6816
原创 Java-34 深入浅出 Spring - IoC容器体系 Bean生命周期 PostProcessor applicationContext
IoC(Inversion of Control,控制反转)是一种设计原则,指的是将对象的控制权从程序中转移到外部容器或框架中。传统的面向对象编程(OOP)中,类的实例化、依赖关系管理等通常由程序代码显式地控制,而在 IoC 中,容器负责这些工作。IoC 使得类的依赖关系从硬编码转化为动态注入,从而增强了系统的可扩展性、可维护性以及解耦性。在 IoC 中,控制反转的核心思想是:系统中不再由应用程序显式地创建对象,而是通过容器来创建和管理对象。容器负责控制对象的生命周期,并在需要时为对象提供依赖。
2024-12-24 10:12:28
5198
原创 大数据-258 离线数仓 - Griffin架构 配置安装 Livy 架构设计 解压配置 Hadoop Hive
Livy 是一个用于 Apache Spark 的 REST 接口,旨在简化 Spark 作业的提交和管理,特别是在大数据处理场景中。它的主要功能是通过 REST API 与 Spark 集群进行交互,允许用户提交作业、执行代码片段并查询作业的状态和结果,而不需要直接与 Spark 的底层架构交互。简化 Spark 作业提交:用户可以通过 HTTP 请求向 Livy 发送 Spark 作业,而不需要直接使用 spark-submit命令。
2024-12-24 09:36:33
6495
原创 Java-33 深入浅出 Spring - FactoryBean 和 BeanFactory BeanPostProcessor
BeanFactory 接口是容器的顶级接口,定义了容器的一些基础行为,负责生产和管理 Bean 的一个工厂,具体使用它下面的子接口类型,比如 ApplicationContext,此处我们重点分析:FactoryBeanSpring 中 Bean 有两种,一种普通 Bean,一种是工厂 Bean(FactoryBean),FactoryBean 可以生成某一个类型的对象实例,也就是我们可以借助它来自定义 Bean 的创建过程。
2024-12-23 10:48:48
3438
原创 大数据-257 离线数仓 - 数据质量监控 监控方法 Griffin架构
Apache Griffin是一个开源的大数据质量解决方案,它支持批处理和流处理两种模式的数据质量检测方式。可以从不同的维度(如离线任务执行完毕后检查源端和目标端的数据质量是否一致,源表数据值空值等)度量数据资产,从而提升数据的准确度、可信度。数据质量监控通常结合自动化工具和人工审查,利用数据质量管理平台进行实时监控,生成报告并触发警报,以便及时纠正问题。这些工具和方法帮助企业确保其数据可以用于可靠的分析和决策。
2024-12-23 10:31:49
5699
原创 Java-32 深入浅出 Spring - IoC 基础 启动IoC 纯注解方式 SpringConfig web.xml
现在,我们将移除 annotation-config 和 component-scan ,将这些也通过 Java 的类和注解来实现。改造 XML + 注解的模式,将 XML 中遗留的内容全部迁出,最终移除 XML。这里对于数据库的链接,也交给 Spring 进行管理了。细节就不过多展示了,我这边测试了,程序一切正常。启动的配置类中,这里通过注解的方式进行扫描。
2024-12-21 09:04:37
3407
原创 大数据-256 离线数仓 - Atlas 数据仓库元数据管理 正式安装 启动服务访问 Hive血缘关系导入
元数据(MetaData)狭义的解释是用来描述数据的数据。广义来看,除了业务逻辑直接读写处理的那些业务数据,所有其他用来维持整个系统运转所需的信息、数据都可以叫做元数据,如数据库中表的Schema信息,任务的血缘关系,用户和脚本、任务的权限映射关系信息等。管理元数据的目的,是为了让用户能够更高效的使用数据,也是为了平台管理人员能更加有效的做好数据的维护管理工作。但通常这些元数据信息是散落在平台的各个系统,各种流程中,它们的管理也可能或多或少可以通过各种子系统自身的工具,方案或者流程逻辑来实现。
2024-12-21 08:57:20
5691
原创 Java-31 深入浅出 Spring - IoC 基础 启动IoC XML与注解结合的方式 配置改造 applicationContext.xml
这里需要注意,按理来说,我们应该在 WzkServlet 上也写 Compont 和 Autowired 来注入我们的 WzkTransferService,但是实际上呢,Component 和 Servlet 注解是冲突的。这个目的是让 Spring 接管我们的 Bean,而此时,我们可以将这一系列的 Bean 配置都移除出去,使用注解的方式来满足我们的 Bean 管理。接下来我们将刚才的 纯 XML 的模式的代码,改造成 注解 + XML 的方式,解放出一定的 XML 来。
2024-12-20 11:34:02
6167
2
原创 大数据-255 离线数仓 - Atlas 数据仓库元数据管理 数据血缘关系 元数据
Atlas是Hadoop平台元数据框架:Atlas是一组可扩展的核心基础治理服务,使企业能够有效,高效的满足Hadoop中合规性要求,并能与整个企业数据生态系统集成Apache Atlas为组织提供了开放的元数据管理和治理功能,以建立数据资产的目录,对这些资产进行分类和治理,并为IT团队、数据分析团队提供围绕这些数据资产的协作功能。Apache Atlas 是一个开源的数据治理和元数据管理框架,最初由 Hortonworks 开发,后来成为 Apache 基金会的项目。
2024-12-20 09:35:50
5259
原创 Java-30 深入浅出 Spring - IoC 基础 启动IoC 纯XML启动 Bean、DI注入
在实际开发中,我们使用的对象有些时候并不是直接通过构造函数可以创建出来的,它可能在创建的过程中会有很多额外的操作,此时会提供一个创建对象的方法,恰好这个方法是 static 修饰的。在实际的开发过程中,尤其早期我们没有使用 Spring 框架来管理和创建对象,但是设计的过程中,使用了工厂模式进行解耦,那么当接入 Spring 之后,就可以采用这种方式了。构造函数注入,顾名思义,就是利用构造函数实现对类成员的赋值,它的使用要求是,类中提供的构造函数参数个数必须和配置的参数个数一致,且数据类型匹配。
2024-12-19 09:59:01
8743
2
原创 大数据-254 离线数仓 - Airflow 任务调度 核心交易调度任务集成
Apache Airflow 是一个开源的任务调度和工作流管理工具,用于编排复杂的数据处理任务。最初由 Airbnb 开发,于 2016 年捐赠给 Apache 软件基金会。Airflow 的主要特点是以代码方式定义任务及其依赖关系,支持任务的调度和监控,适合处理复杂的大数据任务。
2024-12-19 09:41:10
4908
原创 Java-29 深入浅出 Spring - IoC 基础 启动IoC容器的方式 Java方式与Web(XML、配置)方式
BeanFactory 是 Spring 框架中 IoC 容器的顶层接口,它只是用来定义一些基础功能,定义一些基础规范,而 ApplicationContext 是它的一个子接口,所以 ApplicationContext 是具备 BeanFactory 提供的全部功能。通常,我们称 BeanFactory 为 SpringIoC 容器,ApplicationContext 是容器的高级接口,比 BeanFactory 要拥有更多的功能,比如说国际化支持和资源访(XML、Java 配置类)等等。
2024-12-18 09:28:27
10553
4
原创 大数据-253 离线数仓 - Airflow 任务调度 核心概念与实际案例测试 Py脚本编写
Apache Airflow 是一个开源的任务调度和工作流管理工具,用于编排复杂的数据处理任务。最初由 Airbnb 开发,于 2016 年捐赠给 Apache 软件基金会。Airflow 的主要特点是以代码方式定义任务及其依赖关系,支持任务的调度和监控,适合处理复杂的大数据任务。
2024-12-18 09:20:01
4955
原创 Java-28 深入浅出 Spring - 实现简易Ioc-04 在上节的业务下手动实现AOP
我们需要在 impl 里 WzkTransferServiceImpl 的 transfer 代码中,随便加入一个异常,比如 用 1 除以 0 这种。注意,这里的 AOP 还不具备扩展能力,只是一个简易的实现,帮助我们更好的实现对事务的控制。代码可能有点长,本来考虑复制片段,但是考虑到全局,不然大家看的比较晕,所以都复制过来了。这里测试,当运行过程中出现问题,需要进行回滚的情况。启动项目进行测试,这里测试顺利执行的情况。
2024-12-17 11:25:00
6054
2
原创 大数据-252 离线数仓 - Airflow 任务调度 Crontab简介 任务集成部署 入门案例
Linux系统是由cron(crond)系统服务来控制的,Linux系统上原本那就有非常多的计划性工作,因此这个系统服务是默认启动的。Linux系统也提供了Linux用户控制计划任务的命令:crontab命令日志文件:ll /var/log/cron*编辑文件: vim /etc/crontab进程: ps -ef | grep crond => /etc/init.d/crond restart作用:任务(命令)定时调度 定时备份等。
2024-12-17 11:15:31
5214
原创 Java-27 深入浅出 Spring - 实现简易Ioc-03 在上节的业务下手动实现IoC
此时我们需要一个 Bean 的管理容器,当我们需要 new 对象的时候,可以直接从容器中获取出来。但是我们需要在程序启动的时候(当然也可以懒加载)就把这些对象初始化出来,所以我们需要 XML 来告诉容器需要加载什么内容。我们虽然已经实现了简易的 IoC,但是对于当前业务来说,我们还需要对事务进行控制,此时需要我们实现一个事务的管理器,将采取和数据库一样,用 ThreadLocal 来进行控制。当然,刚才的代码打印的内容,也说明我们的代码是正常工作的。还有一种写法也是类似的,这样的处理方式也可以顺利执行的。
2024-12-16 16:04:59
2738
原创 大数据-251 离线数仓 - Airflow 任务调度系统 安装部署测试
Apache Airflow 是一个开源的任务调度和工作流管理工具,用于编排复杂的数据处理任务。最初由 Airbnb 开发,于 2016 年捐赠给 Apache 软件基金会。Airflow 的主要特点是以代码方式定义任务及其依赖关系,支持任务的调度和监控,适合处理复杂的大数据任务。
2024-12-16 15:58:18
4851
原创 Java-26 深入浅出 Spring - 实现简易Ioc-02 无IoC与AOP场景下实现业务
控制反转(IoC)是一种设计原则,用于实现组件间的解耦,是面向对象编程中非常重要的概念之一。IoC的核心思想是将程序中对对象的控制权从调用方转移到框架或容器中,使得对象之间的依赖关系由容器来管理。IoC 是现代软件开发中的重要设计理念,通过将控制权反转到容器中,帮助开发者更高效地管理对象的生命周期和依赖关系。它提升了代码的可扩展性和可维护性,是构建健壮软件系统的核心工具之一。实现组件间的解耦,是面向对象编程中非常重要的概念之一。IoC的核心思想是将程序中对对象的控制权从调用方转移到框架或容器中。
2024-12-14 09:11:53
8156
2
原创 大数据-250 离线数仓 - 电商分析 ADS层 与 Airflow 任务调度系统基本介绍
Apache Airflow 是一个开源的任务调度和工作流管理平台,主要用于开发、调试和监控数据管道。Airflow 通过使用 Python 脚本定义任务和依赖关系,帮助用户以编程的方式构建动态的、可视化的工作流。工作流以 Python 脚本定义,称为 DAG(Directed Acyclic Graph,有向无环图)。每个 DAG 包括一组任务及其依赖关系。支持灵活的任务调度,用户可以通过时间间隔、特定时间点等方式定义任务的运行周期。调度器自动根据依赖关系按顺序触发任务执行。
2024-12-14 08:58:09
5844
原创 Java-25 深入浅出 Spring - 实现简易Ioc-01 Servlet介绍 基本代码编写
Servlet 是 Java EE (Java Platform, Enterprise Edition) 技术的一部分,用于创建动态 Web 应用程序。它是一种在服务器端运行的小型 Java 程序,用于处理客户端的请求和生成动态响应(通常是 HTML 页面)。Servlet 的核心作用是扩展服务器的功能,特别是处理基于 HTTP 的请求。
2024-12-13 10:57:16
4425
原创 大数据-249 离线数仓 - 电商分析 DWD层建表与脚本 DWS层建表与脚本
订单表是周期性事实表,为保留订单状态,可以使用拉链表进行处理订单产品表普通的事实表,用常规的方法进行处理(如果有数据清洗、数据转换的需求 ODS=>DWD。如果没有数据清洗、数据转换的需求,保留在ODS,不做任何变化)-3 用户拒收-2 未付款订单-1 用户取消0 等待发货1 配送中2 用户确认收货订单从创建到最终完成,是有时间限制的,业务上也不允许订单一个月之后,订单状态仍然在发生变化。
2024-12-13 10:41:37
5166
原创 Java-24 深入浅出 Spring - 基本概述 发展历史 核心思想 IoC、AOP
Spring 是分层的 FULL-STACK(全栈)轻量级的开源框架,以 IoC 和 AOP 为内核,提供了展现层的 Spring MVC 和 业务层管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和库,已经成为使用最多的 Java EE 企业应用开源框架。
2024-12-12 09:43:41
4529
原创 大数据-248 离线数仓 - 电商分析 商品分类表、地域组织表、商品信息表 维表
首先要确定哪些是事实表、维表。绿色为事实表灰色为维表用什么方式处理维表,每日快照、拉链表?小表使用每日快照表:产品分类表、商家店铺表、商家地域组织表、支付方式表大表使用拉链表:产品信息表。数据库中的数据是规范的(满足三范式),但是规范化的数据给查询带来不便。数据库范式是设计关系型数据库结构时的一套指导原则,目的是为了减少数据冗余、确保数据依赖性合理,并提高数据一致性。然而,遵循范式也有一些潜在的缺点:- 性能问题:高度规范化的数据库可能会导致查询和连接操作变慢,因为需要在多个表之间进行复杂的连接来获取完
2024-12-12 09:30:45
5507
空空如也
Git的基本内容介绍
2024-10-08
大模型对生活和工作的改变
2024-09-28
人工智能时代,程序员如何保持核心竞争力?
2024-09-25
关于#Spark# #Flink#的问题,如何解决?
2024-09-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人