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

hive-进阶版-1

 第6章  hive内部表与外部表的区别

Hive 是一个基于 Hadoop 的数据仓库工具,用于对大规模数据集进行数据存储、查询和分析。Hive 支持内部表(Managed Table)和外部表(External Table)两种表类型,它们在数据存储、管理方式和生命周期等方面存在显著区别。以下是内部表和外部表的主要区别:

1. 数据存储位置
  • 内部表:数据存储在 Hive 的默认存储目录下,通常位于 HDFS(Hadoop Distributed File System)的某个指定路径中。具体路径由 Hive 配置决定,例如 /user/hive/warehouse。当创建内部表时,Hive 会自动将数据存储到这个目录下。
  • 外部表:数据存储在用户指定的路径中,这个路径可以是 HDFS 的任意位置,也可以是其他支持的存储系统(如 S3)。外部表的数据存储位置由用户在创建表时明确指定。
2. 数据管理方式

2.1内部表

  • Hive 对数据拥有完全控制权。当删除内部表时,Hive 会同时删除表的元数据和存储的数据文件。
  • 数据的加载、更新和删除操作都由 Hive 管理,用户不需要手动操作底层存储。

2.2外部表

  • Hive 只管理表的元数据(如表结构、列信息等),而不管理数据文件本身。数据文件的创建、更新和删除需要用户自行管理。
  • 当删除外部表时,Hive 只会删除表的元数据,而不会删除存储在指定路径中的数据文件。
3. 数据生命周期 
  • 内部表:数据的生命周期与表的生命周期紧密绑定。一旦表被删除,数据也会被自动清理,因此数据的存储和管理完全依赖于 Hive。
  • 外部表:数据的生命周期独立于表的生命周期。即使外部表被删除,数据仍然保留在指定的存储路径中,不会被清理。用户可以在需要时重新创建表并关联到这些数据。
4. 适用场景

4.1内部表

  • 适用于数据完全由 Hive 管理的场景,例如数据仓库中的事实表和维度表。
  • 当数据需要频繁更新或删除时,内部表更适合,因为 Hive 可以高效地管理这些操作。

4.2外部表

  • 适用于数据需要共享或与其他系统集成的场景。例如,数据可能同时被 Hive 和其他工具(如 Spark、Pig 或其他 Hadoop 生态系统工具)使用。
  • 当数据存储在外部系统(如 S3 或其他云存储)时,外部表是更好的选择。
  • 如果数据需要保留,即使表被删除,外部表可以确保数据不会丢失。
5. 创建语法

内部表

CREATE TABLE internal_table (id INT,name STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

外部表

CREATE EXTERNAL TABLE external_table (id INT,name STRING
)
LOCATION '/path/to/external/data';

 示例:

CREATE EXTERNAL TABLE employees (emp_id INT,emp_name STRING,emp_age INT,emp_position STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/path/to/employees.txt';
  • CREATE EXTERNAL TABLE:声明这是一个外部表。

  • ROW FORMAT DELIMITED FIELDS TERMINATED BY ',':指定字段分隔符为逗号。

  • LOCATION '/path/to/employees.txt':指定数据存储的位置。

注意:请将 /path/to/employees.txt 替换为实际的 HDFS 路径。

第7章 关于hive使用的一些技巧

1.可以直接不进入hive的情况下执行SQL

通过shell的参数-e可以执行一次就运行完的命令

hive -e "select * from yhdb_student"

在查询的结果显示字段名:

set hive.cli.print.header=true;    ------临时,重启后再一次执行

永久设置:修改/opt/installs/hive/conf/.hiverc文件 

追加一条:set hive.cli.print.header=true;

2. hive可以直接运行SQL文件

1. 创建 SQL 文件

首先,将你的 Hive SQL 语句保存到一个文件中,例如 script.sql。文件内容可以是单条或多条 SQL 语句,例如:

-- script.sql
CREATE TABLE IF NOT EXISTS my_table (
    id INT,
    name STRING,
    age INT
);

INSERT INTO TABLE my_table VALUES (1, 'Alice', 30), (2, 'Bob', 25);

SELECT * FROM my_table;

2. 在 Hive 命令行中运行 SQL 文件 

方法 1:使用 -f 参数

在 Hive 命令行中,使用 -f 参数指定 SQL 文件路径:

hive -f /path/to/script.sql

方法 2:在 Hive Shell 中运行 

如果你已经进入了 Hive Shell,可以使用 source 命令运行 SQL 文件

hive
hive> source /path/to/script.sql;

3. 参数化 SQL 文件(可选) 

如果你需要在运行时传递参数到 SQL 文件中,可以通过 Hive 的变量替换功能实现。例如:

SQL文件示例:

-- script.sql
CREATE TABLE IF NOT EXISTS my_table (id INT,name STRING,age INT
);INSERT INTO TABLE my_table VALUES (1, '${hiveconf:name}', 30);SELECT * FROM my_table;

运行时传递参数

hive -f /path/to/script.sql -hiveconf name="Alice" 

  • ${hiveconf:name} 是一个变量占位符,-hiveconf name="Alice" 会将变量 name 的值设置为 "Alice"

  • Hive 会替换 ${hiveconf:name}"Alice",然后执行 SQL 文件。

 查询日志:

hive -f /path/to/script.sql -v

3.hive中执行Linux命令

Hive Shell 支持通过 ! 符号直接运行 Linux 命令。例如:

 !ls /path/to/directory;

4.在hive中操作hdfs 

1. 在 Hive 中执行 HDFS 命令

Hive 提供了直接执行 HDFS 命令的功能。你可以在 Hive Shell 中通过 dfs 命令来操作 HDFS,格式为:

查看 HDFS 目录下的文件:

dfs -ls /user/hive/warehouse/;

将 HDFS 中的文件复制到本地: 

dfs -get /user/hive/warehouse/mydb.db/myfile.txt ./local_directory/; 

将本地文件上传到 HDFS: 

dfs -put /local_path/myfile.txt /user/hive/warehouse/mydb.db/; 

2. 将 HDFS 文件加载到 Hive 表中 

你可以通过 Hive 的 LOAD DATA INPATH 语句将 HDFS 上的文件加载到 Hive 表中。步骤如下:

2.1创建hive表

CREATE TABLE my_table (
    column1 STRING,
    column2 INT
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','; 

 2.2加载数据

LOAD DATA INPATH '/path/to/hdfs/file' INTO TABLE my_table;

其中 /path/to/hdfs/file 是 HDFS 上文件的实际路径。

3. 在 Hive 中查看表的 HDFS 存储路径

DESCRIBE FORMATTED my_table; 

第8章 hive中SQL基础查询

 1. 查询表中的所有数据

SELECT * FROM table_name;

2. 查询指定列 

SELECT column1, column2, column3 FROM table_name; 

 3. 添加条件过滤(WHERE 子句)

SELECT emp_name, emp_age FROM employees
WHERE emp_age > 30;

4. 使用比较运算符 

SELECT * FROM employees
WHERE emp_age >= 25 AND emp_age <= 35; 

5. 使用逻辑运算符 
  • AND:同时满足多个条件。
  • OR:满足任意一个条件。
  • NOT:对条件取反。

SELECT * FROM employees
WHERE emp_age > 30 OR emp_position = 'Manager';

6. 使用 IN 和 NOT IN
  • IN:用于指定多个可能的值。
  • NOT IN:用于排除指定的值。

SELECT * FROM employees
WHERE emp_position IN ('Manager', 'Engineer');

7. 使用 LIKE 和通配符
  • LIKE:用于模糊查询。
  • %:匹配任意字符序列。
  • _:匹配任意单个字符。

SELECT * FROM employees
WHERE emp_name LIKE 'J%'; -- 匹配以 "J" 开头的名字

8. 使用 ORDER BY 排序

 SELECT emp_name, emp_age FROM employees
ORDER BY emp_age DESC;

9. 使用 LIMIT 限制结果数量

SELECT * FROM table_name
LIMIT n; 

 10. 使用 GROUP BY 进行分组

SELECT emp_position, COUNT(*) AS num_employees
FROM employees
GROUP BY emp_position;

11. 使用 HAVING 筛选分组 

 SELECT emp_position, COUNT(*) AS num_employees
FROM employees
GROUP BY emp_position
HAVING COUNT(*) > 2;

12. 使用 JOIN 进行表连接
--inner joinSELECT a.emp_id, a.emp_name, b.department_name
FROM employees a
JOIN departments b
ON a.department_id = b.department_id; --left joinSELECT a.emp_id, a.emp_name, b.department_name
FROM employees a
LEFT JOIN departments b
ON a.department_id = b.department_id;
13. 使用子查询
 SELECT emp_name, emp_age
FROM employees
WHERE emp_id IN (SELECT emp_idFROM salariesWHERE salary > 5000
);
14. 使用 UNION ALL 合并结果

SELECT column1, column2 FROM table1
UNION ALL
SELECT column1, column2 FROM table2; 

 15. 使用 DISTINCT 去重

SELECT DISTINCT column1, column2 FROM table_name;

第9章 hive -复杂数据类型用法 

1、ARRAY类型

在Hive中,ARRAY是一种复杂数据类型,用于存储相同类型的有序集合。

1.1定义与创建

ARRAY类型可以通过array<type>语法定义,其中type表示数组中元素的数据类型。例如,创建一个包含字符串数组的表:

CREATE TABLE example_table (id INT,names ARRAY<STRING>
)row format delimitedfields terminated by '\t'   --tab空格collection items terminated by '.'lines terminated by '\n'stored as textfile;

2. 插入数据

 INSERT INTO example_table VALUES (1, array('Alice', 'Bob', 'Charlie'));

3. 查询数组数据

3.1 访问数组元素

可以通过下标访问数组中的元素,下标从0开始。例如:

SELECT names[0] AS first_name FROM example_table; 

3.3 获取数组长度

使用size函数可以获取数组的长度:

 SELECT size(names) AS array_length FROM example_table;

3.4 对数组排序

使用sort_array函数可以对数组进行排序:

SELECT sort_array(names) AS sorted_names FROM example_table; 

4. 嵌套使用

ARRAY可以与其他复杂数据类型嵌套使用。例如,创建一个包含结构体数组的表:

CREATE TABLE nested_table (
    user_id INT,
    user_info ARRAY<STRUCT<name:STRING, age:INT>>
); 

插入数据

INSERT INTO nested_table VALUES (1, array(named_struct('name', 'Alice', 'age', 25), named_struct('name', 'Bob', 'age', 30))); 

查询嵌套数据

SELECT user_info[0].name, user_info[0].age FROM nested_table; 

 2.explode的用法

1. explode函数的基本用法

explode函数可以将arraymap类型的列展开为多行数据。具体用法如下:

1.1 对array类型展开

将数组中的每个元素拆分为单独的行:

SELECT explode(array('apple', 'banana', 'pear')) AS fruit;

+---结果----+
| fruit |
+-------+
| apple |
| banana|
| pear  |
+-------+

1.2 对map类型展开

SELECT explode(map('a', 1, 'b', 2)) AS (key, value);

+-----+结果-------+
| key | value |
+-----+-------+
| a   | 1     |
| b   | 2     |
+-----+-------+ 

2. 展开字符串类型

explode不直接支持字符串类型,但可以通过split函数将字符串转换为数组,然后再使用explode

SELECT explode(split('apple,banana,pear', ',')) AS fruit;

+-------+结果
| fruit |
+-------+
| apple |
| banana|
| pear  |
+-------+ 

3. 结合LATERAL VIEW使用

为了克服explode的局限性,通常会结合LATERAL VIEW一起使用。LATERAL VIEW可以将explode生成的结果与原表的其他字段关联起来:

SELECT id, fruit
FROM array_table
LATERAL VIEW explode(items) exploded_items AS fruit;

3.map的使用以及练习

在 Hive 中,MAP 是一种复杂数据类型,用于存储键值对(Key-Value)结构的数据。

1. Hive 中 MAP 的基本概念

MAP 是一种无序的键值对集合,键(Key)必须是唯一的,而值(Value)可以是任意数据类型(如 STRING、INT、ARRAY 等)。键通常为 STRING 类型。

2. 创建包含 MAP 字段的表

可以通过 CREATE TABLE 语句创建一个包含 MAP 类型字段的表。例如:

CREATE TABLE user_info (
    user_id INT,
    user_attributes MAP<STRING, STRING>
);

在这个例子中,user_attributes 是一个 MAP 类型字段,键和值都是字符串。

3. 向 MAP 字段插入数据

使用 INSERT INTO 语句向表中插入数据,可以通过 MAP 函数构造键值对。例如:

INSERT INTO TABLE user_info VALUES
(1, MAP('name', 'Alice', 'age', '30')),
(2, MAP('name', 'Bob', 'age', '25')); 

在这个例子中,MAP 函数用于创建键值对。

4. 查询 MAP 数据

4.1查询 MAP 中的某个键值

可以通过 [] 运算符访问 MAP 中的特定键值。例如:

SELECT user_id, user_attributes['name'] AS name, user_attributes['age'] AS age 
FROM user_info;

4.2查询 MAP 的所有键或值

可以使用 map_keys()map_values() 函数分别获取 MAP 的所有键和值。例如:

 SELECT map_keys(user_attributes) AS keys, map_values(user_attributes) AS values 
FROM user_info;

结果会返回一个数组,包含所有键或值。

合并两个 MAP

可以使用 map_concat() 函数合并两个 MAP。例如:

 SELECT map_concat(map('gender', 'female'), user_attributes) 
FROM user_info;

5. 练习示例

 示例 1:创建表并插入数据、

CREATE TABLE student_scores (student_id INT,scores MAP<STRING, INT>
);INSERT INTO TABLE student_scores VALUES
(1, MAP('Math', 90, 'English', 85)),
(2, MAP('Math', 70, 'English', 80));

示例 2:查询特定科目成绩

SELECT student_id, scores['Math'] AS math_score 
FROM student_scores;

示例 3:查询包含特定键值的数据

SELECT * FROM student_scores 
WHERE scores['Math'] > 80;

示例 4:合并 MAP

SELECT student_id, map_concat(map('Science', 95), scores) 
FROM student_scores;

相关文章:

hive-进阶版-1

第6章 hive内部表与外部表的区别 Hive 是一个基于 Hadoop 的数据仓库工具&#xff0c;用于对大规模数据集进行数据存储、查询和分析。Hive 支持内部表&#xff08;Managed Table&#xff09;和外部表&#xff08;External Table&#xff09;两种表类型&#xff0c;它们在数据…...

规模效应的三重边界:大白话解读-deepseek为例

前言&#xff1a;当Scaling Laws遇见边际递减效应 在人工智能的狂飙突进中&#xff0c;大语言模型如同不断膨胀的星体&#xff0c;吞噬着海量算力与数据。OpenAI于2020年揭开的Scaling Laws&#xff0c;曾为这场盛宴指明方向&#xff1a;模型性能随参数规模&#xff08;N&…...

考研系列-408真题计算机网络篇(18-23)

写在前面 此文章是本人在备考过程中408真题计算机网络部分&#xff08;2018年-2023年&#xff09;的易错题及相应的知识点整理&#xff0c;后期复习也常常用到&#xff0c;对于知识提炼归纳理解起到了很大的作用&#xff0c;分享出来希望帮助到大家~ # 2018 1.停止-等待协议的…...

windows协议不再续签,华为再无windows可用,将于四月发布鸿蒙PC

大家好&#xff0c;我是国货系创始人张云泽&#xff0c;最近不少小伙伴在后台问&#xff1a;“听说Windows协议要到期了&#xff1f;我的电脑会不会变砖&#xff1f;”还有人说&#xff1a;“华为笔记本以后用不了Windows了&#xff1f;鸿蒙系统能用吗&#xff1f;”今天咱们就…...

【二分算法】-- 点名

文章目录 1. 题目2. 题目解析3. 代码 1. 题目 在线oj 2. 题目解析 前四种解决方法&#xff1a; 哈希表直接遍历找结果位运算数学&#xff08;高斯求和公式&#xff09; 这四种方法的时间复杂度都是0&#xff08;N&#xff09; 第五种解决方法&#xff1a; 【二段性】&…...

强化学习 - PPO控制无人机

PPO&#xff08;Proximal Policy Optimization&#xff0c;近端策略优化&#xff09;是一种强化学习算法&#xff0c;用于训练智能体&#xff08;无人机&#xff09;如何在环境中做出决策。它本质上是 策略梯度&#xff08;Policy Gradient&#xff09;方法 的一种改进&#xf…...

【AHE数据集】 NCAR Anthropogenic Heat Flux (AHF) 数据集

数据概述 数据集由 美国国家大气研究中心(NCAR, National Center for Atmospheric Research) 的 气候与全球动力学实验室(CGD, Climate & Global Dynamics Laboratory) 提供。NCAR 由 美国国家科学基金会(NSF, National Science Foundation) 资助,并由 大学大气研究…...

Part1:基于国内源完成Kubernetes集群部署

集群规划 操作系统&#xff1a;CentOS7 内核版本&#xff1a;5.4&#xff08;需升级&#xff09; 组件版本说明操作系统内核5.4RPM方式升级docker26.1.4yum安装cri-docker0.3.16二进制安装kubeadm1.30.11yum安装kubealet1.30.11yum安装kubectl1.30.11yum安装kubectl1.30.11yu…...

强化学习的一些概念

目录 强化学习 打个比方 核心要素 State Action Reward 几个代码demo 学习目标 强化学习 强化学习&#xff08;Reinforcement Learning, RL&#xff09;是机器学习的一个分支&#xff0c;旨在让智能体&#xff08;Agent&#xff09;通过与环境的交互学习最优策略&#xff0c;以…...

花生好车:重构汽车新零售生态的破局者

在传统汽车零售行业面临消费升级与渠道变革的双重压力下&#xff0c;花生好车以颠覆性的商业模式在短短九年内崛起为行业独角兽。这家成立于2015年的汽车新零售平台&#xff0c;通过重构供应链体系、创新融资租赁模式、深耕下沉市场三大战略维度&#xff0c;正在重塑中国汽车消…...

K8S下nodelocaldns crash问题导致域名请求响应缓慢

前言 最近做项目&#xff0c;有业务出现偶发的部署导致响应很慢的情况&#xff0c;据了解&#xff0c;业务使用域名访问&#xff0c;相同的nginx代理&#xff0c;唯一的区别就是K8S重新部署了。那么问题大概率出现在容器平台&#xff0c;毕竟业务是重启几次正常&#xff0c;偶…...

实现悬浮按钮拖动,兼容h5和微信小程序

h5用js写&#xff0c;微信小程序用 代码里面没有完全实现吸附边缘的功能&#xff0c;需要吸附边缘的话还得自己再完善下&#xff08;h5的吸附边缘是可以的&#xff0c;小程序的还有点问题&#xff09; 主要功能是&#xff1a;图片上写文字的悬浮按钮&#xff0c;文字使用的是…...

SLC跨头协作机制

SLC跨头协作机制 SLC(Self-attention with Local Communication,或类似跨头协作机制)在Transformer架构中通过以下逻辑帮助注意力头优化分布: 1. 多头注意力的「独立-协作」平衡 传统多头注意力中,每个头独立计算注意力(如Query/Key/Value的线性变换),捕捉不同语义模…...

全国医院数据可视化分析系统

【大数据】全国医院数据可视化分析系统 &#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 &#x1f3e5; 项目名&#xff1a;医疗导航神器&#xff01;——《基于大数据的微医挂号网医院数据可视…...

Flash Attention原理讲解

目录 前言0. 简述1. self-attention2. roofline model3. 矩阵分块4. softmax分块5. FlashAttention结语参考 前言 看了几个视频和几篇文章学习了下 Flash Attention&#xff0c;记录下个人学习笔记&#xff0c;仅供自己参考&#x1f604; refer1&#xff1a;Flash Attention 为…...

python二级复习(1)

临近计算机二级考试了,开始python的复习 python语言基础: 1.用缩进表示代码块:一般用四个空格或者一个tab 2.代码的注释方法: 单行注释用“#”表示注释开始&#xff1b;多行注释是用三个英文的单引号“‘’”或双引号““”"”作为注释的开始和结束符号。 03. 标识符命…...

基于cat1的贵重物品的状态和位置小型监控系统特色解析

一 项目需求 团队研发出来一款搭载多传感器的无线cat1定位和状态监控的设备。该设备主要面对的贵重物品运输过程中的状态监控&#xff0c;比如&#xff0c;是否被打开过&#xff0c;有没有激烈碰撞&#xff0c;位置信息等。主要应用场景是医疗&#xff0c;安防等贵重物品的状态…...

Python 魔法方法介绍

在 Python 中,魔法方法(Magic Methods)是一类特殊的内置方法,它们通常以双下划线开头和结尾(例如 __init__、__str__、__add__ 等)。这些方法通常用于实现特定的语法或操作符行为,或者用于定义对象的行为。它们是 Python 面向对象编程中的一个重要特性,可以让类的行为更…...

golang time包和日期函数

1.简介 在程序中日期和时间是我们经常会用到的&#xff0c;在go中time包提供了时间的显示和测量函数。 2.获取当前时间 通过time.Now()函数获取当前时间对象&#xff0c;然后获取时间对象的年月日时分秒等值。 now : time.Now()fmt.Printf("now%v type%T\n", now…...

第7章 站在对象模型的尖端2: 异常处理

1.异常处理(Exception Handling) C的异常处理由三个主要组成部分构成&#xff1a;throw表达式、catch子句和try块。当异常被抛出时&#xff0c;程序控制权会转移&#xff0c;并且会沿着调用堆栈回溯&#xff0c;直到找到匹配的catch子句。在此过程中&#xff0c;局部对象的析构…...

不同路径——2

给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角&#xff08;即 grid[0][0]&#xff09;。机器人尝试移动到 右下角&#xff08;即 grid[m - 1][n - 1]&#xff09;。机器人每次只能向下或者向右移动一步。 网格中的障碍物和空位置分别用 1 和 0 来表示。机器人的…...

电子招采软件系统,如何实现10年可追溯审计

一、在当前经济环境下&#xff0c;中小企业面临着巨大的生存压力&#xff0c;传统产业的数字化转型迫在眉睫。AI技术为企业的低成本高效发展提供了新机会&#xff0c;混合办公成为新常态&#xff0c;数据安全法的深入落实则进一步推动企业重视数据安全。区块链存证技术凭借独特…...

TS常见内置映射类型的实现及应用场景

以下是 TypeScript 在前端项目中 常用的映射类型&#xff08;Mapped Types&#xff09;&#xff0c;结合具体场景和代码示例&#xff0c;帮助开发者高效处理复杂类型&#xff1a; 一、基础映射类型 1. Partial<T> 作用&#xff1a;将对象类型 T 的所有属性变为可选。 实…...

本地部署Deep Seek-R1,搭建个人知识库——笔记

目录 一、本地部署 DeepSeek - R1 1&#xff1a;安装Ollama 2&#xff1a;部署DeepSeek - R1模型 3&#xff1a;安装Cherry Studio 二、构建私有知识库 一、本地部署 DeepSeek - R1 1&#xff1a;安装Ollama 1.打开Ollama下载安装 未科学上网&#xff0c;I 先打开迅雷再下…...

东芝2323AMW复印机安装纸盒单元后如何添加配件选项

如何添加请看下面图示&#xff1a; 找到设备和打印机里找到打印机图标&#xff0c;右键打印机属性&#xff0c;找到配置&#xff0c;添加相应配置功能&#xff1b;打印机属性&#xff0c;加上双面或者2纸盒配件选项&#xff1b; Word打印时&#xff0c;打印机名称&#xff0c;后…...

EasyExcel动态拆分非固定列Excel表格

使用EasyExcel动态拆分非固定列Excel表格 在Excel数据解析场景中&#xff0c;​动态列结构拆分是典型挑战&#xff08;如供应链系统中不同品类的属性字段差异较大&#xff09;。传统基于POJO映射的方案无法应对列数量不固定的场景。本方案采用EasyExcel的动态模型解析和Map数据…...

开源WAF雷池本地化部署与远程查看网站安全防护的详细操作指南

文章目录 前言1.关于SafeLine2.安装Docker3.本地部署SafeLine4.使用SafeLine5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime Kuma公网地址 前言 各位建站小能手们&#xff0c;无论是想搭建个人博客、企业官网还是各种应用平台来推广自己的内容或产品&#xff0c…...

由一个话题进入DFMEA(设计失效模式及影响分析)

前言 最近看到了知乎的一个话题“为啥撞车后总是看到雨刮器在摆动&#xff1f;”&#xff0c;联想到产品设计中的一些功能安全设计&#xff0c;也借此机会学习DFMEA&#xff0c;讨论一下我个人对于DFMEA的理解。 有纰漏请指出&#xff0c;转载请说明。 学习交流请发邮件 128…...

Redisson 实现分布式锁源码浅析

大家好&#xff0c;我是此林。 今天来分享Redisson分布式锁源码。还是一样&#xff0c;我们用 问题驱动 的方式展开讲述。 1. redis 中如何使用 lua 脚本&#xff1f; Redis内置了lua解释器&#xff0c;lua脚本有两个好处&#xff1a; 1. 减少多次Redis命令的网络传输开销。…...

机试准备第17天

今天进入图论的学习。图论只考察初试学过的算法&#xff0c;一般都是模版题。常见考点有图相关的数据结构——邻接表法&#xff0c;图的遍历 BFS DFS 并查集&#xff0c;单源最短路径迪杰斯特拉。图由顶点和边构成&#xff0c;度用来说明该顶点邻接边的数量情况。权值说明了边的…...

ABAP语言的动态编程(4) - 综合案例:管理费用明细表

本篇来实现一个综合案例&#xff1a;管理费用明细表。报表在实际项目中&#xff0c;也有一定的参考意义&#xff0c;一方面展示类似的报表&#xff0c;比如管理费用、研发费用等费用的明细&#xff0c;使用业务比较习惯的展示格式&#xff1b;另一方面正好综合运用前面学习的动…...

不像人做的题————十四届蓝桥杯省赛真题解析(上)A,B,C,D题解析

题目A&#xff1a;日期统计 思路分析&#xff1a; 本题的题目比较繁琐&#xff0c;我们采用暴力加DFS剪枝的方式去做&#xff0c;我们在DFS中按照8位日期的每一个位的要求进行初步剪枝找出所有的八位子串&#xff0c;但是还是会存在19月的情况&#xff0c;为此还需要在CHECK函数…...

R语言零基础系列教程-01-R语言初识与学习路线

代码、讲义、软件回复【R语言01】获取。 R语言初识 R是一个开放的统计编程环境&#xff0c;是一门用于统计计算和作图的语言。“一切皆是对象”&#xff0c;数据、函数、运算符、环境等等都是对象。易学&#xff0c;代码像伪代码一样简洁&#xff0c;可读性高强大的统计和可视…...

即时通讯平台测试报告

1.项目概述 项目名称&#xff1a;即时通讯平台 版本号&#xff1a;V1.0.0 测试周期&#xff1a;2025年2月25日--2025年3月15日 测试目标&#xff1a;验证核心功能&#xff08;登录、注册、消息收发、用户管理、群组功能等&#xff09;的稳定性和性能指标。 2. 测试范围 功…...

蓝桥杯单片机内存爆了怎么办

蓝桥杯单片机内存爆了怎么办 文章目录 蓝桥杯单片机内存爆了怎么办一、参考文章二、内存区3、keil中的体现4、分配原则5、使用示例 一、参考文章 文章1 文章2 文章3 文章4 二、内存区 1 KB(千字节) 1024 B(字节) B代表Byte&#xff0c;1Byte8bit&#xff0c;一个字节8位 …...

一周热点:微软攻克语音输入、文本输出难题-Phi-4-multimodal

微软Phi-4-multimodal模型是人工智能领域的一个重要进展,它标志着微软在多模态人工智能技术上的突破。以下是对该模型的详细解释: 模型概述 微软Phi-4-multimodal是一个能够同时处理文本、图像和语音的多模态大型语言模型。它通过创新的架构和训练方法,实现了在不同模态之间…...

量化交易学习笔记02:双均线策略

双均线策略示例 个股&#xff1a;中国平安 回测日期&#xff1a;2022-5-1至2023-5-1 短均线&#xff1a;5天 长无线&#xff1a;10天 代码&#xff1a; def initialize(context):# 初始化此策略# 设置我们要操作的股票池, 这里我们只操作一支股票# """标的&qu…...

【WRF-Urban】使用 CGLC-MODIS-LCZ_100m 数据集运行 WRF 时的城市参数化问题

在 WRF 中,LCZ 通过 URBPARM_LCZ.TBL 进行配置,但如果 FRC_URB2D 变量缺失,WRF 会回退到默认的 URBPARM.TBL。 主要问题概述 WRF-Model-cglc-modis-lcz_100m dataset " WARNING, THE URBAN FRACTION WILL BE READ FROM URBPARM.TBL USING DEFAULT URBAN MORPHOLOGY&q…...

Selenium 自动化测试学习总结

大概了解一下即可&#xff0c;现在主要用的自动化工具是 playWright&#xff0c;它可以录制操作。 selenium是老款自动化测试工具&#xff0c;仍有很多可取之处。 安装&#xff1a; pip install selenium即可。然后下载浏览器的驱动包&#xff0c;注意不是浏览器&#xff01;…...

开源通义万相本地部署方案,文生视频、图生视频、视频生成大模型,支持消费级显卡!

开源通义万相本地部署方案&#xff0c;文生视频、图生视频、视频生成大模型&#xff0c;支持消费级显卡&#xff01; 万相2.1开源 近日&#xff0c;大模型万相2.1&#xff08;Wan&#xff09;重磅开源&#xff0c;此次开源采用Apache2.0协议&#xff0c;14B和1.3B两个参数规格…...

Suno的对手Luno:AI音乐开发「上传参考音频 - 方式一:通过二进制流的方式」 —— 「Luno Api系列|AI音乐API」第11篇

导读 今天来看下Luno Api的上传参考音频 - 方式一&#xff1a;通过二进制流的方式。 参考文件&#xff0c;主要是用于在创作的过程中&#xff0c;希望AI参考这个音乐的曲风和声音来进行创作&#xff0c;那么可以通过上传参考音乐来进行实现。 申请和使用 「已经有API的&…...

微信小程序刷题逻辑实现:技术揭秘与实践分享

页面展示&#xff1a; 概述 在当今数字化学习的浪潮中&#xff0c;微信小程序以其便捷性和实用性&#xff0c;成为了众多学习者刷题备考的得力工具。今天&#xff0c;我们就来深入剖析一个微信小程序刷题功能的实现逻辑&#xff0c;从代码层面揭开其神秘面纱。 小程序界面布局…...

巴耶赫利专业俄语外贸网站建设

巴耶赫利是专业俄语外贸网站建设与俄语搜索引擎Yandex SEO优化服务商。巴耶赫利致力于帮助中国品牌出海俄罗斯&#xff0c;打开俄罗斯市场&#xff0c;提升品牌在俄罗斯的知名度和美誉度。 以下是对巴耶赫利相关服务的详细介绍&#xff1a; 一、巴耶赫利专业俄语外贸网站建设…...

每日Attention学习25——Multi-Scale Attention Fusion

模块出处 [TCSVT 24] [link] [code] DSNet: A Novel Way to Use Atrous Convolutions in Semantic Segmentation 模块名称 Multi-Scale Attention Fusion (MSAF) 模块作用 双级特征融合 模块结构 模块思想 MSAF的主要思想是让网络根据损失学习特征权重&#xff0c;允许模型…...

前端学习记录:解决路由缓存问题

问题描述&#xff1a;响应路由参数的变化&#xff0c;使用带有参数的路由时需要注意的是&#xff0c;当用户从 /users/johnoy 导航到 /users/jolyne 时&#xff0c;相同的组件实例将会被重复使用。因为两个路由都渲染同个组件&#xff0c;比起销毁再创建&#xff0c;复用则显得…...

VSTO(C#)Excel开发10:启动和卸载顺序 事件处理 监视变化

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…...

代码随想录Day16

Day16 二叉树part06 LeetCode 530.二叉搜索树的最小绝对差 题目描述 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 输入&#xff1a;root [4,2,6,1,3] 输出&…...

第15章:ConvNeXt图像分类实战:遥感场景分类【包含本地网页部署、迁移学习】

目录 1. ConvNeXt 模型 2. 遥感场景建筑识别 2.1 数据集 2.2 训练参数 2.3 训练结果 2.4 本地部署推理 3. 下载 1. ConvNeXt 模型 ConvNeXt是一种基于卷积神经网络&#xff08;CNN&#xff09;的现代架构&#xff0c;由Facebook AI Research (FAIR) 团队在2022年提出。…...

LinuX---Shell脚本创建和执行

概述&#xff1a; 它是一个命令行解释器&#xff0c;接收应用程序/用户命令&#xff0c;然后调用操作系统内核。 Shell还是一个功能强大的编程语言&#xff0c;易编写、易调试、灵活性强。 Linux提供的Shell解析器有 atguiguubuntu:~$ cat /etc/shells # /etc/shells: valid …...

django+vue3实现前后端大文件分片下载

效果&#xff1a; 大文件分片下载支持的功能&#xff1a; 展示目标文件信息提高下载速度&#xff1a;通过并发请求多个块&#xff0c;可以更有效地利用网络带宽断点续传&#xff1a;支持暂停后从已下载部分继续&#xff0c;无需重新开始错误恢复&#xff1a;单个块下载失败只…...