做ppt模板下载网站/南京网站推广排名
大数据开发(离线实时音乐数仓)
- 一、数据库与ER建模
- 1、数据库三范式
- 2、ER实体关系模型
- 二、数据仓库与维度建模
- 1、数据仓库(Data Warehouse、DW、DWH)
- 1、关系型数据库很难将这些数据转换成企业真正需要的决策信息,原因如下:
- 2、数据仓库是面向主题的、集成的(非简单的数据堆积)、相对稳定的、反应历史变化的数据集合,数仓中的数据是有组织有结构的存储数据集合,用于对管理决策过程的支持。
- 2、维度建模
- 1、事实表
- 2、维度表
- 3、星型模型、雪花型模型
- 三、数据仓库的分层
- 1、数据仓库分层设计
- 2、数据仓库分层案例
- 四、项目架构.
- 五、数据来源及采集
- 六、数据仓库模型
- 七、Azkaban
- 八、Superset
- 九、第一个业务:歌曲热度与歌手热度排行
- 1、需求
- 2、模型设计
- 3、数据处理流程
- 4、使用 Azkaban 配置任务流
- 4、使用 SuperSet 数据可视化
- 十、第二个业务:机器详细信息统计
- 1、需求
- 2、模型设计
- 3、数据处理流程
- 4、使用 Azkaban 配置任务流
- 5、使用 SuperSet 数据可视化
- 十一、第三个业务:日活跃用户统计
- 1、需求
- 2、 模型设计
- 3、 数据处理流程
- 4、使用 Azkaban 配置任务流
- 5、使用 SuperSet 数据可视化
- 十二、第四个业务:商户营收统计
- 1、需求
- 2、模型设计
- 3、数据处理流程
- 4、使用 Azkaban 配置任务流
- 十三、第五个业务:地区营收日报统计
- 1、需求
- 2、模型设计
- 3、数据处理流程
- 4、使用 Azkaban 配置任务流
- 十四、第六个业务:实时统计所有用户的 pv,uv
- 1、需求
- 2、数据采集接口及数据生产
- 3、数据处理流程
- 十五、 第七个业务:实时统计歌曲热榜
- 1、需求
- 2、数据采集接口及数据生产
- 3、数据处理流程
一、数据库与ER建模
1、数据库三范式
第一范式:原子性,字段不可分
第二范式:唯一性,一个表只能说明一个事物,有主键,非主键字段依赖主键
第三范式:非主键字段不能相互依赖,不存在传递依赖
2、ER实体关系模型
将事物抽象为“实体”、“属性”、“关系”来表示数据关联和事物描述。
一对一关系、一对多关系、多对多关系。
二、数据仓库与维度建模
1、数据仓库(Data Warehouse、DW、DWH)
1、关系型数据库很难将这些数据转换成企业真正需要的决策信息,原因如下:
1、一个企业中可能有很多管理系统平台,企业数据分散在多种互不兼容的系统中。
2、关系型数据库中存储的数据一般是最基本的、日常事务处理的、面向业务操作的数据,
数据一般可以更新状态,删除数据条目等。
3、对于战略决策来说,决策者必须从不同的商业角度观察数据,关系型数据库只是面向
基本的业务操作。
2、数据仓库是面向主题的、集成的(非简单的数据堆积)、相对稳定的、反应历史变化的数据集合,数仓中的数据是有组织有结构的存储数据集合,用于对管理决策过程的支持。
面向主题:主题是指使用数据仓库进行决策时所关心的重点方面,每个主题都对应一个相应的分析领域,一个主题通常与多个信息系统相关。
数据集成:在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息,这个过程中会有 ETL 操作,以保证数据的一致性、完整性、有效性、精确性。
相对稳定:数据操作主要是数据查询。
反映历史变化:记录企业从过去某一时点(如开始应用数据仓库的时点)到当前的各个阶段的信息。
2、维度建模
实体-关系(ER)建模遵循第三范式,以消除数据冗余为目标的设计技术。维度建模是面向分析,为了提高查询性能可以增加数据冗余,反规范化的设计技术。
1、事实表
1、事实表中每个列通常要么是键值列,要么是度量列。在以上事实表的示例中,“地区 ID”、“产品 ID”、“月份 ID”为键值列,“销售量”、“销售额”为度量列,所谓度量列就是列的数据可度量,度量列一般为可统计的数值列。
2、事实表中一般会使用一个代号或者整数来代表维度成员,而不使用描述性的名称。
3、在事实表中使用代号或者整数键值时,维度成员的名称需要放在另一种表中,也就是维度表。
4、在数据仓库中,事实表的前缀为“fact”。
2、维度表
维度表包含了维度的每个成员的特定名称。
1、“产品名称”是产品维度表中的一个属性,维度表中可以包含很多属性列。
2、维度表中的键属性必须为维度的每个成员包含一个对应的唯一值。
3、在维度表中“产品 ID”类似关系型数据库中的主键,在事实表中“产品 ID”类似关系型数据库中的外键。
4、在数据仓库中,维度表的前缀为"dim"
3、星型模型、雪花型模型
星型模型:所有的维度表都由连接键连接到事实表
雪花型模型:有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上
对于雪花模型,一般符合三范式设计;而星型模型,维度表设计不符合三范式设计,利用冗余牺牲空间来避免模型过于复杂,提高易用性和分析效率。
三、数据仓库的分层
1、数据仓库分层设计
ODS(Operational Data Store)层 - 操作数据层
为了考虑后续可能需要追溯数据问题,因此对于这一层就不建议做过多的数据清洗工作,原封不动地接入原始数据即可。
DW(Data Warehouse)层 - 数据仓库层
将从 ODS 层中获得的数据按照主题建立各种数据模型,每一个主题对应一个宏观的分析领域,数据仓库层排除对决策无用的数据,提供特定主题的简明视图。DW 层又细分为 DWD(Data Warehouse Detail)层、DWM(Data Warehouse Middle)层和 DWS(Data Warehouse Service)层。
数据明细层:DWD(Data Warehouse Detail)
提供更干净的数据,退化维度。
数据中间层:DWM(Data Warehouse Middle)
对通用的维度进行聚合操作,算出相应的统计指标,方便复用。
数据服务层:DWS(Data Warehouse Service)
按照主题划分,如订单、用户等,生成字段比较多的宽表。
DM(Data Mart)层 - 数据集市层
整合汇总成分析某一个主题域的报表数据。
2、数据仓库分层案例
四、项目架构.
五、数据来源及采集
一类是产生的订单数据,会记录到业务数据库。后期直接通过 sqoop 直接抽取 MySQL 中的数据到 HDFS。另外一类是通过 http 请求,上传到专门采集数据的日志服务器上,每天由运维人员将数据打包上传到数据中心平台某个目录下,然后由定时任务定时来执行 Spark 任务拉取数据,上传至 HDFS 中。这里读取压缩数据使用 SparkCore 进行处理,处理之后将数据以 parquet 格式或者 json 格式存储在 HDFS 中即可。
六、数据仓库模型
数据仓库按照主题分为三个主题:用户、机器、内容(歌曲相关、歌手相关)。每个主题下面都有对应的表。数据仓库的设计分为三层,如下:
ODS 层:
外部数据源:网易云爬取歌曲热度数据、歌手热度数据,爬取数据是 json 格式的数据。
内部数据源:主要有 MySQL 和客户端上传 json 数据。MySQL 使用 Sqoop 抽取数据到 HDFS 中,导入 ODS 层。客户端产生日志到客户端服务器,客户端服务器由运维人员每天将数据压缩成包导入到 HDFS。
EDS 层:
负责信息集成、轻度汇总类数据。例如:将 ODS据进行清洗。
以上 ODS 层和 EDS 层使用 Spark 代码处理数据,然后利用 SparkSQL 读取 ODS 层数据,保存到 Hive 的 EDS 层。
DM 层:
DM 层的数据有一部分是存储在 Hive 表中,或者保存分析结果到 MySQL、HBase。
EDS 层数据是 parquet 格式的数据,放在 Hive 的主要原因是后期使用 Kylin 查询一些业务,数据放 MySQL 的都是结果数据,放在 HBase 的原因是设涉及到大表的明细查询。
七、Azkaban
工作流的调度器
八、Superset
轻量级的数据查询和可视化方案。
九、第一个业务:歌曲热度与歌手热度排行
1、需求
需求是根据用户在各个歌曲点唱机上的点歌行为,来统计最近昨日,近 7 日,近 30 日的歌曲点唱量、歌曲点赞量、点唱用户数、点唱订单数、7 日和 30 日最高点唱量、7 日和30 日最高点赞量及各个周期的歌曲热度和歌手热度。
2、模型设计
- 歌曲歌手的基本信息
这些信息放在业务系统的关系型数据库 MySql song 表中。通过 sqoop 每天定覆盖抽取到数据仓库 Hive 中的 ODS 层中。 - 用户在机器上的点歌行为数据
这部分数据是用户在各个机器上当天的点歌播放行为数据,这些数据是运维每天零点打包以 gz 压缩文件的方式上传到HDFS平台。
3、数据处理流程
1、准备客户端日志,上传至 HDFS 中
2、清洗客户端日志数据,保存到数仓 ODS 层
3、抽取 MySQL 中 song 数据到Hive ODS
4、清洗“歌库歌曲表”生成“歌曲基本信息日全量表”
是对原来数据字段切分,脏数据过滤,时间格式整理,字段提取等操作。
5、EDS 层生成“歌曲特征日统计表”
6、统计歌手和歌曲热度
注意问题 1:
注意问题 2:
“TW_SONG_FTUR_D”进行统计得到歌手影响力指数日统计表“TW_SINGER_RSI_D”和歌曲影响力指数日统计表“TW_SONG_RSI_D”时,分别还将对应的结果使用 SparkSQL 保存到了 MySQL 中。
4、使用 Azkaban 配置任务流
1、清洗客户端日志脚本
2、mysql 数据抽取数据到 Hive ODS脚本
3、清洗歌库歌曲表脚本
4、生成歌曲特征日统计表脚本
5、生成歌曲热度表脚本
6、生成歌手热度表脚本
7、编写 azkaban 各个 job 组成任务流
8、将以上 6 个 job 打包到压缩包中,在 azkaban 中提交执行即可。
4、使用 SuperSet 数据可视化
1、登录 superset
2、 加载数据源
3、加载数据表
4、修改表中对应字段显示名称
5、编辑图表
6、面板可视化展示
十、第二个业务:机器详细信息统计
1、需求
2、模型设计
3、数据处理流程
1、将数据导入到对应的 MySQL 业务库中
2、使用 Sqoop 抽取数据到 Hive ODS层
3、代码对 ODS 层数据进行 ETL 清洗
4、使用 Azkaban 配置任务流
1、首先在 Hive 中创建对应的 ODS,EDS 层的表
2、准备好抽取 MySql 数据表的脚本
3、编写提交 Spark 任务处理数据
4、编写 azkaban 任务流,并提交执行
5、使用 SuperSet 数据可视化
十一、第三个业务:日活跃用户统计
1、需求
每天统计最近 7 日活跃用户的详细信息
2、 模型设计
最终获取 7 日用户活跃信息从 EDS 层“TW_USR_BASEINFO_D"表统计得到,这里将统计到的 7 日活跃用户情况存放在 DM 层,这里通过 SparkSQL直接将结果存放在“user_7days_active”表中,提供查询展示。
3、 数据处理流程
1、将数据导入 mysql 数据库中
2、使用 Sqoop 抽取 mysql 数据到ODS层
3、使用 SparkSQL 对 ODS 层数据进行清洗
4、使用 Azkaban 配置任务流
1、确保在 Hive 中创建各个 ODS 层表及 EDS 层表
2、准备抽取 mysql 数据的 sqoop 脚本
3、编写提交 Spark 任务处理数据的脚本
4、编写 azkaban 任务进行提交
5、使用 SuperSet 数据可视化
十二、第四个业务:商户营收统计
1、需求
指的是统计投资人、代理人、合伙人各部分营收情况
2、模型设计
1、TW_MAC_BASEINFO_D 机器基础信息日全量表
含每天统计到的机器的歌库版本、系统版本、所处位置、门店名称、场景情况、投资人分层比例、代理人分层比例、合伙人分层比例、公司分层比例、代理人信息等数据。
2、TW_MAC_LOC_D 机器位置信息日统计表
高德api,获取每天机器所在的位置 。
3、TW_CNSM_BRIEF_D 消费退款订单流水日增量表
根据消费退款订单流水日增量表可以统计得到每天每个机器的订单、收入、退款情况,后期统计商户营收情况时,需要从此表中获取对应每台机器当天的订单、收入、退款情况。
4、TW_USR_BASEINFO_D 活跃用户基础信息日增量表
3、数据处理流程
1、将各个业务库的数据导入到 Mysql 中
2、在 Hive 中创建以上模型设计的表
3、执行第二个业务-机器详细信息统计
4、执行第三个业务-日活跃用户统计
5、使用 sqoop 抽取 mysql 数据到 ODS
使用 Sqoop 每天增量抽取 mysql “ycak”库下的 user_location 用户位日增量表数据到 ODS 层 TO_YCAK_USR_LOC_D表中。
使用 Sqoop 每天增量抽取 MySQL“ycak”库下的“machine_consume_detail”机器消费订单明细表到 ODS 层的 TO_YCAK_CNSM_D表。
6、使用 SparkSQL 处理 ODS 层数据得到 EDS层数据
清洗用户位置记录日增量表数据、清洗机器消费订单明细增量表
7、针对 EDS 层数据聚合得到 TW_MAC_STAT_D 机器日统计表数据
8、 针对 TW_MAC_STAT_D 机器日统计表数据得到 DM 层数据
4、使用 Azkaban 配置任务流
十三、第五个业务:地区营收日报统计
1、需求
根据“机器日营收情况统计表”,每天统计省市总营收、总退款、总订单数、总退款订单数、总消费用户数、同退款用户数。
2、模型设计
根据业务四中统计的“TW_MAC_STAT_D”机器日营收情况统计表,按照省市字段聚合得到以上各个指标。
在 Hive 中建表:TM_MAC_REGION_STAT_D 地区营收日统计表。
3、数据处理流程
使用 SparkSQL 对 ODS 层数据进行清洗。
4、使用 Azkaban 配置任务流
十四、第六个业务:实时统计所有用户的 pv,uv
1、需求
全网用户在实时操作机器的同时,可以使用数据采集接口将实时用户登录操作数据进行采集,针对这些数据可以实时统计每台机器实时的 pv/uv,以及pv/uv,并需要实时保存至 Redis 或者关系型数据库 mysql 中。
2、数据采集接口及数据生产
数据采集接口原理是利用 SpringBoot 提供日志采集服务接口,在 web 系统中当用户操作某个需要监控的行为时,调用 SpringBoot 对应的数据服务接口,通过 Log4j 日志功能将对应的日志实时写入到指定的目录日志文件中,再通过 Flume 监控对应的日志目录,将日志实时采集到 Kafka 中,进而使用流式处理框架进行数据分析处理。
3、数据处理流程
1、在 Kafka 中创建对应的日志接收 topic
2、将日志采集接口打包部署到 mynode5 节点上
3、启动 Flume 日志采集脚本监控目录日志
Flume 配置文件配置读取目录下的日志到 Kafka中
4、启动 SparkStreaming 读取 Kafka 中数据实时统计PV,UV
5、启动生产数据代码“ProdeceUserLoginLog”,调用日志采集接口生产数据
6、在 Redis 中查看对应的结果
十五、 第七个业务:实时统计歌曲热榜
1、需求
实时采集用户在机器上点播歌曲的日志数据,统计每分钟歌曲点播热榜。将结果保存到关系型数据库 mysql 中。
2、数据采集接口及数据生产
数据采集接口原理是利用 SpringBoot 提供日志采集服务接口,在 web 系统中当用户操作某个需要监控的行为时,调用 SpringBoot 对应的数据服务接口,通过 Log4j 日志功能将对应的日志实时写入到指定的目录日志文件中,再通过 Flume监控对应的日志目录,将日志实时采集到 Kafka 中,进而使用流式处理框架进行数据分析处理。
3、数据处理流程
1、在 Kafka 中创建对应的日志接收 topic
2、将日志采集接口打包部署到 mynode5 节点上
3、启动 Flume 日志采集脚本监控目录日志
Flume 配置文件配置读取目录下的日志到 Kafka中
4、启动 SparkStreaming 读取 Kafka 中数据实时统计PV,UV
5、启动生产数据代码“ProdeceUserLoginLog”,调用日志采集接口生产数据
6、在 Redis 中查看对应的结果
相关文章:

大数据开发(离线实时音乐数仓)
大数据开发(离线实时音乐数仓) 一、数据库与ER建模1、数据库三范式2、ER实体关系模型 二、数据仓库与维度建模1、数据仓库(Data Warehouse、DW、DWH)1、关系型数据库很难将这些数据转换成企业真正需要的决策信息,原因如…...

Python读取csv文件入Oracle数据库
在Python中,使用pandas库的read_sql_query函数可以直接从SQL查询中读取数据到DataFrame。而pd.set_option函数用于设置pandas的显示选项。具体来说,display.unicode.ambiguous_as_wide选项用于控制当字符宽度不明确时,pandas是否将这些字符显…...

Linux_进程概念_冯诺依曼_进程概念_查看进程_获取进程pid_创建进程_进程状态_进程优先级_环境变量_获取环境变量三种方式_3
文章目录 一、硬件-冯诺依曼体系结构二、软件-操作系统-进程概念0.操作系统做什么的1.什么叫做进程2.查看进程3.系统接口 获取进程pid- getpid4.系统接口 获取父进程pid - getppid5.系统接口 创建子进程 - fork1、手册2、返回值3、fork做了什么4、基本用法 6.进程的状态1、进程…...

Set A Light 3D Studio中文--- 打造专业级3D照明效果
Set A Light 3D Studio是一款专业的灯光模拟软件,专为摄影师和电影制片人打造。它允许用户在计算机上模拟并预览各种布光效果,助力拍摄出真实、精准且具有艺术感的作品。软件提供了丰富的灯光和场景模型,用户可以灵活调整光源参数,…...

【深度学习】基于机器学习的无机钙钛矿材料形成能预测,预测形成能,神经网络,回归问题
文章目录 任务分析数据处理处理离散数值处理缺失值处理不同范围的数据其他注意事项 我们的数据处理模型训练网页web代码、指导 任务分析 简单来说,就是一行就是一个样本,要用绿色的9个数值,预测出红色的那1个数值。 数据处理 在进行深度数…...

20240321-2-Adaboost 算法介绍
Adaboost 算法介绍 1. 集成学习 集成学习(ensemble learning)通过构建并结合多个学习器(learner)来完成学习任务,通常可获得比单一学习器更良好的泛化性能(特别是在集成弱学习器(weak learner…...

python第三方库的安装,卸载和更新,以及在cmd下pip install安装的包在pycharm不可用问题的解决
目录 第三方库pip安装,卸载更新 1.安装: 2.卸载 3.更新 一、第三方库pip安装,卸载更新 1.安装 pip install 模块名 加镜像下载:pip install -i 镜像网址模块名 常用的是加清华镜像,如 pip install -i https://pyp…...

Python第三次作业
周六 1. 求一个十进制的数值的二进制的0、1的个数 def er(x):a bin(x)b str(a).count("1")c str(a).count("0") - 1print(f"{a},count 1:{b},count 0:{c}")x int(input("enter a number:")) er(x) 2. 实现一个用户管理系统&…...

ai写作软件选哪个?这5款风靡全球的工具不容错过!
从去年到现在,ai 人工智能的发展一直是许多人关注的重点,每隔一段时间新诞生的 ai 工具软件,总会成为人们茶余饭后谈论的焦点。不过在种类繁多的 ai 工具软件中,ai 写作软件是最常被使用的 ai 工具类别,它的使用门槛较…...

信号处理与分析——matlab记录
一、绘制信号分析频谱 1.代码 % 生成测试信号 Fs 3000; % 采样频率 t 0:1/Fs:1-1/Fs; % 时间向量 x1 1*sin(2*pi*50*t) 1*sin(2*pi*60*t); % 信号1 x2 1*sin(2*pi*150*t)1*sin(2*pi*270*t); % 信号2% 绘制信号图 subplot(2,2,1); plot(t,x1); title(信号x1 1*sin(…...

Android Databinding 使用教程
Android Databinding 使用教程 一、介绍 Android Databinding 是 Android Jetpack 的一部分,它允许你直接在 XML 布局文件中绑定 UI 组件到数据源。通过这种方式,你可以更简洁、更直观地更新 UI,而无需编写大量的 findViewById 和 setText/…...

【每日跟读】常用英语500句(200~300)
【每日跟读】常用英语500句 Home sweet home. 到家了 show it to me. 给我看看 Come on sit. 过来坐 That should do nicely. 这样就很好了 Get dressed now. 现在就穿衣服 If I were you. 我要是你 Close your eyes. 闭上眼睛 I don’t remember. 我忘了 I’m not su…...

【Java开发过程中的流程图】
流程图由一系列的图形符号和箭头组成,每个符号代表一个特定的操作或决策。下面是一些常见的流程图符号及其含义: 开始/结束符号(圆形):表示程序的开始和结束点。 过程/操作符号(矩形)ÿ…...

蓝桥杯刷题-day5-动态规划
文章目录 使用最小花费爬楼梯解码方法 使用最小花费爬楼梯 【题目描述】 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶…...

新概念英语1:Lesson7内容详解
新概念英语1:Lesson7内容详解 如何询问人的个人信息 本课里有两个关于个人信息的问句,一个是问国籍,一个是问工作,句型如下: what nationality are you?询问国籍 回复一般就是我是哪国人,I’m Chinese…...

FASTAPI系列 14-使用JSONResponse 返回JSON内容
FASTAPI系列 14-使用JSONResponse 返回JSON内容 文章目录 FASTAPI系列 14-使用JSONResponse 返回JSON内容前言一、默认返回的JSON格式二、JSONResponse 自定义返回三、自定义返回 headers 和 media_type总结 前言 当你创建一个 FastAPI 接口时,可以正常返回以下任意…...

【版本控制】git使用指南
Git 是一个免费、开源的分布式版本控制系统,最初由 Linus Torvalds 于2005年创建。它旨在管理项目的源代码,并提供了跟踪更改、协作开发、版本控制、分支管理等功能。 一、版本控制概念 版本控制系统(Version Control System,VC…...

Flask 与小程序 的图片数据交互 过程及探讨研究学习
今天不知道怎么的,之前拿编程浪子地作品抄过来粘上用好好的,昨天开始照片突的就不显示了。 今天不妨再耐味地细细探究一下微信小程序wxml 和flask服务器端是怎么jpg图片数据交互的。 mina/pages/food/index.wxml <!--index.wxml--> <!--1px …...

【JavaEE】初识线程,线程与进程的区别
文章目录 ✍线程是什么?✍线程和进程的区别✍线程的创建1.继承 Thread 类2.实现Runnable接口3.匿名内部类4.匿名内部类创建 Runnable ⼦类对象5.lambda 表达式创建 Runnable ⼦类对象 ✍线程是什么? ⼀个线程就是⼀个 “执行流”. 每个线程之间都可以按…...

Kafka高级面试题-2024
Kafka中的Topic和Partition有什么关系? 在Kafka中,Topic和Partition是两个密切相关的概念。 Topic是Kafka中消息的逻辑分类,可以看作是一个消息的存储类别。它是按照不同的主题对消息进行分类,并且可以用于区分和筛选数据。每个…...

Qt——Qt文本读写之QFile与QTextStream的使用总结(打开文本文件,修改内容后保存至该文件中)
【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《项目案例分享》 《极客DIY开源分享》 《嵌入式通用开发实战》 《C++语言开发基础总结》 《从0到1学习嵌入式Linux开发》 《QT开发实战》 《Android开发实战》...

掌握Java中的super关键字
super 是 Java 中的一个关键字,它在继承的上下文中特别有用。super 引用了当前对象的直接父类,它可以用来访问父类中的属性、方法和构造函数。以下是 super 的几个主要用途: 1. 调用父类的构造函数 在子类的构造函数中,你可以使…...

STM32之HAL开发——系统定时器(SysTick)
系统定时器(SysTick)介绍 SysTick—系统定时器是属于 CM3 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系统时钟 SYSCLK等于 72M。当…...

Redis 不再“开源”:中国面临的挑战与策略应对
Redis 不再“开源”,使用双许可证 3 月 20 号,Redis 的 CEO Rowan Trollope 在官网上宣布了《Redis 采用双源许可证》的消息。他表示,今后 Redis 的所有新版本都将使用开源代码可用的许可证,不再使用 BSD 协议,而是采用…...

刚刚,百度和苹果宣布联名
百度 Apple 就在刚刚,财联社报道,百度将为苹果今年发布的 iPhone16、Mac 系统和 iOS18 提供 AI 功能。 苹果曾与阿里以及另外一家国产大模型公司进行过洽谈,最后确定由百度提供这项服务,苹果预计采取 API 接口的方式计费。 苹果将…...

HTTP系列之HTTP缓存 —— 强缓存和协商缓存
文章目录 HTTP缓存强缓存协商缓存状态码区别缓存优先级如何设置强缓存和协商缓存使用场景 HTTP缓存 HTTP缓存时利用HTTP响应头将所请求的资源在浏览器进行缓存,缓存方式分两种:强缓存和协商缓存。 浏览器缓存是指将之前请求过的资源在浏览器进行缓存&am…...

代码+视频,R语言logistic回归交互项(交互作用)的可视化分析
交互作用效应(p for Interaction)在SCI文章中可以算是一个必杀技,几乎在高分的SCI中必出现,因为把人群分为亚组后再进行统计可以增强文章结果的可靠性,不仅如此,交互作用还可以使用来进行数据挖掘。在既往文章中,我们已…...

实验3 中文分词
必做题: 数据准备:academy_titles.txt为“考硕考博”板块的帖子标题,job_titles.txt为“招聘信息”板块的帖子标题,使用jieba工具对academy_titles.txt进行分词,接着去除停用词,然后统计词频,最…...

ReentrantLock 原理
(一)、非公平锁实现原理 1、加锁解锁流程 先从构造器开始看,默认为非公平锁实现 public ReentrantLock() {sync new NonfairSync(); } NonfairSync 继承自 AQS 没有竞争时 加锁流程 构造器构造,默认构造非公平锁(无竞争,第一个线程尝试…...

星云小窝项目1.0——项目介绍(一)
星云小窝项目1.0——项目介绍(一) 文章目录 前言1. 介绍页面2. 首页2.1. 游客模式2.2. 注册用户后 3. 星云笔记3.1. 星云笔记首页3.2. 星云笔记 个人中心3.2. 星云笔记 系统管理3.3. 星云笔记 文章展示3.3. 星云笔记 新建文章 4. 数据中心5. 交流评论6. …...