【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-A. PostgreSQL常用函数速查表
👉 点击关注不迷路
👉 点击关注不迷路
👉 点击关注不迷路
文章大纲
- PostgreSQL常用函数速查表:从数据清洗到分析的全场景工具集
- 引言
- 一、字符串处理函数
- 1.1 基础操作函数
- 1.2 模式匹配函数(正则表达式)
- 二、数值计算函数
- 2.1 基础运算函数
- 2.2 统计相关函数
- 三、日期与时间函数
- 3.1 基础日期操作
- 3.2 日期算术运算
- 四、聚合函数与窗口函数
- 4.1 聚合函数
- 4.2 窗口函数
- 五、类型转换函数
- 六、条件判断函数
- 结语
我将围绕《PostgreSQL数据分析实战》附录-A
的内容,以常用函数分类的形式,详细介绍各函数的描述、语法、示例及返回值,通过表格和具体数据让内容更清晰易懂,为读者呈现一份实用的速查表博客。
PostgreSQL常用函数速查表:从数据清洗到分析的全场景工具集
引言
在PostgreSQL数据分析场景中,熟练掌握内置函数是提升数据处理效率的关键。
- 本文基于
《PostgreSQL数据分析实战:从数据清洗到可视化全流程》附录A
,整理了字符串处理、数值计算、日期操作、聚合统计等核心功能模块的常用函数,结合具体业务场景示例,帮助读者快速掌握函数应用技巧。 所有示例基于以下测试表结构
:
CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50),salary NUMERIC(10,2),hiredate DATE,department VARCHAR(30)
);-- 示例数据
INSERT INTO employees VALUES
(1, 'Alice Smith', 85000.00, '2020-01-15', 'Engineering'),
(2, 'Bob Johnson', 72000.50, '2021-03-20', 'Marketing'),
(3, 'Charlie Brown', 68000.75, '2022-05-25', 'Sales');
一、字符串处理函数
字符串函数是数据清洗阶段的核心工具,常用于处理不规范文本、提取关键信息或拼接输出内容
。
1.1 基础操作函数
函数名 | 描述 | 语法 | 示例 | 返回值 |
---|---|---|---|---|
CONCAT | 拼接字符串 | CONCAT(str1, str2, …) | CONCAT(‘Hello’, ’ ', ‘World’) | “Hello World” |
SUBSTRING | 提取子字符串 | SUBSTRING(str FROM start [FOR length]) | SUBSTRING(‘PostgreSQL’, 3, 4) | “stgr” |
TRIM | 去除首尾指定字符(默认空格) | TRIM([LEADING/TRAILING/BOTH] [chars] FROM str) | TRIM(’ data ') | “data” |
REPLACE | 替换指定子串 | REPLACE(str, old_str, new_str) | REPLACE(‘a_b_c’, ‘_’, ‘-’) | “a-b-c” |
UPPER/LOWER | 转换大小写 | UPPER(str)/LOWER(str) | UPPER(‘hello’) | “HELLO” |
1.2 模式匹配函数(正则表达式)
函数名 | 描述 | 语法 | 示例 | 返回值 |
---|---|---|---|---|
REGEXP_MATCHES | 返回匹配正则的所有子串 | REGEXP_MATCHES(str, pattern, [flags]) | REGEXP_MATCHES(‘a1b2c3’, ‘\d’) | {1,2,3}(数组) |
REGEXP_REPLACE | 使用正则替换子串 | REGEXP_REPLACE(str, pattern, replacement, [flags]) | REGEXP_REPLACE(‘abc123’, ‘\d+’, ‘NUM’) | “abcNUM” |
SPLIT_PART | 按分隔符拆分字符串并返回指定部分 | SPLIT_PART(str, delimiter, part) | SPLIT_PART(‘a,b,c’, ‘,’, 2) | “b” |
- 业务场景示例:清洗员工姓名格式
-- 去除姓名前后空格并统一首字母大写
UPDATE employees SET name = INITCAP(TRIM(name));
-- 提取姓名中的姓氏(假设姓名格式为“名 姓”)
SELECT name, SPLIT_PART(name, ' ', 2) AS last_name FROM employees;
二、数值计算函数
数值函数用于数据转换、统计计算和数学运算,支持整数、浮点数和精确数值类型。
2.1 基础运算函数
函数名 | 描述 | 语法 | 示例 | 返回值 |
---|---|---|---|---|
ROUND | 四舍五入 | ROUND(num [, decimal_places]) | ROUND(123.456, 2) | 123.46 |
CEIL/FLOOR | 向上/向下取整 | CEIL(num)/FLOOR(num) | CEIL(3.14) | 4 |
ABS | 绝对值 | ABS(num) | ABS(-100) | 100 |
MOD | 取模运算 | MOD(num, divisor) | MOD(7, 3) | 1 |
POWER | 幂运算 | POWER(base, exponent) | POWER(2, 3) | 8 |
2.2 统计相关函数
函数名 | 描述 | 语法 | 示例 | 返回值 |
---|---|---|---|---|
AVG | 平均值 | AVG(column) | AVG(salary) | 75000.42(假设) |
SUM | 求和 | SUM(column) | SUM(salary) | 225001.25 |
COUNT | 计数 | COUNT([DISTINCT] column) | COUNT(DISTINCT department) | 3 |
业务场景示例:计算员工薪资等级
-- 将薪资四舍五入到千位并分类
SELECT name, salary, CASE WHEN ROUND(salary / 1000) >= 80 THEN '高薪'WHEN ROUND(salary / 1000) >= 70 THEN '中等'ELSE '基础'END AS salary_level
FROM employees;
三、日期与时间函数
日期函数在时间序列分析、数据过滤和趋势计算中不可或缺,支持DATE、TIME、TIMESTAMP类型。
3.1 基础日期操作
函数名 | 描述 | 语法 | 示例 | 返回值 |
---|---|---|---|---|
CURRENT_DATE | 获取当前日期 | CURRENT_DATE | CURRENT_DATE | 2025-05-14(当前日期) |
AGE | 计算时间间隔 | AGE(end_date, start_date) | AGE(hiredate, ‘2020-01-01’) | 间隔年数/月数/天数 |
EXTRACT | 提取日期部分 | EXTRACT(part FROM date) | EXTRACT(YEAR FROM hiredate) | 2020 |
DATE_PART | 等价于EXTRACT | DATE_PART(part, date) | DATE_PART(‘month’, hiredate) | 1 |
DATE_TRUNC | 截断日期到指定精度 | DATE_TRUNC(part, date) | DATE_TRUNC(‘year’, hiredate) | 2020-01-01 |
3.2 日期算术运算
操作符 | 描述 | 语法 | 示例 | 返回值 |
---|---|---|---|---|
+ | 日期加天数/时间间隔 | date + INTERVAL 'n day' | hiredate + INTERVAL ‘1 year’ | 2021-01-15 |
- | 日期减天数/计算时间差 | date - INTERVAL 'n day' | CURRENT_DATE - hiredate | 间隔天数 |
BETWEEN | 判断日期是否在区间内 | date BETWEEN start AND end | hiredate BETWEEN ‘2020-01-01’ AND ‘2022-12-31’ | TRUE/FALSE |
- 业务场景示例:计算员工工龄
SELECT name,EXTRACT(YEAR FROM AGE(hiredate)) AS years_of_service, -- 完整工龄(年)(EXTRACT(YEAR FROM CURRENT_DATE) * 12 + EXTRACT(MONTH FROM CURRENT_DATE)) -- 当前总月数- (EXTRACT(YEAR FROM hiredate) * 12 + EXTRACT(MONTH FROM hiredate)) -- 入职总月数AS months_worked -- 累计完整月份数
FROM employees;
四、聚合函数与窗口函数
聚合函数用于分组统计,窗口函数则在保留行级别数据的同时进行分组计算,常用于排名、累计值等场景
。
4.1 聚合函数
函数名 | 描述 | 语法 | 示例 | 返回值 |
---|---|---|---|---|
COUNT | 统计行数 | COUNT(*) / COUNT(column) | COUNT(*) FROM employees | 3 |
SUM | 求和 | SUM(salary) | SUM(salary) | 225001.25 |
AVG | 平均值 | AVG(salary) | AVG(salary) | 75000.42 |
MAX/MIN | 最大值/最小值 | MAX(salary)/MIN(salary) | MAX(salary) | 85000.00 |
4.2 窗口函数
函数名 | 描述 | 语法 | 示例 | 返回值 |
---|---|---|---|---|
ROW_NUMBER() | 行号排序(无并列) | ROW_NUMBER() OVER (ORDER BY salary DESC) | 按薪资降序排名 | 1,2,3 |
RANK() | 排名(并列同号,跳过后续) | RANK() OVER (ORDER BY salary DESC) | 薪资排名(可能有并列) | 1,2,2 |
DENSE_RANK() | 密集排名(并列同号,不跳过) | DENSE_RANK() OVER (ORDER BY salary DESC) | 连续排名 | 1,2,2 |
SUM() OVER() | 分组累计和 | SUM(salary) OVER (PARTITION BY department ORDER BY hiredate) | 部门内按入职时间累计薪资 | 累计值序列 |
- 业务场景示例:查询各部门薪资排名
SELECT name, department, salary,RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS dept_rank
FROM employees;
五、类型转换函数
类型转换函数用于处理不同数据类型间的兼容问题,确保计算和存储的正确性。
函数名 | 描述 | 语法 | 示例 | 返回值 |
---|---|---|---|---|
CAST | 显式类型转换 | CAST(expr AS type) | CAST(‘123’ AS INT) | 123 |
:: | 类型转换操作符 | expr::type | ‘2020-01-01’::DATE | 日期类型值 |
TO_CHAR | 日期/数值转字符串 | TO_CHAR(date, format) | TO_CHAR(hiredate, ‘YYYY-MM-DD’) | “2020-01-15” |
TO_NUMBER | 字符串转数值 | TO_NUMBER(str, format) | TO_NUMBER(‘12,345’, ‘99G999’) | 12345 |
- 业务场景示例:格式化薪资输出
SELECT name, TO_CHAR(salary, '$999,999.00') AS formatted_salary
FROM employees;
六、条件判断函数
条件函数用于根据不同逻辑分支返回对应结果,是数据清洗和业务逻辑实现的核心。
函数名 | 描述 | 语法 | 示例 | 返回值 |
---|---|---|---|---|
CASE WHEN | 多条件分支判断 | CASE WHEN condition THEN result [ELSE default] END | CASE WHEN salary > 80000 THEN ‘Senior’ ELSE ‘Junior’ END | “Senior"或"Junior” |
COALESCE | 返回第一个非空值 | COALESCE(expr1, expr2, …) | COALESCE(NULL, ‘Default’) | “Default” |
NULLIF | 相等则返回NULL,否则返回原值 | NULLIF(expr1, expr2) | NULLIF(10, 10) | NULL |
- 业务场景示例:处理缺失部门数据
UPDATE employees SET department = COALESCE(department, 'Unknown');
- 快速查询各函数帮助文档
-- 输入 \h 函数名 查看帮助(以 CONCAT 为例):
\h CONCAT-- \df 是 psql 的元命令,用于列出数据库中所有函数(可结合通配符过滤)。
\df CONCAT -- 查看所有名为 CONCAT 的函数-- 快速查询各函数帮助文档
-- 示例:查询CONCAT函数用法
-- 查询 CONCAT 函数的元数据
SELECT proname AS 函数名,pg_get_function_arguments(oid) AS 参数,pg_typeof(prorettype) AS 返回类型,prosrc AS 函数定义(部分)
FROM pg_proc
WHERE proname = 'concat';
结语
本文整理的PostgreSQL常用函数覆盖了
数据清洗、转换、分析和可视化的全流程场景
。
- 建议读者通过实际数据集练习函数组合使用,
例如结合正则表达式清洗不规范文本,再通过窗口函数进行分组排名,最终用TO_CHAR函数格式化输出结果
。- 后续文章将深入探讨如何利用这些函数构建复杂数据分析模型,敬请关注!
以上博客全面梳理了PostgreSQL常用函数。
- 你若觉得某些函数介绍不够详细,或想增加其他类型函数,欢迎告诉我。
相关文章:
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-A. PostgreSQL常用函数速查表
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL常用函数速查表:从数据清洗到分析的全场景工具集引言一、字符串处理函数1.1 基础操作函数1.2 模式匹配函数(正则表达式) 二、数…...
【软件测试】:推荐一些接口与自动化测试学习练习网站(API测试与自动化学习全攻略)
一、API测试练习平台 Postman Learning Center (https://learning.postman.com/) 特点:Postman官方学习中心,提供API测试完整教程(含视频、文档、沙盒环境) 练习场景:请求构造、环境变量、自动…...
iOS Safari调试教程
iOS Safari调试 本教程将指导您如何使用WebDebugX调试iOS设备上的Safari浏览器。通过本教程,您将学习如何连接iOS设备、调试Safari中的网页、分析性能问题以及解决常见的调试挑战。 准备工作 在开始调试iOS Safari之前,请确保您已经: 安装…...
Java 大视界——Java 大数据在智慧交通智能停车诱导系统中的数据融合与实时更新
面对城市停车资源错配导致的30%以上交通拥堵问题,本文以某新一线城市智慧交通项目为蓝本,深度解析Java大数据技术如何实现多源停车数据融合、动态路径规划与诱导策略优化。通过构建“感知-计算-决策”全链路系统,实现车位状态更新延迟<200…...
KUKA库卡焊接机器人智能气阀
在工业焊接的大舞台上,成本把控与环保考量愈发重要。KUKA 库卡焊接机器人智能气阀,作为前沿科技结晶,成为实现库卡焊接机器人节气的关键 “利器”,助力企业在降本增效与绿色发展之路上大步迈进。 智能气阀融合先进传感与智能调…...
react中安装依赖时的问题 【集合】
目录 依赖升级/更新 1、 npm install --save-dev 与 npm install 的区别 1. 安装位置(依赖类型) 2. package.json 中的区别 3. 示例 4. 何时使用哪种方式 2、npm install 和 yarn add 有什么不一样吗 命令语法: …...
【网络实验】-BGP-EBGP的基本配置
实验拓扑 实验要求: 使用两种方式建立不同AS号的BGP邻居,不同AS号路由器之间建立的邻居称为EBGP邻居 实验目的: 熟悉使用物理口和环回口建立邻居的方式 IP地址规划: 路由器接口IP地址AR1G0/0/012.1.1.1/24AR1Loopback 01.1.1…...
【嵌入式开发-按键扫描】
嵌入式开发-按键扫描 ■ 1. 按键■ 按键队列发送后在读取队列处理■ 定时器30ms扫描一次,并通过MsgAdd(msg); 发送出去。 ■ 2. 触摸屏处理■■ ■ 1. 按键 ■ 按键队列发送后在读取队列处理 // key queue #define KEY_QUEUE_MAX 5typedef enum {KEY_TYPE_IR 0,K…...
NineData 社区版 V4.1.0 正式发布,新增 4 条迁移链路,本地化数据管理能力再升级
NineData 社区版 V4.1.0 正式更新发布。本次通过新增 4 条迁移链路扩展、国产数据库深度适配、敏感数据保护增强等升级,进一步巩固了其作为高效、安全、易用的数据管理工具的定位。无论是开发测试、数据迁移,还是多环境的数据管理,NineData…...
TypeScript装饰器:从入门到精通
TypeScript装饰器:从入门到精通 什么是装饰器? 装饰器(Decorator)是TypeScript中一个非常酷的特性,它允许我们在不修改原有代码的情况下,给类、方法、属性等添加额外的功能。想象一下装饰器就像给你的代码…...
R语言学习--Day02--实战经验反馈
最近在做需要用R语言做数据清洗的项目,在网上看再多的技巧与语法,都不如在项目中实战学习的快,下面是我通过实战得来的经验。 判断Rstudio是否卡死 很多时候,我们在运行R语言代码时,即使只是运行框选的几行代码&#…...
《AI驱动的智能推荐系统:原理、应用与未来》
一、引言 在当今信息爆炸的时代,用户面临着海量的信息选择,从购物平台上的商品推荐到流媒体服务中的影视推荐,智能推荐系统已经成为我们日常生活中不可或缺的一部分。AI驱动的智能推荐系统通过分析用户的行为和偏好,为用户提供个性…...
AR禁毒:科技赋能,筑牢防毒新防线
过去,传统禁毒宣传教育方式对普及禁毒知识、提高禁毒意识意义重大。但随着时代和社会环境变化,其困境逐渐显现。传统宣传方式单一,主要依靠讲座、发传单、办展览。讲座形式枯燥,对青少年吸引力不足;发传单易被丢弃&…...
Ubuntu摄像头打开失败
如果遇见上面Ubuntu连接摄像头但无法打开如以上 先安装cheese apt install cheese 打开终端控制台,输入以下命令 ls /dev/video* 出现以上有设备的情况,我们采用以下解决 : 1、点击虚拟机->点击设置 2、 进入设置界面点击USB控制器&a…...
Ascend的aclgraph(七)AclConcreteGraph:capture_begin
1 回顾 在上一章Ascend的aclgraph(六)AclConcreteGraph中提到了capture_begin和capture_end两个函数,这2个函数是pybind形式,调用到torch_npu中去执行。 大概流程图如下: def __enter__(self):# Free as much memory as we can…...
JT/T 808 各版本协议字段级别对比与解析适配建议
文章目录 一、概述二、字段级对比表(以核心消息为例)三、版本文档结构差异分析四、Java 协议解析适配建议4.1、协议版本识别策略:4.2、可扩展消息体结构设计:4.3、字段兼容处理建议:4.4、推荐使用解析库或框架…...
Kafka 消费者组进度监控方法解析
#作者:张桐瑞 文章目录 前言一、使用 Kafka 自带命令行工具 kafka-consumer-groups 脚本二、使用 Kafka Java Consumer API 编程三、使用 Kafka 自带的 JMX 监控指标 前言 在 Kafka 消息队列系统中,对于 Kafka 消费者而言,监控其消费进度&a…...
国产大模型 “五强争霸”,决战 AGI
中国 AI 大模型市场正经历一场史无前例的洗牌!曾经 “百模混战” 的局面已落幕,字节、阿里、阶跃星辰、智谱和 DeepSeek 五大巨头强势崛起,形成 “基模五强” 新格局。这场竞争不仅是技术实力的较量,更是资源、人才与生态的全面博…...
lesson01-PyTorch初见(理论+代码实战)
一、初识PyTorch 二、同类框架 PyTorchVSTensorFlow 三、参数 对比 四、PyTorch生态 四、常用的网络层 五、代码分析 import torch from torch import autogradx torch.tensor(1.) a torch.tensor(1., requires_gradTrue) b torch.tensor(2., requires_gradTrue) c tor…...
几种运放典型应用电路
运算放大器简称:OP、OPA、OPAMP、运放。 一、电压跟随器 电压跟随器顾名思义运放的输入端电压与运放的输出电压相等 这个电路一般应用目的是增加电压驱动能力: 比如说有个3V电源,借一个负载,随着负载电流变大,3V就会变小说明3V电源带负载能力小,驱动能力弱,这个时候…...
Mybatis——动态sql
<if> 实现方式 动态标签 <if> 条件判断,进行sql语句拼接 成立则拼接 <where> 进行条件子句拼接,防止and重复 if案例 crtl alt L 格式化 <foreach>——用于批量操作(删除) <include>...
技术社区集锦
推荐地址 社区汇总地址 https://juejin.cn/post/7468935497799286834 社区 项目ValueValueGitHubgithub.com-----Giteegitee.com-----StackOverflowstackoverflow.com全球知名的技术问答网站博客园www.cnblogs.com开发者的知识分享社区稀土掘金juejin.cn技术内容分享与交流平…...
【Elasticsearch】DSL 篇
Elasticsearch 之 DSL 篇 介绍 Elasticsearch 提供了基于 JSON 的 DSL 语句来定义查询条件,其 JavaAPI 就是在组织 DSL 条件。 先学习 DSL 的查询语法,然后再基于 DSL 来对照学习 JavaAPI,就会事半功倍 json 格式,好理解&#…...
常见 RPC 协议类别对比
RPC(Remote Procedure Call,远程过程调用)协议是分布式系统中实现跨进程通信的核心机制之一。它允许客户端像调用本地函数一样调用远端服务器上的函数。 根据通信方式、数据编码方式和平台兼容性不同,常见的 RPC 协议分为以下几类…...
React系列——nvm、node、npm、yarn(MAC)
nvm,node,npm之间的区别 1、nvm:nodejs版本管理工具。nvm 可以管理很多 node 版本和 npm 版本。 2、nodejs:在项目开发时的所需要的代码库 3、npm:nodejs包管理工具。nvm、nodejs、npm的关系 nvm 管理 nodejs 和 npm…...
LeetCode 热题 100 230. 二叉搜索树中第 K 小的元素
LeetCode 热题 100 | 230. 二叉搜索树中第 K 小的元素 大家好,今天我们来解决一道经典的二叉搜索树问题——二叉搜索树中第 K 小的元素。这道题在 LeetCode 上被标记为中等难度,要求查找二叉搜索树中的第 K 小的元素。 问题描述 给定一个二叉搜索树的根…...
vscode - 笔记
1 IDE就用vscode,安装Remote-SSH插件通过SSH访问树莓派里的文件夹 写在开始:阿尔法Linux开发板学习开始 - 银色的音色 - 博客园 2 VSCode之Linux C/C开发和调试 VSCode之Linux C/C开发和调试 CMake代码编译 json配置_哔哩哔哩_bilibili 3 VS Code 凭…...
使用VSCode编辑Markdown+PlantUml
vscode :https://code.visualstudio.com/ 什么是markdown: Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。 Markdown 编写的文档可以导出 HTML 、Word、图像、PDF、Epub 等多种格式的文档。 在vscode上安装MarkDown相关…...
关于 Golang GC 机制的一些细节:什么是根对象?GC 机制的触发时机?
文章目录 关于 Golang GC 机制的一些细节:什么是根对象?GC 机制的触发时机?简要回顾 Golang GC 三色标记法的工作流程什么是根对象?GC 的触发时机? 关于 Golang GC 机制的一些细节:什么是根对象?…...
内存虚拟盘(RAMDisk)是什么?
内存虚拟盘(RAMDisk)是一种通过软件将计算机的部分物理内存(RAM)模拟为硬盘驱动器的技术,利用内存的高速读写特性显著提升数据访问效率。以下从原理、优势、实现方式及应用场景等方面详细解析: 1. 技术原…...
深入浅出入侵检测系统(IDS)的工作原理与应用场景
网络安全界的“火眼金睛”:入侵检测系统IDS 一、IDS简介:网络安全界的“火眼金睛” 在计算机安全领域,有一个“火眼金睛”的角色,它能在网络世界中识破各种“妖魔鬼怪”的伪装,及时发出警报,保护我们的数…...
AISBench benchmark评测工具实操-精度评测场景-采用命令行指定模型和数据集的方式
一、环境信息 1.1.硬件设备 昇腾Atlas800 I A2:910A 01:00.0 Processing accelerators: Huawei Technologies Co., Ltd. Device d801 (rev 20) 1.2.软件信息 1.2.1模型: DeepSeek-R1-Distill-Qwen-1.5B 1.2.2.物理机系统: NAME="EulerOS" VERSION="2.0 …...
HTTP GET报文解读
考虑当浏览器发送一个HTTP GET报文时,通过Wireshark 俘获到下列ASCII字符串: GET /cs453/index.html HTTP/1.1 Host: gaia.cs.umass.edu User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax) Acc…...
南审计院考研分享会 经验总结
汪学长 – 中科大 计科专硕 初试准备 数学先做真题,模拟题刷的越多分越高;408真题最重要,模拟题辅助;英语只做真题;政治9月份开始背 代码能力在低年级培养的重要性和路径 考研不选择机构原因 因为机构里面学习的框…...
Android多媒体——媒体解码流程分析(十四)
NuPlayer 的解码模块相对比较简单,统一使用了一个基类 NuPlayerDecoderBase 管理,该类中包含了一个 MediaCodec 的对象,实际解码工作全靠 MediaCodec。 一、解码器创建 解码器创建的入口在 NuPlayer 的 NuPlayer::instantiateDecoder() 函数调用时。NuPlayer 在执行 start(…...
学习threejs,使用Physijs物理引擎,通过控制重力,实现多米诺骨牌效果
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️Physijs 物理引擎1.1.1 ☘️…...
自由学习记录(60)
Lecture 16 Ray Tracing 4_哔哩哔哩_bilibili 老师说的“高频采样”问题是什么? 现在考虑一个特殊情况: ❗ 一个像素内,图像信号变化很剧烈(高频): 比如: 细网格纹理 马赛克背景 很高频的…...
Gartner《分布式和微服务架构中数据架构》学习心得
一、简介 随着信息技术的不断发展,软件架构也在持续演变以适应不断变化的业务需求。从传统的单体架构向分布式和微服务架构转变,给数据的管理带来了新的挑战和机遇。《Working With Data in Distributed and Microservices Architectures》研究针对在分布式和微服务架构中处…...
谷歌web第三方登录
1.在谷歌控制台创建客户端信息 https://console.cloud.google.com/auth/clients 注:在重定向的url中一定要是https开头的。 创建完成之后主要获取三个信息 clientID、secret、redirctUrl 2.配置pom <dependency><groupId>com.google.auth</group…...
ConfigMap 和 Secret 是否支持热更新
在 Kubernetes 中,ConfigMap 和 Secret 是否支持热更新取决于它们的使用方式和应用程序的行为。以下是详细分析: 1. ConfigMap 的热更新 场景 1:通过 Volume 挂载到 Pod 支持热更新: 如果 Pod 通过 volume 挂载 ConfigMap&#…...
时序数据库IoTDB分布式系统监控基础概述
在分布式系统环境中,系统性能调优与瓶颈定位一直是工程实践与架构设计中的关键挑战。面对诸如系统性能无法提升、查询延迟增加等问题,需要一套有效的监控体系来洞察系统的内部状态与运行情况。 可观测性概念 随着分布式架构的普及,可观测性…...
【乱码】前端js流式输出因为Uint8Array字节不完整导致乱码问题
【乱码】流式输出因为Uint8Array字节不完整导致乱码问题 function push() {reader.read().then(({ done, value }) > {if (done) { 问题代码 var a new Uint8Array([115,44,32,115,101,114,105,102,34,62,230]) var b new Uint8Array([156,136,60,47,115,112,97,110,62…...
PDF Base64格式字符串转换为PDF文件临时文件
需求描述: 在对接电子病历系统与河北CA,进行免密文件签章的时候,两者系统入参不同,前者是pdf文件,base64格式;后者要求File类型的PDF文件。 在业务中间层开发时,则需要接收EMR侧提供的base64格式…...
ClickHouse详解
ClickHouse 是一款开源的列式数据库管理系统(DBMS),由 Yandex 开发,专为联机分析处理(OLAP)设计,具备高性能、低延迟、海量数据处理能力,广泛应用于日志分析、用户行为分析、指标监控…...
Go语言中的函数类型参数:深入理解`func()`
在Go语言中,函数是一等公民,可以作为参数传递、作为返回值,甚至赋值给变量。其中,func()作为一种特殊的函数类型,在Go的并发编程、回调机制和接口设计中扮演着重要角色。本文将全面解析func()的用法、原理和最佳实践。…...
deepseek梳理java高级开发工程师微服务面试题-进阶版
高级Java微服务面试题与深度解析 一、Spring Cloud核心组件深度剖析 1. Eureka服务注册发现机制 题目:详细分析Eureka的AP特性实现原理,包括服务注册、续约、剔除和自我保护机制,并说明与Nacos的CP模式区别。 答案: Eureka A…...
Math工具类全面指南
Math工具类全面指南 前言一、Math 类的基础特性1.1 类的声明与常量1.2 数据类型支持 二、基础算术运算2.1 绝对值运算2.2 取整运算2.2.1 floor():向下取整2.2.2 ceil():向上取整2.2.3 round():四舍五入取整 2.3 最大值与最小值 三、三角函数与…...
为什么 Linux 上默认没有 host.docker.internal
在 Linux 环境中,host.docker.internal 是 Docker 为容器提供的一个特殊 DNS 名称,用于指向宿主机的 IP 地址(类似 macOS/Windows 中的行为)。但这个功能在 Linux 上默认不启用,需要手动配置才能使用。以下是详细解释和…...
HTML 颜色全解析:从命名规则到 RGBA/HSL 值,附透明度设置与场景应用指南
一、HTML 颜色系统详解 HTML 中的颜色可以通过多种方式定义,包括颜色名称、RGB 值、十六进制值、HSL 值等,同时支持透明度调整。以下是详细分类及应用场景: 1. 颜色名称(预定义关键字) HTML 预定义了 140 个标准颜色名…...
HTTP / HTTPS 协议
目录 一、前言: 二、Fiddler 抓包工具: 三、http 协议: 1、http 请求: 1.(1)请求行: 1、(2) 请求头: 1、(3) 请求正文: 2、http 响应: 2、(1) 状态码&#x…...