当前位置: 首页 > news >正文

大数据第二阶段测试(二)

1.接到需求之后的开发流程是什么?

参考答案一
接到需求后的开发流程一般包括需求分析、设计、编码、测试和部署等步骤。首先,对需求进行全面的分析,明确需求的背景、目标和功能。然后,根据需求进行系统设计,包括数据库设计、架构设计和接口设计等。接下来,根据设计进行编码,编写高质量的代码。完成编码后,进行测试,包括单元测试、集成测试和系统测试等。最后,根据测试结果进行修复和优化,并进行部署上线。
参考答案二
- 需求讨论:与产品、业务 Confirm 需求,确定项目范围、功能点、关键指标等
- 技术方案设计:根据需求确定 overall architecture,设计采集、建模、计算流程
- 开发实现:按设计方案进行 Flume 采集管道、Hive 建模、Spark 计算流程的开发
- 测试验证:进行本地环境验证,以样本数据验证 ETL 流程正确性
- 上线部署:将开发环境下的任务生产环境部署上线,进行全量数据验证
- 交付文档:编写技术设计文档、数据字典、操作维护文档等交付给业务方
参考答案三

2.拦截器的编写思路是什么?

参考答案一
拦截器的编写思路一般是通过实现特定的接口或继承特定的类来实现。拦截器可以拦截请求和响应,对其进行处理或修改。编写拦截器时,首先需要确定拦截的目标,比如拦截请求还是响应,或者拦截特定的URL路径。然后,根据目标确定拦截器的触发时机,比如在请求之前、之后或异常时触发。最后,根据需求编写拦截器的具体逻辑,可以对请求参数进行校验、权限验证、日志记录等操作。
参考答案二
- 继承抽象拦截器类,实现初始化、关闭方法
- 实现 interpolate 方法,在这里实现对事件体的处理逻辑
- 在 Flume 配置文件中配置拦截器,指定类型及参数
- 测试验证拦截器逻辑与预期是否一致
参考答案三
- 拦截器需要实现org.apache.flume.interceptor.Interceptor接口。
- 重写方法
- 将自定义的拦截器打jar包放入flume的lib文件
- 修改配置文件,添加拦截器
拦截器可以修改或删除事件基于开发者在选择器中选择的任何条件。
拦截器采用了责任链模式,多个拦截器可以按指定顺序拦截
一个拦截器返回的事件列表被传递给链中的下一个拦截器
如果一个拦截器需要删除事件,它只需要在返回的事件集中不包含要删除的事件即可

3.从0到1怎么搭建数仓?

参考答案一
搭建数仓的基本步骤包括需求分析、数据抽取、数据清洗、数据转换、数据加载和数据展示等。首先,进行需求分析,明确数仓的目标和功能。然后,根据需求设计数据抽取策略,从各个数据源中抽取数据。接下来,进行数据清洗,对抽取的数据进行去重、过滤、格式化等处理。然后,进行数据转换,将清洗后的数据进行加工、计算和整合,生成目标数据。最后,将转换后的数据加载到数仓中,并通过数据展示工具进行数据可视化和报表展示。
参考答案二
- 选定数仓技术方案:确定使用Hive+Spark等技术方案
- 定义数据集市层模型:确定数仓的逻辑模型,维度表、事实表结构
- 搭建数据采集:使用Flume等采集数据到HDFS
- 搭建Hive框架:创建事实、维度表结构
- 编写ETL程序:利用Spark、Shell等加载、转换数据到Hive表
- 开发分析模型:使用Spark SQL、Presto等进行分析、建模
- 前端报表连接:使用Superset等可视化工具连接数仓
参考答案三
可以分为6个步骤:业务探查、技术选型、规范制定、主题域划分、数仓分层、模型建设

  • 业务探查
    梳理公司业务系统,业务关心的指标,开发过的需求。
  • 技术选型
    根据已有的数据,选择技术平台,及开发语言
  • 规范制定
    分层设计规范、表命名规范、字段命名规范、层次调度规范、脚本开发规范
  • 主题域划分
    可以按照业务系统、或者部门划分。如果按照业务系统划分,两个业务系统的数据一样、可以合并为一个主题。上次您跟我交流时的业务跨主题域的问题,如果主题划分好了,是不会存在这种情况的,如果跨主体域了,就划分在某一个主题域就行。
  • 数仓分层
    包括dwd,dim,dws的模型建设
  • 模型建设

4.采集方案如何设计,并阐述其原因?

参考答案一
采集方案的设计需要考虑数据源的类型、数据量、数据质量和实时性等因素。首先,确定要采集的数据源,可以是数据库、日志文件、API接口等。然后,根据数据源的特点和需求确定采集方式,比如定时采集、实时采集或增量采集。接下来,设计数据采集的流程和逻辑,包括数据抽取、数据清洗、数据转换和数据加载等步骤。最后,根据采集方案的设计进行开发和测试,并根据实际情况进行调整和优化。
参考答案二
- 数据源:确定需要采集的日志或数据库源
- 数据格式:源数据的存储格式如Json、Csv等
- 采集周期:需要全量还是增量,采集频率
- 数据过滤:根据业务需求进行过滤
- 幂等性:避免重复采集数据
- 容错性:采集过程中出现问题的恢复机制
参考答案三
技术选择:Flume,Kafka,sqoop,Logstash,DataX

5.阐述在离线行为数据采集过程中碰到零点漂移问题,怎么发现怎么解决的?

参考答案一
在离线行为数据采集过程中,零点漂移问题指的是数据采集的起始时间点或间隔时间发生了变化,导致数据的时间窗口不准确。为了发现零点漂移问题,可以通过监控数据的采集时间和数据的时间戳进行对比。如果发现采集时间和时间戳的差异较大,可能存在零点漂移问题。解决零点漂移问题可以通过定期校准采集时间或使用更准确的时间源进行数据采集。
参考答案二
- 发现问题:统计采集数据的时间范围,例如出现1-3点的数据丢失
- 解决方法:
1)回填数据:重新采集丢失的时间范围数据
2)时间校正:使用时间戳插件修改时间
3)调整业务逻辑:比如注册时间取登录时间的第一天
参考答案三

第一天晚上11:59:59产生的数据可能会在第二天的0点左右收到,如果不处理就会当成第二天产生的数据,影响准确性,所以需要处理

如果日志数据用到flume;一般在flume中的source下又加了一个拦截器进行处理,统一只使用日志数据的产生时间作为时间戳。

6.详细描述对于Json数据的入仓方案有哪些,怎么落地?

参考答案一
对于Json数据的入仓方案可以有多种选择,比如使用ETL工具、编写自定义的脚本或使用数据集成平台等。其中,ETL工具可以提供图形化的界面,方便配置和管理数据的抽取、清洗和加载等步骤。自定义脚本可以根据需求编写特定的数据处理逻辑,实现数据的解析、转换和加载。数据集成平台可以提供统一的接口和标准化的数据处理流程,简化数据入仓的开发和管理。
参考答案二
- 直接Load: 使用JsonSerDe解析Json,加载到Hive表
- 预处理:使用Spark解析Json,处理为表格式后加载到Hive
- 使用Hive JSON函数:使用get_json_object等函数解析
参考答案三

  • spark程序通过json工具解析并通过sparkSQL写入目标表
  • HvieSQL提供GetJsonObject()方法
  • JsonSerDe

7.谈谈你对ETL方案的理解,落地方案有哪些?

参考答案一
ETL方案是指将数据从源系统抽取、清洗和转换后加载到目标系统的一种数据集成方案。落地方案可以有多种选择,比如使用ETL工具、编写自定义的脚本或使用数据管道等。ETL工具可以提供图形化的界面,方便配置和管理数据的抽取、清洗和加载等步骤。自定义脚本可以根据需求编写特定的数据处理逻辑,实现数据的解析、转换和加载。数据管道可以提供可扩展和可靠的数据传输和处理能力,支持多种数据源和目标系统的集成。
参考答案二
- ETL是Extract-Transform-Load的简称,用于数据仓库的构建维护
- Extract:从数据源抽取数据
- Transform:对数据进行转换、清洗等处理
- Load:将数据加载到数据仓库
落地使用Spark、Hive等进行数据转换,最后加载到Hive数据仓库。
参考答案三
ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。

通常的做法是从业务系统到ODS做清洗,将脏数据和不完整数据过滤掉,在从ODS到DW的过程中转换,进行一些业务规则的计算和聚合。

ETL工具有Flume,Kafka,sqoop,Logstash,DataX

8.介绍一下离线项目中的数仓分层体系,描述每层数据及其作用?

参考答案一
离线项目中的数仓分层体系一般包括原始数据层、清洗数据层、加工数据层和应用数据层。原始数据层用于存储从各个数据源抽取的数据,保留原始的数据结构和格式。清洗数据层对原始数据进行去重、过滤、格式化等处理,提高数据质量。加工数据层对清洗后的数据进行加工、计算和整合,生成目标数据。应用数据层提供面向用户的数据服务和报表展示,满足业务需求。
参考答案二
- ODS层:操作数据存储层,原始数据
- DWD层:数据仓库层,清洗后数据
- DWS层:数据集市层,汇总加工数据
- ADS层:应用数据存储层,分析和报表的数据
参考答案三
1、贴源层(ODS): ODS层主要存储原始数据(一般都是来源于各个app的日志或者线下门店的表格,txt文本等)
2、明细层(DWD):基于原始数据层,将数据进行简单的清洗、脱敏后处理后建立明细表(明细表中一般也会有etl时间的字段,业务不同,字段也不相同)
3、维度表(DIM):基于原始数据层提取公共指标进行维度建模(实际上和明细层没有依赖关系,主要是根据业务需求来定,常见的有时间,地区编码对应表,所属机构编码对应表,业务类型编码对应表等等,后面想起来再补充)
4、轻度聚合层(DWS):是基于明细层数据,对明细层的数据进行轻度聚合得出(所谓轻度聚合,个人理解是提取业务核心字段,根据业务需求对数据进行进一步的加工)
5、主题层(DWT):根据主题提炼出相关指标,从DWS中提取和维度表关联得出(这个时候业务就要开始详细划分了,一般都是许多小需求围绕一个核心需求作为主题—个人理解)
6、数据中间层(DWM):对于一些跨部门协同,会产生一些公共字段,用DWM进行临时存储从而避免重复计算(类似于咱们这边的模型层)
7、结果展示层(ADS):基于需求,从主题中提取相关字段得出,用于结果展示(咱们这边是把报送的数据导入到Oracle中进行展示,只报送增量数据)
分层优点
每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。

  • 方便数据血缘追踪:
    简单来说,我们最终给业务呈现的是一个能直接使用业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。
  • 减少重复开发:
    规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
  • 把复杂问题简单化:
    将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
  • 屏蔽原始数据的异常:
    屏蔽业务的影响,不必改一次业务就需要重新接入数据

9.Hive on Spark 数据倾斜的处理方案?

参考答案一
-数据倾斜的原因一般是数据分布不均匀,可以通过调整数据分桶或分区的策略,使数据均匀分布。
-可以对倾斜的数据进行采样,然后将采样数据进行拆分或重组,使数据均匀分布。
-可以使用Spark的优化功能,比如动态分区、广播变量和缓存等,提高任务执行的效率和性能。
参考答案二
- 优化数据分区,将热点数据分到不同分区
- 调整并发,热点数据分区调低并发
- 使用抽样、过滤等方式预处理热点数据
- 使用聚合、join等
参考答案三

  1. 在hive etl时进行数据聚合,把key相同的数据聚合成一条数据,这样就可能不用shuffle了,从而解决数据倾斜。当没办法对key进行聚合时也可以选择其它粒度聚合,比如数据中包含了几个城市,几个职业,可以选择合适的粒度聚合。

  2. 过滤导致倾斜的key如果业务允许某几个key的数据可以丢弃,那么对于有两个key对应10万条数据,而其它key都是几十条,那么就可以过滤那两个key。

  3. 提高ruduce并行度从而使key更分散,从而有可能解决数据倾斜

  4. 双重聚合法(针对非join,如groupByKey,reduceByKey)

    1. 在每个key前加上一个随机数和一个分隔符比如:“2”,那么key对应的数量就比较均匀了,然后做第一次reduce。
    2. 把第一次聚合得到的RDD的前缀(x)去掉,再进行一次聚合即可
  5. reduce join转map join
    ​ 其中一个RDD必须是比较小的,broadcast出去那个小RDD的数据以后,就会在每个executor的block manager中都驻留一份。

    ​ 要确保你的内存足够存放那个小RDD中的数据这种方式下,根本不会发生shuffle操作,肯定也不会发生数据倾斜;从根本上杜绝了join操作可能导致的数据倾斜的问题;

    ​ 对于join中有数据倾斜的情况,大家尽量第一时间先考虑这种方式,效果非常好;如果某个RDD比较小的情况下。

    ​ 对于join这种操作,不光是考虑数据倾斜的问题;即使是没有数据倾斜问题,也完全可以优先考虑,用我们讲的这种高级的reduce join转map join的技术,不要用普通的join,去通过shuffle,进行数据的join;完全可以通过简单的map,使用map join的方式,牺牲一点内存资源;在可行的情况下,优先这么使用。

  6. 可以先从要join的一个RDD中抽取10%的数据并从中得到数量最多的那个key,然后从两个RDD中过滤出这个key的数据,得当两个RDD,rdd1和rdd2,然后对两个RDD中的key加随机前缀,如果rdd2的数据只有一个,那么就用for多生成几个,然后俩个RDD做join,然后对那些非特殊的RDD进行join,然后union两个结果。

10.Spark 跟 MR的区别?

参考答案一
-Spark采用内存计算,而MR采用磁盘计算,因此Spark的计算速度更快。
-Spark支持更多的数据处理操作,比如实时流处理、机器学习和图计算等,而MR主要用于批处理。
-Spark的编程模型更简洁和灵活,支持多种编程语言,比如Scala、Java和Python,而MR主要使用Java编程。
-Spark提供了更多的优化功能,比如内存管理、数据分区和并行度控制等,可以提高任务执行的效率和性能。
参考答案二
- Spark基于内存,MR基于磁盘,Spark计算速度更快
- Spark可以互动查询,MR是批处理
- Spark用DAG执行引擎,MR用MapReduce
- Spark流批一体,MR只能批处理
- Spark基于内存,故难以处理超大数据,MR可以通过流式处理大数据
参考答案三

  • Spark基于内存,MR基于磁盘,因此Spark速度更快
  • spark容错性高,它通过弹性分布式数据集RDD来实现高效容错;mapreduce的话容错可能只能重新计算了,成本较高
  • MR要基于Yarn来进行资源调度。Spark支持多种运行模式,包括Local,Standalone,Yarn,Mesos;
  • Spark更加通用,框架和生态也更加复杂。

11.Hive中常用的开窗函数,并阐述其功能?

参考答案一
Hive中常用的开窗函数包括ROW_NUMBER、RANK、DENSE_RANK、LAG和LEAD等。这些函数用于在查询结果中对数据进行分组、排序和统计等操作。比如,ROW_NUMBER函数可以给每个分组的行分配一个唯一的序号,RANK函数可以根据某个字段的值对分组的行进行排序,LAG函数可以用于获取前一行的值,LEAD函数可以用于获取后一行的值。这些函数可以方便地进行数据分析和统计。
参考答案二
- rank() 排序排序字段,相同数值并列,后续序号有空隙
- dense_rank() 排序排序字段,相同数值并列,后续序号无空隙
- row_number() 无序排序,按行号排列
- ntile() 把有序窗口的数据分为指定的组
参考答案三
窗口函数一般分为三类:聚合型窗口函数和分析型窗口函数以及取值型窗口函数。

  • 聚合型
    • sum 求和
    • avg 求平均
    • max 最大值
    • min 最小值
  • 分析型
    • RANK() :间断,相同值同序号,例如 1、2、2、2、5。
    • DENSE_RANK() :不间断,相同值同序号,例如 1、2、2、2、3。
    • ROW_NUMBER() :不间断,序号不重复,例如 1、2、3、4、5(2、3 可能是相同的值)。
  • 取值型
    • LAG(COL, N, DEFAULT_VAL) :往前第 N 行数据,没有数据的话用 DEFAULT_VAL 代替。
    • LEAD(COL, N, DEFAULT_VAL) :往后第 N 行数据,没有数据的话用 DEFAULT_VAL 代替。
    • FIRST_VALUE(EXPR) :分组内第一个值,但是不是真正意义上的第一个,而是截至到当前行的第一个。
    • LAST_VALUE(EXPR) :分组内最后一个值,但是不是真正意义上的最后一个,而是截至到当前行的最后一个。

12.维度建模用的哪些模型,你们具体是怎么使用的?

参考答案一
维度建模常用的模型包括星型模型和雪花模型。在星型模型中,一个事实表和多个维度表围绕着中心事实表形成星型的结构,维度表和事实表之间通过外键进行关联。在雪花模型中,维度表的结构更加复杂,可以通过多级的关联形成雪花的结构。具体使用时,根据业务需求和数据特点选择合适的模型,并进行维度建模的设计和实现。
参考答案二
- 星型模型:事实表与维度表做连表查询
- 雪花模型:多层维度表连接查询加速
- 桥表:用于维度表的扩展,避免维度表数据爆炸
参考答案三

  • 星型模型:以事实表为中心,所有的维度表直接连在事实表上;简单存在冗余;
  • 雪花模型:雪花模式的维度表可以拥有其他的维度表;去除了数据冗余,更贴近业务,尽可能降低数据存储量以及联合较小的维表来改善查询性能
  • 星座模型:基于多张事实表,而且共享维度信息,即事实表之间可以共享某些维度表

13.阐述连续活跃区间表的作用及其使用场景,并阐述利用这张表的意义是什么?

参考答案一
连续活跃区间表是用于记录用户连续活跃时间段的一张表,可以通过记录用户每次活跃的开始时间和结束时间来计算用户的连续活跃时间段。连续活跃区间表的作用是用于分析用户的活跃情况和用户行为的变化趋势。通过对连续活跃区间表的统计和分析,可以了解用户的活跃度和留存情况,并进行相应的业务决策和推荐策略的调整。
参考答案二
- 标识用户连续活跃的时间区间,可以用于用户流失、回流分析
- 一个区间范围代表一次用户活跃周期,区分新老用户按周期分层分析
参考答案三

14.新用户留存表应该如何设计,为什么?

参考答案一
新用户留存表设计时可以记录用户的注册时间、首次登录时间和最后登录时间等信息,以及用户在注册后的一段时间内的活跃情况。可以通过设计合适的字段和指标来跟踪新用户的留存情况,比如日留存率、周留存率和月留存率等。设计新用户留存表的目的是了解新用户的留存情况,判断用户的粘性和产品的吸引力,从而进行用户增长和产品改进的决策。
参考答案二
- 以注册日期作为维度,统计每个日期注册用户数作为指标
- 每日活跃数作为指标,连接留存日进行 grouping 分析留存率
- 设定时间窗口比如7日留存,滑动窗口分析不同留存区间的留存率
参考答案三

15.漏斗模型如何计算,可以通过伪代码进行描述?

参考答案一
漏斗模型用于计算用户在不同阶段的转化率。可以用伪代码描述漏斗模型的计算过程如下:

定义变量ABCD分别表示不同阶段的用户数量
A = 原始用户数量
B = 进入第二阶段的用户数量
C = 进入第三阶段的用户数量
D = 完成最终阶段的用户数量
转化率1 = B / A
转化率2 = C / B
转化率3 = D / C

根据漏斗模型的计算结果,可以评估用户在不同阶段的转化情况,找出转化率较低的环节,并进行优化和改进。
参考答案二
1. 按时间顺序排列用户访问页面
2. 计算相邻页面流失用户数A,页面访问用户数B
3. 流失率=A/B
4. 按流失率高低生成漏斗路径
参考答案三
漏斗模型是用来分析业务转化率的,计算方法:
具体:业务路径为 浏览->添加购物车->提交订单->支付
比如提交订单的转换率 = 提交订单人数/(添加购物车人数+提交订单人数) 本阶段/上阶段

16.什么是事件归因分析,阐述其作用和计算方法?

参考答案一
事件归因分析是一种分析用户行为和转化路径的方法,通过追踪用户的行为事件,了解不同事件对用户转化的贡献度和影响力。事件归因分析的作用是帮助理解用户行为和决策过程,了解用户的兴趣和需求,从而进行个性化推荐和精准营销。事件归因分析的计算方法可以通过统计用户在不同事件上的行为和转化情况,并计算事件对转化的贡献度和影响力。可以通过多种算法和模型来实现事件归因分析,比如基于规则的归因模型、基于时间窗口的归因模型和基于机器学习的归因模型等。
参考答案二

  • 分析导致目标事件的驱动因素,通常应用于将注册归因于广告推广
  • 使用窗口函数统计注册前一段时间的广告曝光或点击数据
  • 进行多因素归因,建立回归模型计算各因素对注册的贡献度
    参考答案三
    归因分析从字面上看,就是推测这个行为到底是哪些原因导致的。用来解决不同渠道、不同触点贡献度的问题
  • 首次触点归因:待归因事件中,最早发生的事,被认为是导致业务结果的唯一因素
  • 末次触点归因:待归因事件中,最近发生的事,被认为是导致业务结果的唯一因素
  • 线性归因:待归因事件中,每一个事件都被认为对业务结果产生了影响,影响力平均分摊
  • 位置归因:定义一个规则,比如最早、最晚事件占40%影响力,中间事件平摊影响力
  • 时间衰减归因:越晚发生的待归因事件,对业务结果的影响力越大

相关文章:

大数据第二阶段测试(二)

1.接到需求之后的开发流程是什么? 参考答案一 接到需求后的开发流程一般包括需求分析、设计、编码、测试和部署等步骤。首先,对需求进行全面的分析,明确需求的背景、目标和功能。然后,根据需求进行系统设计,包括数据库…...

【mysql报错解决】MySql.Data.MySqlClient.MySqlException (0x80004005)或1366

场景:c#使用mysql数据库执行数据库迁移,使用了新增inserter的语句,然后报错 报错如下: 1.MySql.Data.MySqlClient.MySqlException (0x80004005): Incorrect string value: ‘\xE6\x9B\xB4\xE6\x94\xB9…’ for column ‘Migratio…...

Kafka-eagle监控平台

Kafka-Eagle简介 在开发工作中,当业务不复杂时,可以使用Kafka命令来进行一些集群的管理工作。但如果业务变得复杂,例如:需要增加group、topic分区,此时,再使用命令行就感觉很不方便,此时&#x…...

ubuntu16.04制作本地apt源离线安装

一、首先在有外网的服务器安装需要安装的软件,打包deb软件。 cd /var/cache/apt zip -r archives.zip archives sz archives.zip 二、在无外网服务器上传deb包,并配置apt源。 1、上传deb包安装lrzsz、unzip 用ftp软件连接无外网服务器协议选择sftp…...

【Leetcode】91.解码方法

一、题目 1、题目描述 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : A -> "1" B -> "2" ... Z -> "26"要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,"11106" …...

easyx图形库基础:2.基本运动+键盘交互

基本运动键盘交互 一.基本运动1.基本运动:1.如何实现动画:2.实现一个小球从左到右从右到左:(往返运动)3.实现一个五角星的移动:4.实现一个五角星自转和圆周运动的集合:(圆周运动&…...

计算机竞赛 opencv 图像识别 指纹识别 - python

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于机器视觉的指纹识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 该项目较为新颖,适…...

UI自动化测试常见的Exception

一. StaleElementReferenceException: - 原因:引用的元素已过期。原因是页面刷新了,此时当然找不到之前页面的元素。- 解决方案:不确定什么时候元素就会被刷新。页面刷新后重新获取元素的思路不变,这时可以使用python的…...

魔棒:手机智能无人直播软件多少钱?

无人直播因为直播门槛低,不需要真人出镜,不需要请主播,加上可以24小时直播卖券,效果出奇的好,一时很受广大商家的欢迎,那么,这种ai智能无人直播软件究竟多少钱呢? 当然&#xff0c…...

网络安全 Day-32 Linux 系统定时任务补充

定时任务补充 1. 定时任务在生产时任务场景2. 定时任务实践 1. 定时任务在生产时任务场景 每天零点对系统数据备份每天我晚上零点统计财务报表每分钟剪口没有人进入计算机 2. 定时任务实践 定时任务服务启动:systemctl start crondsystemctl enable crond查看配置…...

【OpenGauss源码学习 —— 执行算子(hash join 算子)】

执行算子(hash join 算子) 连接算子hash join算子ExecInitHashJoin函数HashJoinState结构体TupleTableSlot 结构体JoinState结构体PlanState结构体ExecInitHashJoin函数部分代码介绍 ExecHashJoin函数调试信息 ExecEndHashJoin函数ExecReScanHashJoin函数…...

[Go版]算法通关村第十二关青铜——不简单的字符串转换问题

目录 题目:转换成小写字母思路分析:大写字母ASCII码 32 小写字母ASCII码Go代码Go代码-优化: 大写字母ASCII码 | 32 小写字母ASCII码 题目:字符串转换整数(atoi)思路分析:去除首部空格 明确正负 读取数…...

十种排序算法(附动图)

排序算法 一、基本介绍 ​ 排序算法比较基础,但是设计到很多计算机科学的想法,如下: ​ 1、比较和非比较的策略 ​ 2、迭代和递归的实现 ​ 3、分而治之思想 ​ 4、最佳、最差、平均情况时间复杂度分析 ​ 5、随机算法 二、排序算法的分类 …...

【校招VIP】测试类型之兼容性测试分析

考点介绍: 兼容性是测试工作里面比较复杂的一种情况,也是校招里面考察的一个重点,需要从屏幕功能,数据,操作系统等多个维度进行分析。 『测试类型之兼容性测试分析』相关题目及解析内容可点击文章末尾链接查看&#x…...

STM32--TIM定时器(1)

文章目录 TIM简介定时器类型 通用定时器预分频器时序计数器时序定时中断基本结构TIM内部中断工程TIM外部中断工程 TIM简介 STM32的TIM(定时器)是一种非常常用的外设,用于实现各种定时和计数功能。它是基于时钟信号进行计数,并在计…...

Android取证——基础知识

目录 一、安卓系统版本 二、安装操作系统UI 三、鉴权码 1.IMEI(手机序列号) 2.ICCID...

【学习心得】安装cuda/cudann和pytorch

一、查看驱动信息 # 进入CMD输入命令 nvidia-smi 也可以右下角图标打开NVIDIA 设置进行查看 二、下载安装CUDA 1、下载 下载地址 https://developer.nvidia.com/ 2、安装 推荐自定义安装。建议只勾选Cuda,只安装这一个就好,以免报错安装失败。 3、验证…...

中电金信通过KCSP认证 云原生能力获权威认可

中电金信通过KCSP(Kubernetes Certified Service Provider)认证,正式成为CNCF(云原生计算基金会)官方认证的 Kubernetes 服务提供商。 Kubernetes是容器管理编排引擎,底层实现为容器技术,是云原…...

【Spring】Bean的实例化

1、简介 在容器中的Bean要实例化为对象有三种方式 1、构造方法 2、静态工厂 3、实例工厂 4、实现工厂接口 2、构造方法 构造方法实例化Bean即是直接通过构造方法创建对象 <bean id"bookDao" class"com.wn.spring.dao.impl.BookDaoImpl"/> 当不存在…...

2023牛客暑期多校训练营8-C Clamped Sequence II

2023牛客暑期多校训练营8-C Clamped Sequence II https://ac.nowcoder.com/acm/contest/57362/C 文章目录 2023牛客暑期多校训练营8-C Clamped Sequence II题意解题思路代码 题意 解题思路 先考虑不加紧密度的情况&#xff0c;要支持单点修改&#xff0c;整体查询&#xff0…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

相关类相关的可视化图像总结

目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系&#xff0c;可直观判断线性相关、非线性相关或无相关关系&#xff0c;点的分布密…...

在Spring Boot中集成RabbitMQ的完整指南

前言 在现代微服务架构中&#xff0c;消息队列&#xff08;Message Queue&#xff09;是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个流行的消息中间件&#xff0c;支持多种消息协议&#xff0c;具有高可靠性和可扩展性。 本博客将详细介绍如何在 Spring Boot 项目…...

PostgreSQL 对 IPv6 的支持情况

PostgreSQL 对 IPv6 的支持情况 PostgreSQL 全面支持 IPv6 网络协议&#xff0c;包括连接、存储和操作 IPv6 地址。以下是详细说明&#xff1a; 一、网络连接支持 1. 监听 IPv6 连接 在 postgresql.conf 中配置&#xff1a; listen_addresses 0.0.0.0,:: # 监听所有IPv4…...

板凳-------Mysql cookbook学习 (十--2)

5.12 模式匹配中的大小写问题 mysql> use cookbook Database changed mysql> select a like A, a regexp A; ------------------------------ | a like A | a regexp A | ------------------------------ | 1 | 1 | --------------------------…...