【PostgreSQL数据分析实战:从数据清洗到可视化全流程】电商数据分析案例-9.1 业务场景与数据准备
👉 点击关注不迷路
👉 点击关注不迷路
👉 点击关注不迷路
文章大纲
- 9.1 业务场景与数据准备
- 9.1.1 业务场景描述
- 核心业务目标
- 业务挑战
- 9.1.2 数据来源与获取
- 数据源构成
- 数据获取方案
- 9.1.3 数据结构与字段说明
- 核心数据表设计
- 1. 订单事实表(fact_orders)
- 2. 用户维度表(dim_users)
- 3. 商品维度表(dim_products)
- 表关联关系
- 9.1.4 数据清洗与预处理
- 1. 缺失值处理
- 处理策略矩阵
- PostgreSQL实现
- 2. 异常值处理
- 检测与修正流程
- 3. 重复值处理
- 基于窗口函数去重
- 4. 数据标准化
- 地址字段拆分
- 9.1.5 数据质量评估
- 关键指标监控
- 可视化监控看板
- 9.1.6 数据安全与权限管理
- 敏感数据处理
- 9.1.7 数据准备阶段成果
9.1 业务场景与数据准备
9.1.1 业务场景描述
电商平台的数据分析需求贯穿运营全链路,从用户行为洞察到供应链优化,从营销效果评估到风险防控,数据驱动决策已成为行业标配。
- 本案例以某跨境电商平台为背景,聚焦用户消费行为分析与销售预测,通过PostgreSQL构建完整的数据处理与分析体系。
核心业务目标
-
- 用户分层与精准营销:通过
RFM模型(最近消费、消费频次、消费金额)
划分用户等级,制定差异化营销策略。
- 用户分层与精准营销:通过
-
- 销售趋势预测:基于历史订单数据,结合
时间序列分析预测未来销量
,优化库存管理。
- 销售趋势预测:基于历史订单数据,结合
-
- 异常交易检测:识别高风险订单
(如恶意刷单、退货异常),降低运营风险
。
- 异常交易检测:识别高风险订单
业务挑战
- 数据规模庞大:平台日均订单量超百万,涉及用户、商品、物流等多维度数据,需高效处理海量数据。
- 数据实时性要求高:大促期间数据增量激增(如双十一单日订单量达2.5亿单),需支持实时分析与决策。
- 数据质量参差不齐:原始数据存在
缺失值(如用户地址字段缺失率12%)、异常值(如负单价订单)和重复记录
,需系统性清洗。
9.1.2 数据来源与获取
数据源构成
数据类型 | 来源系统 | 典型字段 |
---|---|---|
交易数据 | 订单系统 | 订单ID、用户ID、商品ID、订单金额、下单时间、支付状态、物流状态 |
用户数据 | 用户中心 | 用户ID、注册时间、性别、年龄、历史浏览记录、收藏夹、收货地址 |
商品数据 | 商品中心 | 商品ID、商品名称、类目、价格、库存、品牌、供应商、商品描述 |
行为数据 | 埋点日志 | 用户ID、页面访问时间、点击路径、停留时长、搜索关键词、加入购物车时间 |
外部数据 | 第三方API | 汇率数据、天气数据、竞品价格、社交媒体舆情 |
数据获取方案
-
- 离线批量同步
- 使用PostgreSQL的
COPY
命令从CSV文件导入历史订单数据:COPY orders FROM '/data/orders.csv' DELIMITER ',' CSV HEADER;
- 通过
dblink
扩展跨库同步用户信息:CREATE EXTENSION dblink; INSERT INTO users SELECT * FROM dblink('host=user_db port=5432 user=admin password=secret dbname=user_db', 'SELECT * FROM user_info') AS t(id int, name text, age int);
-
- 实时数据接入
- 利用PostgreSQL的
NOTIFY / LISTEN
机制接收订单变更事件:-- 1. 先确保触发器函数已正确创建(若未创建) CREATE OR REPLACE FUNCTION order_notify() RETURNS TRIGGER AS $$ BEGIN-- 发送通知到指定频道(channel),内容为新订单的 IDPERFORM pg_notify('order_channel', NEW.order_id::text);RETURN NEW; -- 触发器函数必须返回 TRIGGER 类型 END; $$ LANGUAGE plpgsql;-- 2. 创建触发器(使用 PROCEDURE 替代 FUNCTION) CREATE TRIGGER order_trigger AFTER INSERT ON orders FOR EACH ROW EXECUTE PROCEDURE order_notify();
- 通过阿里云RDS PostgreSQL的OSS外部表功能实时写入行为日志:
CREATE FOREIGN TABLE user_behavior (user_id int,action_time timestamp,page_url text ) SERVER oss_server OPTIONS (bucket 'behavior-log',format 'csv' );
9.1.3 数据结构与字段说明
核心数据表设计
1. 订单事实表(fact_orders)
字段名 | 数据类型 | 说明 | 业务约束 |
---|---|---|---|
order_id | VARCHAR(32) | 订单唯一标识(UUID生成) | 主键 |
user_id | INT | 用户ID | 外键关联dim_users.user_id |
product_id | VARCHAR(20) | 商品ID | 外键关联dim_products.product_id |
order_amount | NUMERIC(10,2) | 订单金额(含运费) | 必须大于0 |
order_time | TIMESTAMP | 下单时间 | 时区统一为UTC+8 |
payment_status | VARCHAR(10) | 支付状态(待支付/已支付/支付失败) | 枚举值 |
logistics_status | VARCHAR(20) | 物流状态(待发货/运输中/已签收/退货中) | 枚举值 |
2. 用户维度表(dim_users)
字段名 | 数据类型 | 说明 | 清洗规则 |
---|---|---|---|
user_id | INT | 用户ID | 非空,主键 |
register_time | TIMESTAMP | 注册时间 | 格式统一为YYYY-MM-DD HH:MI:SS |
gender | VARCHAR(10) | 性别(男/女/未知) | 缺失值填充’未知’ |
age | INT | 年龄 | 异常值(>150)设为NULL |
address | TEXT | 常用收货地址 | 地址标准化(如拆分省市区) |
3. 商品维度表(dim_products)
字段名 | 数据类型 | 说明 | 分析价值 |
---|---|---|---|
product_id | VARCHAR(20) | 商品ID | 主键 |
product_name | VARCHAR(100) | 商品名称 | 去重,提取关键词 |
category | VARCHAR(50) | 商品类目(如服装/数码/家居) | 分层(一级类目/二级类目) |
price | NUMERIC(8,2) | 单价 | 与历史价格对比分析 |
stock | INT | 库存数量 | 监控缺货风险 |
表关联关系
9.1.4 数据清洗与预处理
1. 缺失值处理
处理策略矩阵
字段 | 缺失率 | 处理方法 | 验证方式 |
---|---|---|---|
用户地址 | 12% | 通过第三方地址库API补全,无法补全则保留NULL并标记为'地址不详' | 对比补全前后地址有效性比例 |
商品描述 | 5% | 删除缺失记录(不影响核心分析) | 检查删除前后商品类目分布变化 |
支付状态 | 0.3% | 关联支付流水表补全,仍缺失则标记为'状态异常' | 统计异常订单占比 |
PostgreSQL实现
-- 填充用户地址
UPDATE dim_users u
SET address = COALESCE(u.address, a.standard_address)
FROM address_api a
WHERE u.user_id = a.user_id AND u.address IS NULL;-- 标记支付状态异常订单
UPDATE fact_orders
SET payment_status = '状态异常'
WHERE payment_status IS NULL;
2. 异常值处理
检测与修正流程
-
- 单价异常:订单表中存在
price < 0
的记录(如退货订单),需将其金额标记为负数并关联退货单号。
UPDATE fact_orders SET order_amount = -order_amount WHERE product_id IN (SELECT product_id FROM dim_products WHERE is_returnable = TRUE);
- 单价异常:订单表中存在
-
- 时间异常:下单时间早于注册时间的记录,通过用户注册时间修正。
UPDATE fact_orders o SET order_time = u.register_time + INTERVAL '1 minute' FROM dim_users u WHERE o.user_id = u.user_id AND o.order_time < u.register_time;
3. 重复值处理
基于窗口函数去重
-- 保留同一用户同一商品的最新订单
WITH ranked_orders AS (SELECT order_id,user_id,product_id,ROW_NUMBER() OVER (PARTITION BY user_id, product_id ORDER BY order_time DESC) AS rnFROM fact_orders
)
DELETE FROM fact_orders
WHERE order_id IN (SELECT order_id FROM ranked_orders WHERE rn > 1);
4. 数据标准化
地址字段拆分
ALTER TABLE dim_users
ADD COLUMN province VARCHAR(20),
ADD COLUMN city VARCHAR(20),
ADD COLUMN district VARCHAR(20);UPDATE dim_users
SET province = SPLIT_PART(address, '省', 1),city = SPLIT_PART(SPLIT_PART(address, '省', 2), '市', 1),district = SPLIT_PART(SPLIT_PART(address, '省', 2), '市', 2);
9.1.5 数据质量评估
关键指标监控
指标名称 | 计算公式 | 阈值 | 监控频率 |
---|---|---|---|
缺失率 | (缺失记录数 / 总记录数) * 100% | <5% | 每日 |
重复率 | (重复记录数 / 总记录数) * 100% | <0.1% | 每日 |
异常值占比 | (异常记录数 / 总记录数) * 100% | <2% | 实时 |
数据一致性 | 关联表字段匹配率 | >99% | 每周 |
可视化监控看板
通过Grafana连接PostgreSQL,实时展示数据质量指标:
- 缺失值趋势图:按表和字段展示缺失率变化。
- 异常订单热力图:按时间和地区分布展示异常订单密度。
- 数据一致性仪表盘:监控订单表与用户表、商品表的关联匹配情况。
9.1.6 数据安全与权限管理
敏感数据处理
-
- 用户隐私保护:对用户手机号、身份证号等敏感字段进行脱敏处理。
CREATE OR REPLACE FUNCTION mask_phone(phone text) RETURNS text AS $$ BEGINRETURN SUBSTRING(phone, 1, 3) || '****' || SUBSTRING(phone, 8, 4); END; $$ LANGUAGE plpgsql;UPDATE dim_users SET phone = mask_phone(phone);
-
- 访问权限控制:通过PostgreSQL的角色管理(
ROLE
)和行级安全性(RLS
)限制数据访问。
CREATE ROLE analyst; GRANT SELECT ON fact_orders TO analyst;CREATE POLICY orders_policy ON fact_orders FOR SELECT TO analyst USING (user_id IN (SELECT user_id FROM dim_users WHERE department = '分析部'));
- 访问权限控制:通过PostgreSQL的角色管理(
9.1.7 数据准备阶段成果
成果类型 | 具体内容 | 业务价值 |
---|---|---|
清洗后数据集 | 包含100万条订单记录、50万用户、20万商品,缺失率<2%,异常值<1% | 为后续分析提供高质量数据基础 |
数据字典 | 详细记录各表字段定义、业务逻辑、清洗规则 | 确保团队数据理解一致 |
ETL工作流 | 自动化数据同步与清洗流程,每日处理延迟<5分钟 | 提升数据处理效率与可维护性 |
通过以上数据准备工作,我们构建了符合电商业务场景的PostgreSQL数据模型,为后续的用户行为分析、销售预测和异常检测奠定了坚实基础。
- 接下来将进入数据建模与可视化阶段,通过SQL查询和BI工具挖掘数据价值。
相关文章:
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】电商数据分析案例-9.1 业务场景与数据准备
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 9.1 业务场景与数据准备9.1.1 业务场景描述核心业务目标业务挑战 9.1.2 数据来源与获取数据源构成数据获取方案 9.1.3 数据结构与字段说明核心数据表设计1. 订单事实表&…...
PyTorch 入门与核心概念详解:从基础到实战问题解决
PyTorch 入门与核心概念详解:从基础到实战问题解决 前言 用PyTorch 编写 Transformer 模型时遇到了多个错误,包括维度不匹配、NaN 损失、注意力权重未记录以及 OpenMP 库初始化等问题。 本文基于以上,对 PyTorch 的基本解释,并对…...
【办公类-99-05】20250508 D刊物JPG合并PDF便于打印
背景需求 委员让我打印2024年2025年4月的D刊杂志,A4彩打,单面。 有很多JPG,一个个JPG图片打开,实在太麻烦了。 我需要把多个jpg图片合并成成为一个PDF,按顺序排列打印。 deepseek写Python代码 代码展示 D刊jpg图片合…...
【C++】手搓一个STL风格的string容器
C string类的解析式高效实现 GitHub地址 有梦想的电信狗 1. 引言:字符串处理的复杂性 在C标准库中,string类作为最常用的容器之一,其内部实现复杂度远超表面认知。本文将通过一个简易仿照STL的string类的完整实现,揭示其设…...
无实体对话式社交机器人 拟人化印象形成机制:基于多模态交互与文化适配的拓展研究
《如何感知AI对话者:无实体对话式社交机器人拟人化对其印象形成效果影响机制的实验研究》解析 一、研究背景与核心问题 (一)技术背景与研究动机 随着生成式AI技术发展,以ChatGPT、文心一言为代表的无实体对话式社交机器人兴起,用户对其高度拟人化特征有显著需求,如扮演…...
存储器:DDR和独立显卡的GDDR有什么区别?
本文来简要对比DDR(Double Data Rate SDRAM)和GDDR(Graphics Double Data Rate SDRAM)的区别,重点说明它们在设计、性能和应用上的差异: 1. 设计目标与架构 DDR:通用型DRAM,设计为…...
viewDesign里的table内嵌套select动态添加表格行绑定内容丢失
问题 描述 viewDesign里的table内嵌套select,表格的行数是手动点击按钮添加的,添加第一行选择select的内容能正常展示,添加第二行第一行的select的内容消失 代码 <FormItem label"内饰颜色"><Tableclass"mt_10&q…...
vue v-html无法解析<
vue v-html无法解析字符串的小于号 方法一:可以替换成转义符 (实际还是会报错) let str 12345<445667 str.replaceAll(<, <)方法二:可以替换成中文小于号 let str 12345<445667 str.replaceAll(<, <)...
COLT_CMDB_linux_userInfo_20250508.sh修复历史脚本输出指标信息中userName与输出信息不一致问题
#!/bin/bash #IT_BEGIN #IT_TYPE3 #IT SYSTEM_LINUX_AGENTUSERDISCOVER|discovery.user[disc] #原型指标 #IT_RULE SYSTEM_LINUX_AGENTUSERGROUPID|groupId[{#USERNAME}] #IT_RULE SYSTEM_LINUX_AGENTUSERHOME|userHome[{#USERNAME}] #IT_RULE SYSTEM_LINUX_AGENTUSERNAME|user…...
A. Row GCD(gcd的基本性质)
Problem - 1458A - Codeforces 思路: 首先得知道gcd的两个基本性质: (1) gcd(a,b)gcd(a,|b-a|) (2) gcd(a,b,c)gcd(a,gcd(b,c)) 结合题目所给的a1bj,a2bj...... anbj 根据第一条性质得到: gcd(a1bj,a2bj)gcd(…...
k8s术语之Horizontal Pod Autoscaling
应用的资源使用率通常都有高峰和低谷的时候,如何削峰填谷,提高整体的整体资源利用率,让service中的Pod个数自动调整呢?Horizontal Pod Autoscaling:使pod水平自动缩放。这个Object也是最能体现kubernetes之于传统运维价值的地方&a…...
函数级重构:如何写出高可读性的方法?
1. 引言:为什么方法级别的重构如此重要? 在软件开发中,方法(函数)是程序逻辑的基本单元。一个高质量的方法不仅决定了程序是否能正常运行,更直接影响到: 代码的可读性:能否让其他开发者快速理解可维护性:未来修改是否容易出错可测试性:是否便于编写单元测试协作效率…...
手撕基于AMQP协议的简易消息队列-8(单元测试的编写)
在MQTest中编写模块的单元测试 在MQTest中编写makefile文件来编译客户端模块 all:Test_FileHelper Test_Exchange Test_Queue Test_Binding Test_Message Test_VirtualHost Test_Route Test_Consumer Test_Channel Test_Connection Test_VirtualHost:Test_VirtualHost.cpp ..…...
硬件选型:工控机的选择要素
在机器视觉应用中,工控机作为核心计算设备,承担着图像处理、数据分析和设备控制等多重任务。由于机器视觉常常在工业自动化、质量检测和精密控制中发挥重要作用,工控机的选型直接影响系统的性能和可靠性。 1. 应用场景与需求 机器视觉系统广…...
【芯片设计- RTL 数字逻辑设计入门 4.1 -- verilog 组合逻辑和时序逻辑延时比较】
文章目录 Overview时间线简单示意Overview 我们来详细分析下面这段 RTL Code , sbcs_sbbusy 为什么会比 sbcs_sbbusy_nx 慢一拍(晚一个时钟周期变化)。 assign sbcs_sbbusy_nx = set_sbcs_sbbusy;always @(posedge clk or negedge dmi_resetn) beginif (!dmi_resetn) begi…...
关于ubuntu下交叉编译arrch64下的gtsam报错问题,boost中boost_regex.so中连接libicui18n.so.55报错的问题
交叉编译gtsam时遇到的报错信息如下:gtsam需要连接boost, 解决办法: 1.重新编译boost可解决。 2.自己搞定生成一个libicui18n.so.55。 由于我们的boost是公用的,因此1不太可能(我试过重新编译完boost,在编译gtsam完…...
IoT平台和AIoT平台的区别
1. 什么是AIoT平台? AIoT(人工智能物联网,Artificial Intelligence of Things)平台 是 人工智能(AI) 与 物联网(IoT) 深度融合的技术框架,通过将AI算法嵌入物联网终端或…...
iOS 模块化开发流程
iOS模块化开发是一种将大型项目拆分为独立、可复用模块的开发模式,能够提升代码可维护性、团队协作效率和动态交付能力。以下是iOS模块化开发的核心流程与关键要点: 一、模块化设计阶段 业务解耦与模块划分 横向分层:基础层(网络、…...
云原生安全治理体系建设全解:挑战、框架与落地路径
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:云原生环境下,安全治理正在被重构 在传统IT架构中,安全防护多依赖边界设备(如防火墙、WAF、堡垒机)进行集中式防护。然而,在云原生环境下,这种“边界式”安全模型正面临颠覆。 应用微服务化…...
如何在Vue-Cli中使用Element-UI和Echarts和swiper插件(低版本)
1st.Element-UI 1.1 安装 在终端输入 npm install element-ui 1.2 导入 在全局main.js中全局导入Element-UI: // 导入element-ui组件库 import ElementUI from element-ui; // 导入element-ui组件库的样式 import element-ui/lib/theme-chalk/index.css; // 注…...
[特殊字符]【实战教程】用大模型LLM查询Neo4j图数据库(附完整代码)
🌟 核心要点速览 ✅ 基于LangChain框架实现LLM查询Neo4j ✅ 使用Qwen2.5模型(实测Llama3.1查不出内容) ✅ 包含完整数据准备代码实现效果演示 ✅ GitHub/Gitee源码已同步(文末获取) 🛠️ 环境准备 1️⃣ 安装Neo4j图数据库 # Windows安装指南参考&…...
Qt获取CPU使用率及内存占用大小
Qt 获取 CPU 使用率及内存占用大小 文章目录 Qt 获取 CPU 使用率及内存占用大小一、简介二、关键函数2.1 获取当前运行程序pid2.2 通过pid获取运行时间2.3 通过pid获取内存大小 三、具体实现五、写在最后 一、简介 近期在使用软件的过程中发现一个有意思的东西。如下所示&a…...
算法解密:除自身以外数组的乘积问题详解
算法解密:除自身以外数组的乘积问题详解 一、引言 在算法的奇妙旅程中,我们时常会遇到一些看似简单却蕴含深刻智慧的问题,“除自身以外数组的乘积”就是其中之一。这个问题不仅考验我们对数组操作的熟练程度,还要求我们在特定的限制条件下(不能使用除法且时间复杂度为O(n…...
基于Kubernetes的Apache Pulsar云原生架构解析与集群部署指南(上)
#作者:闫乾苓 文章目录 概念和架构概述主要特点消息传递核心概念Pulsar 的消息模型Pulsar 的消息存储与分发Pulsar 的高级特性架构BrokerBookKeeperZooKeeper 概念和架构 概述 Pulsar 是一个多租户、高性能的服务器到服务器消息传递解决方案。Pulsar 最初由雅虎开…...
信创生态核心技术栈:数据库与中间件
🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开…...
CMU-15445(3)——PROJECT#1-BufferPoolManager-Task#1
PROJECT#1-BufferPoolManager 在完成了前面基础的PROJECT#0后,从本节开始才正式进入了CMU-15445的学习,最终目的是构建一个面向磁盘的数据库管理系统。 PROJECT#1 的主要任务是实现数据库管理系统的缓冲池管理器,缓冲池负责在主存缓冲区与持…...
《数据结构初阶》【链式二叉树】
《数据结构初阶》【链式二叉树】 前言:---------------树---------------什么是树?📌爱心❤小贴士:树与非树?树的基本术语有哪些?关于节点的一些定义:关于树的一些定义:关于森林的定…...
Oracle免费认证来袭
1、Oracle Cloud Infrastructure 2025 Foundations Associate” 🔗 考证地址:https://mylearn.oracle.com/ou/exam-unproctored/oracle-cloud-infrastructure-2025-foundations-associate-1z0-1085-25/148056/241954 2、Oracle Cloud Infrastructure 2…...
Vim 编辑器常用快捷键速查表
Vim 编辑器常用快捷键速查表 Vim 快捷键大全 **1. 基础操作****2. 光标移动****3. 编辑文本****4. 查找替换****5. 分屏操作****6. 可视化模式** **附:Vim 模式切换流程图** 1. 基础操作 快捷键功能说明i进入插入模式(光标前)a进入插入模式&…...
从父类到子类:C++ 继承的奇妙旅程(1)
前言: 在前文,小编讲述了C模板的进阶内容,下面我们就要结束C初阶的旅行,开始进入C进阶容的旅c程,今天旅程的第一站就是C三大特性之一——继承的旅程,各位扶好扶手,开始我们今天的C继承的奇妙旅程…...
HTML9:页面结构分析
页面结构分析 元素名描述header标题头部区域的内容(用于页面或页面中的一块区域)footer标记脚部区域的内容(用于整个页面或页面的一块区域)sectionWeb页面的一块独立区域article独立的文章内容aside相关的内容或应用(…...
LabVIEW超声波液位计检定
在工业生产、运输和存储等环节,液位计的应用十分广泛,其中超声波液位计作为非接触式液位测量设备备受青睐。然而,传统立式水槽式液位计检定装置存在受建筑高度影响、量程范围受限、流程耗时长等问题,无法满足大量程超声波液位计的…...
maven 安装 本地 jar
命令: mvn install:install-file -DgroupIdnet.pingfang.application -DartifactIdjna -Dversion5.1.0 -Dpackagingjar -DfileD:\maven\repository1\jna\5.1.0\jna-5.1.0.jarmvn:这是Maven的执行命令。 install:install-file:这是Maven插件目…...
leetcode 141. Linked List Cycle
题目描述: 代码: 用哈希表也可以解决,但真正考察的是用快慢指针法。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Soluti…...
【Python】通过`Editable Install`模式详解,解决Python开发总是import出错的问题
摘要 田辛老师在很久以前,写过一篇关于Python的模块、包之间的内部关系的博客,叫做【Python】__init__.py 文件详解。 虽然我觉得这篇文章已经足够了, 但是还是有很多朋友碰到开发的过程中import包报错的问题。 今天, 田辛老师想…...
C 语言网络编程问题:E1696 无法打开 源 文件 “sys/socket.h“
#include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h>在 C 语言网络编程中,上述代码报如下错误 E1696 无法打开 源 文件 "sys/socket.h"E1696 无法打开 源 文件 "netinet/in.h" E1696 无法打开 源 文件…...
操作指南*
任务1: 环境搭建 1.1 创建Spring Boot项目 操作步骤: 使用IDEA创建项目: 打开IDEA → File → New → Project选择 Spring Initializr → 设置项目信息(Group、Artifact、Java版本)选择依赖:Spring Web、MySQL Drive…...
VRM Add-on for Blender 学习笔记
VRM Add-on for Blender 使用教程-CSDN博客 VRM Add-on for Blender 是 Blender 的一个官方插件,主要用于 导入和导出 VRM 格式的 3D 模型。VRM(Virtual Reality Model)是一种开放标准的 3D 人形角色模型格式,起源于日本…...
C++ 完美转发
C 完美转发逐步详解 1. 问题背景与核心目标 在 C 模板编程中,若直接将参数传递给其他函数,参数的 值类别(左值/右值)和 类型信息(如 const)可能会丢失。例如: template<typename T> voi…...
学习记录:DAY23
项目开发与学习记录:字段注入优化 前言 我总有一种什么大的要来了的危机感。还是尽快把项目做起来吧,现在全在弄底层的框架。这是一个两天的blog,前一天bug没修好,气到连blog都没写。 日程 5月7日 晚上7点:本来想玩…...
Linux 信号(下篇)
Linux 信号-CSDN博客(上篇) 前言:在我上一篇博客写到了信号产生的三种条件分别是键盘组合键、kill命令、系统调用接口; 接下来我要把信号产生剩余的两个条件介绍完毕并理解信号的保存,和信号从产生到保存到处理整个过…...
hadoop中的序列化和反序列化(1)
1. 什么是序列化和反序列化 序列化(Serialization) 是将对象的状态信息转换为可以存储或传输的格式的过程。序列化后的对象可以保存到文件中,或者通过网络传输。 反序列化(Deserialization) 是序列化的逆过程&#x…...
linux查java进程CPU高的原因
问题:linux查java进程CPU高的原因 解决:用jdk带的工具分析 被查的java最好也使用jdk启动 systemctl启动的注意要去掉PrivateTmptrue /opt/jdk1.8.0_441/bin/jps -l top -Hp 8156 printf "%x" 8533 /opt/jdk1.8.0_441/bin/jstack 8156 |…...
鸿蒙开发——3.ArkTS声明式开发:构建第一个ArkTS应用
鸿蒙开发——3.ArkTS声明式开发:构建第一个ArkTS应用 一、创建ArkTS工程二、ArkTS工程目录结构(Stage模型)三、构建第一个页面四、构建第二个页面五、实现页面之间的跳转六、模拟器运行 一、创建ArkTS工程 1、若首次打开DevEco Studio,请点击…...
vue3+ts的watch全解!
vue3中的watch只能监听以下四种数据: 1.ref定义的数据 2.reactive定义的数据 3.函数返回一个值(getter函数) 4.一个包含上述内容的数组 通常我们在使用watch的时候,通常会遇到以下几种情况: 情况一: …...
yarn的概述
1.Yarn的定义 2.Yarn的三大组件 3.Yarn的调度策略 1. YARN的定义 YARN(Yet Another Resource Negotiator) 是Hadoop生态系统中的一个资源管理框架,用于管理和调度集群中的计算资源。它允许多个应用程序在同一个集群上高效地运行,…...
C++初阶-string类4
目录 1.String operations 1.1string::c_str 1.2string::data 1.3string::copy 1.4string::find 1.5string::rfind 1.6string::find_first_of 1.7string::find_last_of 1.8string::find_first_not_of和string::find_last_not_of find_first_not_of 功能 典型用途 f…...
HarmonyOS NEXT深度解析:自研框架ArkUI-X的技术革命与跨平台实践
HarmonyOS NEXT~深度解析:自研框架ArkUI-X的技术革命与跨平台实践 引言:ArkUI-X的诞生背景与战略意义 在HarmonyOS NEXT全面摒弃AOSP代码的历史性转折点上,华为推出的ArkUI-X框架标志着国产操作系统研发进入深水区。根据华为202…...
CUDA:out of memory的解决方法(实测有效)
一、问题概述 1.问题分析 CUDA out of memory问题通常发生在深度学习训练过程中,当GPU的显存不足以容纳模型、输入数据以及中间计算结果时就会触发。这个问题可能由几个因素引起: 模型和数据规模:深度学习模型尤其是大型模…...
canal mysqltomysql增加同步的库操作
例如增加库 online 1、停止canal.adapter 服务。 ./bin/stop.sh2、备份数据库online,导入目标mysql 备份 mysqldump -h 127.0.0.1 -P 3307 --single-transaction -uroot -p -B online > online.sql导入 mysql -h 127.0.0.1 -P 3308 -uroot -p < onl…...