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

五、Hive表类型、分区及数据加载

在 Hive 中高效构建、管理和查询数据仓库,核心在于精准运用表类型(内部/外部)分区策略(静态/动态/多重)。这不仅决定数据的生命周期归属,更是优化海量数据查询性能关键手段

一、表的身份权责:内部表 vs 外部表

内部表 (Managed Table)

  • 定义: Hive 默认。Hive 同时管理元数据和 HDFS 数据(通常在仓库目录创建专属子目录)。
  • 数据控制: Hive 拥有并控制数据完整生命周期
  • 生命周期: DROP TABLE 会删除元数据 HDFS 数据。
  • 适用: 临时表中间结果,或完全由 Hive 控制的数据。

代码:创建内部表

CREATE TABLE clicks_internal (session_id STRING,click_url STRING
) 
COMMENT '内部表,数据由Hive管理';

外部表 (External Table)

  • 定义: 需显式EXTERNAL必须LOCATION 指定 HDFS 路径。Hive 仅管理元数据
  • 数据控制: Hive 不拥有数据,数据保留LOCATION 原始位置
  • 生命周期: DROP TABLE 仅删元数据,HDFS 数据保留
  • 适用: 管理已存在数据、需共享数据、防误删关键数据。

代码:创建外部表

CREATE EXTERNAL TABLE impressions_external (ad_id STRING,user_id STRING)COMMENT '外部表,数据独立于Hive'
LOCATION '/data/raw/impressions'; -- 指定数据存储路径

关键操作:若手动在外部表 LOCATION 路径下增删分区目录,需执行 MSCK REPAIR TABLE table_name; 同步元数据

代码:修复外部表分区

MSCK REPAIR TABLE impressions_external;

核心对比: DROP TABLE 是否删 HDFS 数据;Hive 是否移动/拥有数据。

二、查询加速核心:分区表及其数据加载

分区通过分区键大表数据物理划分到 HDFS 不同子目录,实现查询剪枝极大提升性能。

创建分区表

  • 分区键不是表中实际存储的列,但表现如普通列。
  • 支持多重分区,形成层级目录

代码:创建单分区表

CREATE TABLE daily_activity (user_id BIGINT,type STRING)
PARTITIONED BY (dt DATE);

代码:创建多重分区表

CREATE TABLE page_views (user_id BIGINT, page_url STRING)
PARTITIONED BY (view_date DATE, country STRING) -- 按日期和国家分区
STORED AS ORC;

数据加载到分区表

关键:必须确保数据被放入正确的分区目录。Hive 不推荐直接用 hadoop fs -put 到分区目录(因为这不会更新元数据,除非后续 MSCK REPAIRALTER TABLE ADD PARTITION)。主要有两种方式:

1. 静态分区加载

  • 机制: 在加载命令中 明确指定目标分区的所有键值。Hive 知道数据确切的目的地。

  • 方式一:LOAD DATA (通常用于加载已准备好的文件到特定分区)

    • LOCAL 关键字表示文件在运行 Hive 命令本地机器上(对 HiveServer2 来说是 Server 所在机器)。省略 LOCAL 表示文件在 HDFS 上。
    • OVERWRITE先清空目标分区再加载。省略则追加

    代码:从本地加载到单分区

    LOAD DATA LOCAL INPATH '/path/to/local/activity_20231103.txt'
    OVERWRITE INTO TABLE daily_activity
    PARTITION (dt='2023-11-03');
    

    代码:从 HDFS 加载到多重分区

    LOAD DATA INPATH '/user/data/views_us_20231103'
    INTO TABLE page_views
    PARTITION (view_date='2023-11-03', country='US');
    
  • 方式二:INSERT OVERWRITE/INTO ... PARTITION (通常用于从其他表查询结果并写入特定分区)

    • INSERT OVERWRITE 覆盖分区,INSERT INTO 追加(Hive 0.14+)。

    代码:从源表查询插入到特定分区

    INSERT OVERWRITE TABLE page_views
    PARTITION (view_date='2023-11-03', country='CA') -- 静态指定分区
    SELECT user_id, page_url
    FROM source_views
    WHERE event_date = '2023-11-03' AND user_country = 'CA';
    
  • 静态分区特点: 控制精准;适合分区值已知/固定;分区组合多语句繁琐

2. 动态分区加载

  • 机制: 仅用于 INSERT ... SELECT。在 PARTITION 子句中不指定(或部分不指定)分区键的值,让 Hive 根据 SELECT 查询结果对应列必须是最后几列)的实际值自动推断创建分区目录并写入数据
  • 核心配置:
    • SET hive.exec.dynamic.partition=true; (必须启用)
    • SET hive.exec.dynamic.partition.mode=nonstrict; (推荐。允许所有分区键动态。strict 模式至少需一个静态键,防误操作)
    • (可选) hive.exec.max.dynamic.partitions... 等参数控制资源
  • SELECT 列顺序: 极其重要SELECT 列表中的最后几列 必须按照 PARTITION 子句中动态分区键顺序排列,且类型兼容

代码:全动态分区加载 (单分区键)

SET hive.exec.dynamic.partition.mode=nonstrict;
INSERT OVERWRITE TABLE daily_activity
PARTITION (dt) -- dt 是动态分区键
SELECT user_id, type, event_date -- event_date 的值将决定 dt 分区值
FROM source_table;

代码:全动态分区加载 (多重分区键)

SET hive.exec.dynamic.partition.mode=nonstrict;
INSERT OVERWRITE TABLE page_views
PARTITION (view_date, country) -- view_date, country 都是动态分区键
SELECT user_id, page_url, event_date, user_country -- 最后两列对应分区键
FROM source_views;

代码:混合分区加载 (多重分区,静态+动态)

-- 静态指定 view_date, 动态指定 country
INSERT OVERWRITE TABLE page_views
PARTITION (view_date='2023-11-03', country) -- 静态在前,动态在后
SELECT user_id, page_url, user_country -- 最后一列对应动态分区键 country
FROM source_views
WHERE event_date = '2023-11-03';
  • 动态分区特点: 自动化便捷,尤其适合批量转换或分区值多样/未知需小心配置谨防意外产生过多小分区数据倾斜

手动管理分区

  • 除加载外,可直接操作分区元数据。

代码:手动添加/删除/修改分区

ALTER TABLE page_views ADD IF NOT EXISTS PARTITION (view_date='2023-11-04', country='CA');
ALTER TABLE page_views DROP IF EXISTS PARTITION (view_date='2023-11-01', country='UK');
ALTER TABLE page_views PARTITION (view_date='2023-11-03', country='US') SET LOCATION 'hdfs:///new/path/...'; -- 修改路径 (不移动数据)

三、实战演练与深度思考

练习题 1:
/data/shared_logs 有需长期保留、多部门共享的日志。应创建内部表还是外部表?为何?若手动在 HDFS 增新分区目录及数据,如何让 Hive 感知?

练习题 2:
源表 orders_source (含 order_id, user_id, order_amount, order_country, order_date DATE)。创建按国家和日期分区的外部表 orders_partitioned (ORC格式,数据存 /data/orders_part),并写动态分区导入数据的 INSERT 语句。

练习题 3:
静态分区 PARTITION 子句的值与源数据列值必须一致吗?动态分区呢?解释原因。

练习题 4:
daily_activitydt 分区。SELECT COUNT(*) FROM daily_activity WHERE user_id = 123; 会利用分区提速吗?为什么?如何设计能让基于 user_id 的查询提速?

练习题 5:
解释 hive.exec.dynamic.partition.mode=strictnonstrict 的区别及 strict 设计意图。

练习题 6:
如何将内部表 prod_data 无风险转为外部表?写 ALTER 语句。

练习题 7 (代码):
查看 orders_partitioned 表的完整 DDL (创建语句)。

练习题 8 (代码):
列出 orders_partitioned 表中 order_country='CA' 的所有分区

练习题 9 (代码):
为分区表 metrics_table (分区键 report_date DATE) 批量添加 2023-12-012023-12-05 的分区元数据(假设 HDFS 目录结构已备好)。

练习题 10 (代码):
orders_partitioned 表中一次性删除多个分区:country='JP', date='2023-06-18'country='KR', date='2023-06-19'

练习题 11 (代码):
写查询计算 orders_partitioned 表中 order_country 为 ‘DE’ 或 ‘FR’,且 order_date 在 2023年第三季度的总订单数。

练习题 12 (代码):
查看 page_views 表的分区键信息。

练习题 13 (代码):
使用 INSERT OVERWRITE DIRECTORYpage_views特定分区 (date='2023-11-03', country='US') 数据导出到本地目录 /tmp/exported_data,字段分隔符为 |

练习题 14 (代码):
假设 daily_activity 表你想按 dttype 进行动态分区,源表 source_table 包含 user_id, activity_type, event_date。写出正确的 INSERT … SELECT 语句,确保动态分区列顺序正确

练习题 15 (代码):
创建一个内部表 user_profiles,包含 user_id INT, profile MAP<STRING,STRING>,字段分隔符为 ,,Map 键值对分隔符为 #,Map 内 KV 分隔符为 :


答案解析

答案 1:
外部表。原因:数据独立、需共享/保留DROP 安全。执行 MSCK REPAIR TABLE table_name; 同步新分区

答案 2:
DDL:

CREATE EXTERNAL TABLE orders_partitioned (
order_id BIGINT, 
user_id BIGINT, 
order_amount DECIMAL(18,2))
PARTITIONED BY (order_country STRING, order_date DATE) STORED AS ORC
LOCATION '/data/orders_part';

INSERT:

SET hive.exec.dynamic.partition.mode=nonstrict;
INSERT OVERWRITE TABLE orders_partitioned PARTITION (order_country, order_date)
SELECT order_id, user_id, order_amount, order_country, order_date FROM orders_source;

答案 3:

  • 静态不必。指定值决定目录。
  • 动态必须。分区值源自 SELECT 列实际值

答案 4:
不会WHERE 未用分区键 dt。基于 user_id 提速可考虑分桶 (CLUSTERED BY (user_id) ...)。

答案 5:
strict 要求至少一个静态分区键。意图防误操作(如忘加 WHERE)全表扫描海量分区nonstrict 无此限制

答案 6:

ALTER TABLE prod_data SET TBLPROPERTIES('EXTERNAL'='TRUE');

答案 7:

SHOW CREATE TABLE orders_partitioned;

答案 8:

SHOW PARTITIONS orders_partitioned PARTITION(order_country='CA');

答案 9:
标准 HiveQL 不支持日期范围批量 ADD PARTITION。需脚本循环MSCK REPAIR
脚本思路 (伪代码):

for day in {01..05}; do
hive -e "ALTER TABLE metrics_table ADD IF NOT EXISTS PARTITION (report_date='2023-12-${day}');"
done

答案 10:
执行多次 ALTER TABLE ... DROP PARTITION

ALTER TABLE orders_partitioned DROP IF EXISTS PARTITION (order_country='JP', order_date='2023-06-18');
ALTER TABLE orders_partitioned DROP IF EXISTS PARTITION (order_country='KR', order_date='2023-06-19');

答案 11:

SELECT COUNT(*) FROM orders_partitioned
WHERE order_country IN ('DE', 'FR')
AND order_date >= '2023-07-01' AND order_date <= '2023-09-30';

答案 12:

DESCRIBE FORMATTED page_views; -- 查看 "# Partition Information"
-- 或
DESCRIBE page_views; -- 分区键列在最后

答案 13:

INSERT OVERWRITE LOCAL DIRECTORY '/tmp/exported_data' -- LOCAL 指本地
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
SELECT user_id, page_url, view_time -- 选择需要的列,而不是 *
FROM page_views
WHERE view_date='2023-11-03' AND country='US';

答案 14:
需要创建 daily_activity 表时定义分区键为 PARTITIONED BY (dt DATE, type STRING)

SET hive.exec.dynamic.partition.mode=nonstrict;
INSERT OVERWRITE TABLE daily_activity
PARTITION (dt, type) -- dt 和 type 都是动态
SELECT user_id, event_date, activity_type -- 最后两列 event_date, activity_type 对应分区键
FROM source_table;

答案 15:

CREATE TABLE user_profiles (
user_id INT,
profile MAP<STRING,STRING>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
COLLECTION ITEMS TERMINATED BY '#' -- Map 内 KVP 分隔符
MAP KEYS TERMINATED BY ':'; -- Map 内 K 和 V 分隔符

结语:因地制宜,优化存储与查询

精准运用 Hive 的表类型分区策略数据仓库建设性能调优核心。根据数据生命周期、共享需求、查询模式因素审慎设计,能显著提升数据管理效率查询响应

相关文章:

五、Hive表类型、分区及数据加载

在 Hive 中高效构建、管理和查询数据仓库&#xff0c;核心在于精准运用表类型&#xff08;内部/外部&#xff09;与分区策略&#xff08;静态/动态/多重&#xff09;。这不仅决定数据的生命周期归属&#xff0c;更是优化海量数据查询性能的关键手段。 一、表的身份权责&#x…...

在选择合适的实验室铁地板和铸铁试验平板,帮分析​

铸铁测试底板是一种采用铸铁材料经过加工制成的基准测量工具&#xff0c;主要用于工业检测、机械加工和实验室等高精度要求的场合。其核心功能是为各类测量、检验、装配工作提供稳定的水平基准面&#xff0c;确保测量数据的准确性和一致性。 一、铸铁测试底板的基本特性 1.材质…...

阿里云人工智能大模型通义千问Qwen3开发部署

本文主要描述阿里云人工智能大模型开源社区ModelScope提供的通义千问Qwen3开发部署。 与阿里云一起 轻松实现数智化 让算力成为公共服务&#xff1a;用大规模的通用计算&#xff0c;帮助客户做从前不能做的事情&#xff0c;做从前做不到的规模。让数据成为生产资料&#xff1a;…...

网络基础知识梳理和Muduo库使用

文章目录 网络基础知识梳理和Muduo库使用1.知识储备2.阻塞、非阻塞、同步、异步我的总结 3.Unix/Linux上的五种IO模型0.铺垫1.阻塞IO&#xff08;blocking&#xff09;2.非阻塞IO&#xff08;non-blocking&#xff09;3.IO复用&#xff08;IO multiplexing&#xff09;4.信号驱…...

IDEA 插件推荐:提升编程效率

通过安装和使用合适的插件&#xff0c;可以大幅提升开发效率和代码质量。本文将从多个维度推荐实用的 IDEA 插件&#xff0c;并提供安装与使用指南。 一、代码辅助类插件 1. Key Promoter X —— 快捷键学习利器 功能介绍&#xff1a;当你使用鼠标点击某个功能时&#xff0c;…...

001大模型-认识大模型以及大模型应用场景

大模型是一种基于海量数据训练的人工智能系统&#xff0c;具备强大的语言理解和生成能力。其工作原理是通过深度学习算法&#xff0c;分析大量文本数据&#xff0c;学习语言模式和知识&#xff0c;从而能够处理复杂的任务。大模型的应用广泛&#xff0c;包括自然语言处理、机器…...

Qt进阶开发:QTcpServer的的详解

文章目录 一、QTcpServer 简介二、常用成员函数的使用三、信号函数的使用四、虚函数的使用五、连接多客户端-服务端示例一、QTcpServer 简介 QTcpServer 是 Qt 网络模块中的一个核心类,用于实现 基于 TCP 协议的服务端(Server),它负责监听端口、接收客户端连接请求,并通过…...

Spark,集群搭建之Yarn模式

以下是Spark基于Yarn模式的集群搭建关键步骤&#xff08;需先部署Hadoop Yarn集群&#xff09;&#xff1a; 一、环境准备 1. 确认Hadoop已运行 - 确保HDFS、Yarn ResourceManager和NodeManager正常启动。 2. 安装Java - 所有节点安装JDK 8&#xff0c;配置 JAVA_HOME 环境变量…...

fiddler 配置ios手机代理调试

平时做移动移动端开必的时候经常需要抓包手机&#xff0c;用于接口请求跟踪&#xff0c;但iOS的抓包经常性的配不成功&#xff0c;经过踩过不少坑后终于知道了整个配置流程&#xff0c;此文记录Fiddler抓包iOS手机的配置流程。 Step 1&#xff1a;Fiddler配置 通过工具栏Tool…...

iOS即时通信的技术要点

iOS即时通信开发的关键技术要点总结&#xff1a; 一、通讯协议选择 Socket通信 基础实现&#xff1a;使用原生BSD Socket或CFNetwork框架&#xff08;复杂&#xff09;&#xff0c;推荐第三方库如CocoaAsyncSocket&#xff08;封装GCDAsyncSocket&#xff09;&#xff0c;简化T…...

Windows 安装 Milvus

说明 操作系统&#xff1a;Window 中间件&#xff1a;docker desktop Milvus&#xff1a;Milvus Standalone&#xff08;单机版&#xff09; 安装 docker desktop 参考&#xff1a;Window、CentOs、Ubuntu 安装 docker-CSDN博客 安装 Milvus 参考链接&#xff1a;Run Mil…...

5G网络:能源管理的“智能电网“革命,Python如何成为关键推手?

5G网络&#xff1a;能源管理的"智能电网"革命&#xff0c;Python如何成为关键推手&#xff1f; 大家好&#xff0c;我是Echo_Wish。今天咱们聊一个既硬核又接地气的话题——5G网络如何用Python代码重构全球能源管理。 不知道你们有没有注意过&#xff1a; • 家里装…...

解决WSL、Ubuntu的.ico图标不正确显示缩略图

解决WSL、Ubuntu的.ico图标不正确显示缩略图 问题描述 Win10系统中由于更新了某些软件&#xff0c;篡改了默认的图像显示软件&#xff0c;导致WSL等软件未能成功显示图标&#xff0c;表现如下&#xff1a; 解决方法 将ico文件的默认打开方式更改为“画图”&#xff0c;如下…...

Redis+Caffeine构造多级缓存

一、背景 项目中对性能要求极高&#xff0c;因此使用多级缓存&#xff0c;最终方案决定是RedisCaffeine。其中Redis作为二级缓存&#xff0c;Caffeine作为一级本地缓存。 二、Caffeine简单介绍 Caffeine是一款基于Java 8的高性能、灵活的本地缓存库。它提供了近乎最佳的命中…...

Redis+Caffeine构建高性能二级缓存

大家好&#xff0c;我是摘星。今天为大家带来的是RedisCaffeine构建高性能二级缓存&#xff0c;废话不多说直接开始~ 目录 二级缓存架构的技术背景 1. 基础缓存架构 2. 架构演进动因 3. 二级缓存解决方案 为什么选择本地缓存&#xff1f; 1. 极速访问 2. 减少网络IO 3…...

【机器人】复现 UniGoal 具身导航 | 通用零样本目标导航 CVPR 2025

UniGoal的提出了一个通用的零样本目标导航框架&#xff0c;能够统一处理多种类型的导航任务。 支持 对象类别导航、实例图像目标导航和文本目标导航&#xff0c;而无需针对特定任务进行训练或微调。 本文分享UniGoal复现和模型推理的过程&#xff5e; 查找沙发&#xff0c;模…...

LeetCode 373 查找和最小的 K 对数字题解

LeetCode 373 查找和最小的 K 对数字题解 题目描述 给定两个以升序排列的整数数组 nums1 和 nums2&#xff0c;以及一个整数 k。定义一对值 (u,v)&#xff0c;其中第一个元素来自 nums1&#xff0c;第二个元素来自 nums2。请找到和最小的 k 个数对。 解题思路 最小堆优化法…...

搜索二维矩阵 II 算法讲解

搜索二维矩阵 II 算法讲解 一、问题描述 给定一个 m x n 的二维矩阵 matrix ,需要在其中搜索一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。要求编写一个高效的算法来完成搜索任务。 二、解题思路 方法一:暴力枚举 …...

三层交换机,单臂路由(用DHCP自动配置ip+互通+ACL

三层交换机&#xff0c;单臂路由&#xff08;用DHCP自动配置ip互通ACL 任务 1.用DHCP自动配置ip 2.三层交换机SVI、 3.单臂路由 4.互通 5.ACL三层交换机SVI 交换机 Switch>en Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(conf…...

OpenCV CUDA 模块中在 GPU 上对图像或矩阵进行 翻转(镜像)操作的一个函数 flip()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::cuda::flip 是 OpenCV 的 CUDA 模块中的一个函数&#xff0c;用于在 GPU 上对图像或矩阵进行 翻转&#xff08;镜像&#xff09;操作。它类似…...

链表面试题7之相交链表

来了来了&#xff0c;这道题才是值得我们奇思妙想的题,链接在下面。 160. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 看完题目一脸懵吗&#xff0c;没关系&#xff0c;我们还得看示例 还是一脸懵怎么办&#xff1f;&#xff1f; 两个链表相交的方式有几种&#xff1f;…...

Excel-to-JSON插件专业版功能详解:让Excel数据转换更灵活

前言 在数据处理和系统集成过程中&#xff0c;Excel和JSON格式的转换是一个常见需求。Excel-to-JSON插件提供了一套强大的专业版功能&#xff0c;能够满足各种复杂的数据转换场景。本文将详细介绍这些专业版功能的应用场景和使用方法。 订阅说明 在介绍具体功能之前&#xf…...

【C++】”如虎添翼“:模板初阶

泛型编程&#xff1a; C中一种使用模板来实现代码重用和类型安全的编程范式。它允许程序员编写与数据类型无关的代码&#xff0c;从而可以用相同的代码逻辑处理不同的数据类型。模板是泛型编程的基础 模板分为两类&#xff1a; 函数模板&#xff1a;代表了一个函数家族&#x…...

【K8S学习之探针】详细了解就绪探针 readinessProbe 和存活探针 livenessProbe 的配置

参考 Pod健康检查 Kubernetes 学习笔记Kubernetes 就绪探针&#xff08;Readiness Probe&#xff09; - 人艰不拆_zmc - 博客园Kubernetes存活探针&#xff08;Liveness Probe&#xff09; - 人艰不拆_zmc - 博客园 Pod健康检查 Pod的健康状态由两类探针来检查&#xff1a;…...

WSL 安装 Debian 12 后,Linux 如何安装 redis ?

在 WSL 的 Debian 12 上安装 Redis 的步骤如下&#xff1a; 1. 更新系统包列表 sudo apt update && sudo apt upgrade -y2. 安装 Redis sudo apt install redis-server -y3. 启动 Redis 服务 sudo systemctl start redis4. 设置开机自启 sudo systemctl enable red…...

python打卡day22

复习日 仔细回顾一下之前21天的内容&#xff0c;没跟上进度的同学补一下进度。 作业&#xff1a; 自行学习参考如何使用kaggle平台&#xff0c;写下使用注意点&#xff0c;并对下述比赛提交代码 kaggle泰坦里克号人员生还预测 就是很简单很草率地走了一遍机器学习的经典流程&am…...

国产化Excel处理控件Spire.XLS系列教程:如何通过 C# 删除 Excel 工作表中的筛选器

在 Excel 文件中&#xff0c;筛选器&#xff08;Filter&#xff09;是一个常用的数据处理工具&#xff0c;可以帮助用户快速按条件筛选数据行。但在数据整理完成、导出、共享或打印之前&#xff0c;往往需要 删除 Excel 工作表中的筛选器&#xff0c;移除列标题中的下拉筛选按钮…...

使用 DMM 测试 TDR

TDR&#xff08;时域反射计&#xff09;可能是实验室中上升时间最快的仪器&#xff0c;但您可以使用直流欧姆表测试其准确性。 TDR 测量什么 在所有高速通道中&#xff0c;反射都很糟糕。我们尝试设计一个通道来减少反射&#xff0c;这些反射都会导致符号间干扰 &#xff08;…...

基于卡尔曼滤波的传感器融合技术的多传感器融合技术(附战场环境模拟可视化代码及应用说明)

基于卡尔曼滤波的传感器融合技术的多传感器融合技术(附战场环境模拟可视化代码及应用说明) 1 目标运动状态空间建模1.1 状态向量定义1.2 状态转移方程1.3 观测模型构建2 卡尔曼滤波核心算法实现2.1 初始化2.2 预测步骤2.3 更新步骤3 多传感器融合仿真验证3.1 传感器模型模拟3…...

M8040A/M8199助力数据中心收发信机测试

随着数字通信和大数据的不断发展&#xff0c;误码率测试变得越来越重要。高性能误码率测试仪作为一种关键的测试设备&#xff0c;可以对数字信号进行高速、高精度的误码率测试&#xff0c;广泛应用于通信、数据中心、半导体等行业。 M8040A误码仪系统当前不仅在上游IP和顶层芯…...

傲云源墅:以五傲价值重构北京主城别墅格局

在高端别墅市场中&#xff0c;产品自身的品质与特色是吸引客户的关键。北京傲云源墅以其独特的 “五傲” 价值&#xff0c;重新定义了北京主城别墅的标准。 首先是低密之傲&#xff0c;傲云源墅的容积率低至约 0.9&#xff0c;与市场上 1.0 以上容积率的别墅相比&#xff0c;为…...

精益数据分析(56/126):创业阶段的划分与精益数据分析实践

精益数据分析&#xff08;56/126&#xff09;&#xff1a;创业阶段的划分与精益数据分析实践 在创业和数据分析的探索之旅中&#xff0c;理解创业阶段的划分以及与之对应的精益数据分析方法至关重要。今天&#xff0c;依旧怀揣着与大家共同进步的心态&#xff0c;深入研读《精…...

[redis进阶六]详解redis作为缓存分布式锁

目录 一 什么是缓存 缓存总结板书: 二 使⽤Redis作为缓存 三 缓存的更新策略 1) 定期⽣成 2) 实时⽣成 四 面试重点:缓存预热,缓存穿透,缓存雪崩 和缓存击穿 1)缓存预热 2)缓存穿透 3)缓存雪崩 4)缓存击穿 五 分布式锁 板书: 1)什么是分布式锁 2)分布式锁的基…...

【RabbitMQ】应用问题、仲裁队列(Raft算法)和HAProxy负载均衡

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【中间件】企业级中间件剖析 一、幂等性保障 什么是幂等性&#xff1f; 幂等性是指对一个系统进行重复调用&#xff08;相同参数&#xff09;&#xff0c;无论同一操作执行多少次&#xff0c;这些请求…...

国产密码新时代!华测国密 SSL 证书解锁安全新高度

在数字安全被提升到国家战略高度的今天&#xff0c;国产密码算法成为筑牢网络安全防线的关键力量。华测国密SSL证书凭借其强大性能与贴心服务&#xff0c;为企业网络安全保驾护航&#xff0c;成为符合国家安全要求的不二之选&#xff01;​ 智能兼容&#xff0c;告别浏览器适配…...

【Linux篇章】Linux 进程信号2:解锁系统高效运作的 “隐藏指令”,开启性能飞跃新征程(精讲捕捉信号及OS运行机制)

本篇文章将以一个小白视角&#xff0c;通俗易懂带你了解信号在产生&#xff0c;保存之后如何进行捕捉&#xff1b;以及在信号这个话题中&#xff1b;OS扮演的角色及背后是如何进行操作的&#xff1b;如何理解用户态内核态&#xff1b;还有一些可以引出的其他知识点&#xff1b;…...

C# 基础 try-catch代码块

​ try-catch代码块是C#中用于异常处理的核心机制。异常是在程序执行过程中可能出现的错误&#xff0c;而try-catch代码块允许您在执行代码时捕获并处理这些异常。 一、基础结构 try {//可能抛出异常的代码 } catch (ArgumentException ex) {//处理特定异常 } catch (Excepti…...

为什么 mac os .bashrc 没有自动加载?

原因说明 在macOS中&#xff0c;默认情况下&#xff0c;终端使用的是Bash或Zsh作为shell。对于较新版本的macOS&#xff08;从Catalina开始&#xff09;&#xff0c;默认的shell已经切换为Zsh。因此&#xff0c;如果你正在使用Zsh&#xff0c;.bashrc文件不会自动生效&#xf…...

【HarmonyOS Next之旅】DevEco Studio使用指南(二十二)

目录 1 -> 开发静态共享包 1.1 -> 创建库模块 1.2 -> 编译库模块 2 -> 开发动态共享包 2.1 -> 使用约束 2.2 -> 开发动态共享包 2.2.1 -> 创建HSP模块 2.2.2 -> 编译HSP模块 3 -> 发布共享包 1 -> 开发静态共享包 HAR(Harmony Archive…...

QT6.8安装教程

官网下载 链接&#xff1a; Index of /official_releases/online_installers 这个比较慢 建议去 清华大学开源软件镜像站&#xff1a;Index of /qt/archive/online_installers/4.9/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 根据自己什么系统选择 点击打开…...

【Rust泛型】Rust泛型使用详解与应用场景

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

一周学完计算机网络之三:1、数据链路层概述

简单的概述 数据链路层是计算机网络体系结构中的第二层&#xff0c;它在物理层提供的基本服务基础上&#xff0c;负责将数据从一个节点可靠地传输到相邻节点。可以将其想象成一个负责在两个相邻的网络设备之间进行数据 “搬运” 和 “整理” 的 “快递中转站”。 几个重要概念…...

配置ssh无密登录

在root下有一个.ssh文件夹&#xff0c;它的下面有一个known_hosts文件&#xff0c;这个里面记录了哪些其他的主机通过ssh访问过当前的主机。 免密登录原理 &#xff08;2&#xff09;生成公钥和私钥 具体操作&#xff1a; 1. 进入 hadoop1001 2. 运行命令&#xff1a;ssh-keyg…...

南京邮电大学金工实习答案

一、金工实习的定义 金工实习是机械类专业学生一项重要的实践课程&#xff0c;它绝非仅仅只是理论知识在操作层面的简单验证&#xff0c;而是一个全方位培养学生综合实践能力与职业素养的系统工程。从本质上而言&#xff0c;金工实习是学生走出教室&#xff0c;亲身踏入机械加…...

无偿帮写毕业论文

以下教程教你如何利用相关网站和AI免费帮你写一个毕业论文。毕竟毕业论文只要过就行&#xff0c;脱产学习这么多年&#xff0c;终于熬出头了&#xff0c;完成毕设后有空就去多看看亲人好友&#xff0c;祝好&#xff01; 一、找一个论文模板(最好是overleaf) 废话不多说&#…...

【高数上册笔记01】:从集合映射到区间函数

【参考资料】 同济大学《高等数学》教材樊顺厚老师B站《高等数学精讲》系列课程 &#xff08;注&#xff1a;本笔记为个人数学复习资料&#xff0c;旨在通过系统化整理替代厚重教材&#xff0c;便于随时查阅与巩固知识要点&#xff09; 仅用于个人数学复习&#xff0c;因为课…...

大数据从专家到小白

文章目录 数据湖技术Apache Iceberg FlinkHiveHadoopHDFS 数据湖技术 Apache Iceberg Iceberg是一个通用的表格式&#xff08;数据组织格式&#xff09;&#xff0c;它可以适配Presto&#xff0c;Spark等引擎提供高性能的读写和元数据管理功能。 Flink Hive Hadoop HDFS...

特励达力科LeCroy推出Xena Freya Z800 800GE高性能的800G以太网测试平台

Xena Freya Z800 800GE 是由全球领先的测试与测量解决方案提供商特励达力科公司&#xff08;Teledyne LeCroy&#xff09;开发的高性能以太网测试平台&#xff0c;专为满足从10GE到800GE数据中心互连速度的需求而设计。特励达力科公司在网络测试领域拥有超过50年的技术积累&…...

LeetCode 热题 100 98. 验证二叉搜索树

LeetCode 热题 100 | 98. 验证二叉搜索树 大家好&#xff0c;今天我们来解决一道经典的二叉树问题——验证二叉搜索树。这道题在 LeetCode 上被标记为中等难度&#xff0c;要求判断给定的二叉树是否是一个有效的二叉搜索树&#xff08;BST&#xff09;。 问题描述 给你一个二…...

Linux文件编程——open函数

在 Linux 系统中&#xff0c;文件操作不仅仅通过高级语言的标准库进行&#xff0c;底层的文件操作是通过 系统调用 来实现的。系统调用 是用户空间与操作系统内核之间的接口&#xff0c;允许程序请求操作系统提供的服务&#xff0c;包括文件读写、内存管理、进程控制等。本文将…...