es 3期 第23节-运用Pipeline实现二转聚合统计
#### 1.Elasticsearch是数据库,不是普通的Java应用程序,传统数据库需要的硬件资源同样需要,提升性能最有效的就是升级硬件。
#### 2.Elasticsearch是文档型数据库,不是关系型数据库,不具备严格的ACID事务特性,任何企图直接替代严格事务性场景的应用项目都会失败!!!
#### 3.Elasticsearch原则上适合一切非事务性应用场景或能够容许一定的延迟的事务性场景;能最大限度的替代mongodb与传统关系型数据库
##### 索引字段与属性都属于静态设置,若后期变更历史数据需要重建索引才可生效
##### 对历史数据无效!!!!
##### 一定要重建索引!!!!
#### 1、Pipeline聚合介绍
### Pipeline聚合
## 概念解释
# 每个数据聚合阶段是一个环节,多个环节串联一起来,形成一个管道模型,上一个环节的聚合结果是下一个环节的输入数据
# Pipeline执行过程
# 1.每个数据聚合阶段完成之后,将本次的聚合结果传入下一个聚合阶段,直到所有聚合完成;2.基于前置的分桶聚合,之后进行管道聚合
# ES聚合本质
# 1.ES聚合本质是属于查询性的聚合,不是内存式的计算,不支持多次迭代。
# 2.只能处理数值类型
### Pipeline聚合关系
## 聚合关系类型
# Parent,基于上下级,有父子关系
# Sibling,基于相同级,有兄弟关系
### Gap间隔异常
## Gaps概念
# 1.分桶数据会产生脏数据或者缺失,遇到此种情况需要设定一种模式;
# 2.类同与bucket聚合时字段确实missing属性
# 间隔处理方式skip,跳过,默认
# insert_zeros,基于0补足
### Pipeline聚合便利
## Pipeline聚合便利
# 一次聚合,可以得到不同维度的聚合结果,相比传统统计,节约至少一次统计
#### 2、Pipeline常用聚合
### 数值pipeline聚合
## avg/sum/max/min
# 常用数值Pipeline聚合
# 1.max_bucket
# 2.avg_bucket
# 3.Sum_bucket
# 4.min_bucket
# 5.buckets_path,设定聚合直接的路径关系指向
## Pipeline聚合关系
# sibling 兄弟平等关系
## max_bucket使用
# 统计出发地国家的飞行时间stats
GET kibana_sample_data_flights/_search
{"track_total_hits": true,"size": 0,"aggs": {// 注意这个自定义名字,下面会用到"trems_OriginCountry": {"terms": {"field": "OriginCountry"},"aggs": {// 注意这个自定义名字,下面会用到"stats_FlightTimeMin": {// 注意,这里是stats"stats": {"field": "FlightTimeMin"}}}},"pipeline-max-FlightTimeMin": {"max_bucket": {// 外层的自定义名字 加上符号'>' 内层的自定义名字和统计名// 注意pipeline是属于那个aggs下的,从这一层开始取自定义名// stats的max值"buckets_path": "trems_OriginCountry>stats_FlightTimeMin.max"}}}
}
# 统计max值的话,下面就不用加max了
GET kibana_sample_data_flights/_search
{"track_total_hits": true,"size": 0,"aggs": {// 注意这个自定义名字,下面会用到"trems_OriginCountry": {"terms": {"field": "OriginCountry"},"aggs": {// 注意这个自定义名字,下面会用到"stats_FlightTimeMin": {// 注意,这里换了max"max": {"field": "FlightTimeMin"}}}},"pipeline-max-FlightTimeMin": {"max_bucket": {// 上面换了max后,结尾就不需要max了"buckets_path": "trems_OriginCountry>stats_FlightTimeMin"}}}
}
# 统计出发地国家+出发地城市的飞行时间stats,最大值
GET kibana_sample_data_flights/_search
{"track_total_hits": true,"size": 0,"aggs": {"trems_OriginCountry": {"terms": {"field": "OriginCountry","size": 10},"aggs": {"trems_OriginCityName": {"terms": {"field": "OriginCityName","size": 10},"aggs": {"stats_FlightTimeMin": {"stats": {"field": "FlightTimeMin"}}}},"pipeline-OriginCityName-max": {"max_bucket": {// 注意pipeline是属于那个aggs下的,从这一层开始取自定义名"buckets_path": "trems_OriginCityName>stats_FlightTimeMin.max"}}}}}
}
# 统计出发地国家+出发地城市的飞行时间stats,多种
GET kibana_sample_data_flights/_search
{"track_total_hits": true,"size": 0,"aggs": {"trems_OriginCountry": {"terms": {"field": "OriginCountry","size": 10},"aggs": {"trems_OriginCityName": {"terms": {"field": "OriginCityName","size": 10},"aggs": {"stats_FlightTimeMin": {"stats": {"field": "FlightTimeMin"}}}},// 统计出发地国家+出发地城市的飞行时间 其中的max值"pipeline-OriginCityName-max": {"max_bucket": {// 注意pipeline是属于那个aggs下的,从这一层开始取自定义名"buckets_path": "trems_OriginCityName>stats_FlightTimeMin.max"}},// 统计出发地国家+出发地城市的飞行时间 其中的min值"pipeline-OriginCityName-min": {"min_bucket": {// 注意pipeline是属于那个aggs下的,从这一层开始取自定义名"buckets_path": "trems_OriginCityName>stats_FlightTimeMin.min"}}}},// 在上面每个分组的max结果集在统计出其中的最大值"pipeline-OriginCountry-max-FlightTimeMin": {"max_bucket": {"buckets_path": "trems_OriginCountry>pipeline-OriginCityName-max"}},// 在上面每个分组的min结果集在统计出其中的最小值"pipeline-OriginCountry-min-FlightTimeMin": {"max_bucket": {"buckets_path": "trems_OriginCountry>pipeline-OriginCityName-min"}}}
}
### Stats/extended status
## 常用数值Pipeline聚合
# 1.stats bucket
# 2.extended stats bucket
## Pipeline聚合关系
# sibling 兄弟平等关系
# 扩展计算
GET kibana_sample_data_flights/_search
{"track_total_hits": true,"size": 0,"aggs": {"trems_OriginCountry": {"terms": {"field": "OriginCountry","size": 10},"aggs": {"trems_OriginCityName": {"terms": {"field": "OriginCityName","size": 10},"aggs": {"stats_FlightTimeMin": {// 扩展"extended_stats": {"field": "FlightTimeMin"}}}},"pipeline-OriginCityName-max": {// 扩展"extended_stats_bucket": {// 注意pipeline是属于那个aggs下的,从这一层开始取自定义名"buckets_path": "trems_OriginCityName>stats_FlightTimeMin.max"}}}}}
}
#### 3、Pipeline高级聚合
### Cumulative sum
## 概念解释
#累计汇总,基于分桶累计值汇总
## Pipeline聚合关系
# parent 父子上下级关系
# 统计电商购物数据,统计用户月维度消费金额,并算出每个月的累加值
GET kibana_sample_data_ecommerce/_search
{"size": 0,"track_total_hits": true,"aggs": {"terms_custom_id": {"terms": {"field": "customer_id","size": 10},"aggs": {"date_histogram_order_date": {// 根据订单时间,月维度"date_histogram": {"field": "order_date","calendar_interval": "month","format": "yyyy-MM"},"aggs": {// 自定义key"stats_taxful_total_price": {// 统计订单价格"stats": {"field": "taxful_total_price"}},// 自定义key"cumulative_sum_taxful_total_price": {// 计算累加值"cumulative_sum": {"buckets_path": "stats_taxful_total_price.sum"}}}}}}}
}
### 滑动窗口概念介绍
# 滑动窗口概念解释基于一定的窗口函数,计算窗口内的数据值
# 在大数据分析场景中,经常出现如Flink/Spark中所谓的实时计算其实就是基于窗口理念
# Pipeline聚合关系
# parent 父子上下级关系
## 按照5个分桶跨度,计算平均值
## 分桶序号 分桶 value 窗口数为5,平均值
# 序号-1 10 10=10/1
# 序号-2 20 15=(10+20)/2
# 序号-3 30 20=(10+20+30)/3
# 序号-4 40 25=(10+20+30+40)/4
# 序号-5 50 30=(10+20+30+40+50)/5
# # 序号-6 60 40=(20+30+40+50+60)/5
# 序号-7 70 50=(30+40+50+60+70)/5
# 序号-8 80 60=(40+50+60+70+80)/5
# 序号-9 90 70=(50+60+70+80+90)/5
# 序号-10 100 80=(60+70+80+90+100)/5
## 参数
# moving_fn,函数窗口表达式
# window:窗口大小,表示要包含多少个桶(buckets)进行计算。
# script:自定义脚本,用于定义如何计算窗口内的值。可以是简单的求和、平均值等操作。
# shift(可选):偏移量,表示窗口相对于当前桶的位置。默认为 0,即窗口从当前桶开始
# 平均值,根据订单时间月维度分组统计价格,计算2个窗口的平均值
GET kibana_sample_data_ecommerce/_search
{"size": 0,"track_total_hits": true,"aggs": {"date_histogram_order_date": {// 根据订单时间,月维度"date_histogram": {"field": "order_date","calendar_interval": "day","format": "yyyy-MM-dd"},"aggs": {// 自定义key"sum_taxful_total_price": {// 统计订单价格,"sum": {"field": "taxful_total_price"}},// 自定义key"moving_fn_avg_taxful_total_price": {// 计算平均值,"moving_fn": {"buckets_path": "sum_taxful_total_price",// 窗口数2"window": 2,// 使用脚本,使用内置的无权重平均函数"script": "MovingFunctions.unweightedAvg(values)"}}}}}
}
# 累加值,根据订单时间月维度分组统计价格,计算2个窗口的累加值
GET kibana_sample_data_ecommerce/_search
{"size": 0,"track_total_hits": true,"aggs": {"date_histogram_order_date": {// 根据订单时间,月维度"date_histogram": {"field": "order_date","calendar_interval": "day","format": "yyyy-MM-dd"},"aggs": {// 自定义key"sum_taxful_total_price": {// 统计订单价格,"sum": {"field": "taxful_total_price"}},// 自定义key"moving_fn_sum_taxful_total_price": {// 计算平均值,"moving_fn": {"buckets_path": "sum_taxful_total_price",// 窗口数2"window": 2,// 使用脚本,使用内置的累加函数"script": "MovingFunctions.sum(values)"}}}}}
}
# 自定义脚本计算方式
GET kibana_sample_data_ecommerce/_search
{"size": 0,"track_total_hits": true,"aggs": {"date_histogram_order_date": {// 根据订单时间,月维度"date_histogram": {"field": "order_date","calendar_interval": "day","format": "yyyy-MM-dd"},"aggs": {// 自定义key"sum_taxful_total_price": {// 统计订单价格,"sum": {"field": "taxful_total_price"}},// 自定义key"moving_fn_avg_taxful_total_price": {// 计算累加值,,"moving_fn": {"buckets_path": "sum_taxful_total_price",// 窗口数2"window": 2,// 使用脚本,自定义计算方式"script": """double sum = 0;double weightSum = 0;for (int i = 0; i < values.length; ++i) {// 权重从 1 开始递增double weight = i + 1; sum += values[i] * weight;weightSum += weight;}return sum / weightSum;"""}}}}}
}
### moving_percentiles
# 基于移动窗口,获取数据的百分位占比
# percentiles bucket
# 需要基于已有的分桶数据结果之后,在其中分析统计分桶的百分位占比
# Pipeline 关系
# sibling 兄弟平等关系
## 查询参数
# percentiles_bucket,百分位分桶占比管道聚合函数,擅长父子结构的分桶
# buckets_path,分桶字段指定,注意这里的路径指向
# percents,百分位段落划分。
# 每组最大值,计算数据所在的百分位
GET kibana_sample_data_ecommerce/_search
{"size": 0,"track_total_hits": true,"aggs": {"date_histogram_order_date": {// 根据订单时间,月维度"date_histogram": {"field": "order_date","calendar_interval": "day","format": "yyyy-MM-dd"},"aggs": {// 自定义key"stats_taxful_total_price": {// 统计订单价格,,"stats": {"field": "taxful_total_price"}}}},// 自定义key"percentiles_bucket_taxful_total_price": {// 计算stats_taxful_total_price.max百分位"percentiles_bucket": {"buckets_path": "date_histogram_order_date>stats_taxful_total_price.max","percents": [1,5,10,15,25,35,45,55,65,75,85,95,99]}}}
}
### derivative
# 计算前后桶的差值,延伸值
# 此管道函数计算,必须基于 histogram 直方图分桶
# Pipeline 关系
# parent 父子先后上下级关系
## 查询参数
# derivative,管道查询函数
# buckets_path,指定统计字段
GET kibana_sample_data_ecommerce/_search
{"size": 0,"track_total_hits": true,"aggs": {"date_histogram_order_date": {// 根据订单时间,月维度"date_histogram": {"field": "order_date","calendar_interval": "day","format": "yyyy-MM-dd"},"aggs": {// 自定义key"sum_taxful_total_price": {// 统计订单价格,"sum": {"field": "taxful_total_price"}},// 自定义key"derivative_taxful_total_price": {// 计算平均值,,"derivative": {"buckets_path": "sum_taxful_total_price"}}}}}
}
### Serial differencing
# 概念解释
# 基于一定的窗口,计算前后分桶数据差值,如:redis监控中,总命令数差值,默认是递增的
# Pipeline聚合关系
# sibling 兄弟平等关系
# 查询参数
# serial_diff,基于2个分桶值之间,计算前后的差值,一般用户直方图分桶聚合应用中
# buckets_path,指定字段路径
# lag,差值起始位置,默认1,表示从第2个分桶开始计算
# 计算一周的,lag=7
GET kibana_sample_data_ecommerce/_search
{"size": 0,"track_total_hits": true,"aggs": {"date_histogram_order_date": {// 根据订单时间,月维度"date_histogram": {"field": "order_date","calendar_interval": "day","format": "yyyy-MM-dd"},"aggs": {// 自定义key"sum_taxful_total_price": {// 统计订单价格,"sum": {"field": "taxful_total_price"}},// 自定义key"serial_diff_taxful_total_price": {// 计算差值"serial_diff": {"buckets_path": "sum_taxful_total_price",// 每周增长情况,而不是每日增长,可以通过设置 lag 参数为7来实现"lag": 7}}}}}
}
## derivative 与 serial_diff 区别
# derivative 主要关注相邻桶之间值的变化率,适合用来观察短期内的变化趋势。
# serial_diff 则更加专注于去除数据中的趋势成分,通过计算与过去若干个桶值的差异来进行平稳化处理,适用于需要去除长期趋势或周期性影响的情况。
### selector分桶筛选
# 概念解释
# 有些应用场景,分桶聚合之后的数据需要进行一些过滤,基于管道聚合很容易实现,有点类似与数据库中的
# group-having组合
## Pipeline 关系
# parent 父子先后上下级关系
# 查询参数
# bucket_selector,分桶数据过滤表达式入口
# buckets_path,选择字段值,可以指定多个字段,采用键值方式{key:value(字段)}
# script,脚本计算表达式,返回的必须是 bool=true/false
# 按照日期统计每日的订单销售金额,并筛选出总金额大于13000小于13500的日期
GET kibana_sample_data_ecommerce/_search
{"size": 0,"track_total_hits": true,"aggs": {"date_histogram_order_date": {// 根据订单时间,月维度"date_histogram": {"field": "order_date","calendar_interval": "day","format": "yyyy-MM-dd"},"aggs": {// 自定义key"sum_taxful_total_price": {// 统计订单价格,"sum": {"field": "taxful_total_price"}},// 自定义key"custom-pipeline-fliter": {"bucket_selector": {"buckets_path": {"sum":"sum_taxful_total_price"},"script": """params.sum>13000 && 13500>params.sum;"""}}}}}
}
### bucket_sort
# 分桶之后的数据结构,往往需要按照一定的统计值排序,甚至仅仅需要截取其中部分分桶结果
# Pipeline 关系
# parent 父子先后上下级关系
## 查询参数
# bucket sort,分桶结果排序管道
# sort,设定一个或多个排序值,分桶结果按照此规则排序
# from,分页起始分桶位置
# size,分页大小,单页返回分桶多少,类似与之前学习的composite 组合分桶聚合
# 返回前3
GET kibana_sample_data_ecommerce/_search
{"size": 0,"track_total_hits": true,"aggs": {"date_histogram_order_date": {// 根据订单时间,月维度"date_histogram": {"field": "order_date","calendar_interval": "day","format": "yyyy-MM-dd"},"aggs": {// 自定义key"stats_taxful_total_price": {// 统计订单价格,,"stats": {"field": "taxful_total_price"}},// 自定义key"custom-pipeline-sort": {"bucket_sort": {"from": 0,"size": 3, "sort": [{"stats_taxful_total_price.sum":{"order":"desc"}}]}}}}}
}
#### 4、Pipeline聚合建议以及经验分享
## 是否需要 流式计算Flink/Spark?(简单的数据可以直接使用es)
# Pipeline 聚合
# https://www.elastic.co/guide/en/elasticsearch/reference/8.6/search-aggregations-pipeline.html
# movavg 聚合
# https://www.elastic.co/guide/en/elasticsearch/reference/8.6/search-aggregations-pipeline-movavg-aggregation.html
# movfn 聚合
# https://www.elastic.co/guide/en/elasticsearch/reference/8.6/search-aggregations-pipeline-movfn-aggregation.html
# bucket_script 聚合
# https://www.elastic.co/guide/en/elasticsearch/reference/8.6/search-aggregations-pipeline-bucket-script-aggregation.html
相关文章:
es 3期 第23节-运用Pipeline实现二转聚合统计
#### 1.Elasticsearch是数据库,不是普通的Java应用程序,传统数据库需要的硬件资源同样需要,提升性能最有效的就是升级硬件。 #### 2.Elasticsearch是文档型数据库,不是关系型数据库,不具备严格的ACID事务特性ÿ…...
T-SQL语言的编程范式
T-SQL编程范式探析 引言 随着信息技术的迅猛发展,数据库在各个行业的应用日益广泛。在众多数据库管理系统中,SQL Server以其高性能和易用性受到广泛欢迎。T-SQL(Transact-SQL)是SQL Server的扩展版本,是一种用于查询…...
【ArcGIS微课1000例】0137:色彩映射表转为RGB全彩模式
本文讲述ArcGIS中,将tif格式的影像数据从色彩映射表转为RGB全彩模式。 参考阅读:【GlobalMapper精品教程】093:将tif影像色彩映射表(调色板)转为RGB全彩模式 文章目录 一、色彩映射表预览二、色彩映射表转为RGB全彩模式一、色彩映射表预览 加载配套数据包中的0137.rar中的…...
论文笔记(六十一)Implicit Behavioral Cloning
Implicit Behavioral Cloning 文章概括摘要1 引言2 背景:隐式模型的训练与推理3 隐式模型与显式模型的有趣属性4 policy学习成果5 理论见解:隐式模型的通用逼近性6 相关工作7 结论 文章概括 引用: inproceedings{florence2022implicit,titl…...
网络安全核心目标CIA
网络安全的核心目标是为关键资产提供机密性(Confidentiality)、可用性(Availablity)、完整性(Integrity)。作为安全基础架构中的主要的安全目标和宗旨,机密性、可用性、完整性频频出现,被简称为CIA,也被成为你AIC,只是顺序不同而已…...
hive迁移后修复分区慢,怎么办?
我有1个30TB的分区表,客户给的带宽只有600MB,按照150%的耗时来算,大概要迁移17小时。 使用hive自带的修复分区命令(一般修复分区比迁移时间长一点),可能要花24小时。于是打算用前面黄大佬的牛B方案。 Hive增…...
一块钱的RISC-V 32位芯片
之前跟一个朋友聊天,说以后的芯片一定是越来越趋向于定制化,比如我们需要一个ADC芯片,这颗ADC芯片需要有串口功能,那就只开发一颗这样的芯片就好了,其他的功能都可以裁剪掉。 ➵➵➵➵➵➵➵➵➵➵➵➵➵➵➵…...
Linux常用指令
目录 1 概述2 指令2.1 简单指令2.2 解压缩2.2.1 tar.bz2和tar.gz2.2.2 单独bz22.2.3 zip2.2.4 7z 2.3 网卡操作 1 概述 本章主要是记录一些日常用到的Linux指令,方便自己忘记的时候查找,也为有需要的人提供参考。 2 指令 2.1 简单指令 指令解释cat /…...
车载音频开发(二):对音频数据作音量调节
通过前一个章节打下的基础车载音频开发(一):从看懂wav开始https://blog.csdn.net/Hellomino_/article/details/140873133?fromshareblogdetail&sharetypeblogdetail&sharerId140873133&sharereferPC&sharesourceHellomino_&…...
误差与误差限
目录 误差误差限小结 误差 设 x x x为准确值 , x ∗ ,x^* ,x∗为 x x x的一个近似值,称 e ∗ x ∗ − x e^*x^*-x e∗x∗−x为近似值的绝对误差,简称误差. 这样定义的误差 e ∗ e^{*} e∗可正可负,当绝对误差为正时近似值偏大,…...
halcon三维点云数据处理(七)find_shape_model_3d_recompute_score
目录 一、find_shape_model_3d_recompute_score例程代码二、set_object_model_3d_attrib_mod函数三、prepare_object_model_3d 函数四、create_cube_shape_model_3d函数五、获得CamPose六、project_cube_image函数七、find_shape_model_3d函数八、project_shape_model_3d函数 一…...
如何从串 ‘ 中国 +86‘ 中,获取到‘中国’:strip()、split()及正则表达式的使用
业务中有这样一个场景,国家列表中的数据格式是这样: 中国 86 ,其中的 "中国" 前面有3个空格,需要从中提取出 "中国",有哪些方法呢? 方法 1:使用 strip() 和 split() str…...
Java Web开发进阶——Spring Security基础与应用
Spring Security是Spring框架的核心模块之一,用于保护Web应用程序和微服务的安全。它提供强大的认证和授权功能,并与Spring生态系统无缝集成。本节将详细介绍Spring Security的基础知识及其在实际项目中的应用。 1. Spring Security概述与功能 1.1 什么…...
1. Doris分布式环境搭建
一. 环境准备 本次测试集群采用3台机器hadoop1、hadoop2、hadoop3, Frontend和Backend部署在同一台机器上,Frontend部署3台组成高可用,Backend部署3个节点,组成3副本存储。 主机IP操作系统FrontendBackendhadoop1192.168.47.128Centos7Foll…...
消息中间件类型介绍
消息中间件是一种在分布式系统中用于实现消息传递的软件架构模式。它能够在不同的系统或应用之间异步地传输数据,实现系统的解耦、提高系统的可扩展性和可靠性。以下是几种常见的消息中间件类型及其介绍: 1.RabbitMQ 特点: • 基于AMQP&#…...
Win10微调大语言模型ChatGLM2-6B
在《Win10本地部署大语言模型ChatGLM2-6B-CSDN博客》基础上进行,官方文档在这里,参考了这篇文章 首先确保ChatGLM2-6B下的有ptuning AdvertiseGen下载地址1,地址2,文件中数据留几行 模型文件下载地址 (注意࿱…...
C# GID+绘制不透明和半透明的线条
绘制线条时,必须将 Pen 对象传递给 DrawLine 类的 Graphics 方法。 Pen 构造函数的参数之一是 Color 对象。 若要绘制不透明的线条,请将颜色的 alpha 分量设置为 255。 若要绘制半透明的线条,请将 alpha 分量设置为从 1 到 254 的任何值。 在…...
解锁 C# 与 LiteDB 嵌入式 NoSQL 数据库
一、开篇:邂逅 C# 与 LiteDB 新世界 在当今的软件开发领域,数据管理如同建筑的基石,而选择一款合适的数据库则是项目成功与否的关键因素之一。对于 C# 开发者来说,面对琳琅满目的数据库选项,如何抉择常常令人头疼。今…...
iOS - 数组的真实类型
1. NSArray 类簇 // 1. __NSArray0 (空数组) NSArray *empty [];// 2. __NSArrayI (不可变数组) NSArray *immutable [1, 2, 3];// 3. __NSArrayM (可变数组) NSMutableArray *mutable [NSMutableArray array];// 4. __NSSingleObjectArrayI (单元素数组) NSArray *single …...
Unity热更新 之 Addressables(2) 本地/远端打包 流程测试
基础篇:Unity热更新 之 Addressables(1) 资源基础加载-CSDN博客 基础方法来源于唐老狮,我也是初学热更这一块,所有不保证步骤完全正确,如有不足还请斧正 目录 0.前提 1.本地打包 1.1.资源放入包 1.2.简化路径名称给出标签(如有需要的话) …...
Python标准库之SQLite3
包含了连接数据库、处理数据、控制数据、自定义输出格式及处理异常的各种方法。 官方文档:sqlite3 --- SQLite 数据库的 DB-API 2.0 接口 — Python 3.13.1 文档 官方文档SQLite对应版本:3.13.1 SQLite主页:SQLite Home Page SQL语法教程&a…...
php 使用simplexml_load_string转换xml数据格式失败
本文介绍如何使用php函数解析xml数据为数组。 <?php$a <xml><ToUserName><![CDATA[ww8b77afac71336111]]></ToUserName><FromUserName><![CDATA[sys]]></FromUserName><CreateTime>1736328669</CreateTime><Ms…...
Linux第二课:LinuxC高级 学习记录day01
0、大纲 0.1、Linux 软件安装,用户管理,进程管理,shell 命令,硬链接和软连接,解压和压缩,功能性语句,结构性语句,分文件,make工具,shell脚本 0.2、C高级 …...
Notepad++上NppFTP插件的安装和使用教程
一、NppFTP插件下载 图示是已经安装好了插件。 在搜索框里面搜NppFTP,一般情况下,自带的下载地址容易下载失败。这里准备了一个下载连接:Release v0.29.10 ashkulz/NppFTP GitHub 这里我下载的是x86版本 下载好后在nodepad的插件里面选择打…...
怎样提高服务器中的数据传输速度?
服务器中的数据传输速度会影响着用户的体验感,当企业中的数据传输速度出现卡顿或者是过慢时,用户不能及时浏览到所需的内容,给用户造成不好的体验感,那么企业该怎样才能提高服务器中的数据传输速度呢? 服务器之间如何传…...
Java聊天小程序
拟设计一个基于 Java 技术的局域网在线聊天系统,实现客户端与服务器之间的实时通信。系统分为客户端和服务器端两类,客户端用于发送和接收消息,服务器端负责接收客户端请求并处理消息。客户端通过图形界面提供用户友好的操作界面,服务器端监听多个客户端的连接并管理消息通…...
Spring事件发布与监听
Spring事件机制详解:事件发布与监听 在Spring框架中,事件机制基于发布-订阅模式,允许组件之间进行解耦。发布者发布事件,监听者订阅并响应这些事件。Spring事件机制的核心在于ApplicationEvent和ApplicationListener,…...
【PPTist】公式编辑、插入音视频、添加动画
一、插入公式 点击公式的时候 latexEditorVisible 会变成 true src/views/Editor/CanvasTool/index.vue <Modalv-model:visible"latexEditorVisible" :width"880" ><LaTeXEditor close"latexEditorVisible false"update"data &…...
Dart语言的面向对象编程
Dart语言的面向对象编程 Dart是一种由谷歌开发的编程语言,主要用于构建Web、移动应用及服务器端应用。作为一门现代编程语言,Dart自带丰富的特性,尤其是在面向对象编程(Object-Oriented Programming, OOP)方面&#x…...
selenium+pyqt5自动化工具总结
说明:本工具是,操作外部google浏览器、selenium是无法操作qt界面中嵌套的浏览器的, 工具在后面 1. 代码结构 pycharm打开的文件下,再写一个子文件,文件导入的时候把子文件名带上 这样就可以在 外层使用命令 pyinst…...
Java 基于微信小程序的高校科研团队管理系统设计与实现(附源码,部署,文档
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
如何规模化实现完全自动驾驶?Mobileye提出解题“新”思路
在CES 2025上,Mobileye展示了端到端自动驾驶系统Mobileye Drive™,通过高度集成的传感器、算法和计算平台,可以实现自动驾驶功能的全覆盖。 Mobileye创始人兼首席执行官Amnon Shashua教授 期间,Mobileye创始人兼首席执行官Amnon …...
Vue2与Vue3在项目开发中的选择:深入探讨
文章目录 前言一、Vue2的优势与挑战二、Vue3的进步与特性三、如何做出选择?结语 前言 Vue.js 是一个用于构建用户界面的渐进式JavaScript框架。Vue2和Vue3是其两个主要版本,它们各自拥有一系列特点和优势。随着Vue3的发布,开发者们面临着在新…...
Git 操作与技巧
一、开发日常常用 Git 操作与技巧 1.1 基础操作 1.1.1 查看 Git 状态 git status:查看当前工作区的状态,了解哪些文件已经修改、哪些文件已经暂存。git status这个命令是最常用的命令之一,可以帮助你理解当前的开发状态,哪些文…...
vs2022开发.net窗体应用开发环境安装配置以及程序发布详细教程
文章目录 一、安装visual studio1.1推荐win10操作系统1.2推荐vs20221.3选择工作负载 二、新建基于.net的winform应用程序2.1为什么要.net 2.2 新建.net窗体应用2.2.1 选择Window窗体应用2.2.2 .net窗体对比framework窗体 三、发布.net应用 一、安装visual studio 1.1推荐win10…...
Mysql--基础篇--视图,存储过程,触发器
1、视图 MySQL视图(View)是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表&#…...
代码随想录 哈希 test 8
18. 四数之和 - 力扣(LeetCode) 与三数之和类似,重点在剪枝和去重的区别,由于target可正可负,因此需要分两种情况讨论,如果target为正,则若当前选择的元素之和大于target,需要跳出这…...
Postman接口测试基本操作
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 Postman-获取验证码 需求:使用Postman访问验证码接口,并查看响应结果。 地址:http://kdtx-test.itheima.net/api/captchaIm…...
Three.js 渲染技术:打造逼真3D体验的幕后功臣
文章目录 前言一、着色器(Shaders)二、后处理(Post-processing)三、抗锯齿(Anti-aliasing)四、实时渲染与离线渲染五、光照模型与材质优化六、环境映射(Environment Mapping)七、纹理…...
uml活动图和用例图之间有一致性要求吗
UML(统一建模语言)中的活动图和用例图是两种不同的图表,它们用于描述软件系统的不同方面。尽管它们有不同的用途,但它们之间存在一定的一致性要求,以保证模型的有效性和准确性。 以下是活动图和用例图之间一致性要求的…...
嵌入式入门Day38
C Day1 第一个C程序C中的输入输出输出操作coutcin练习 命名空间使用方法自定义命名空间冲突问题 C对字符串的扩充C风格字符串的使用定义以及初始化C风格字符串与C风格字符串的转换C风格的字符串的关系运算常用的成员变量输入方法 布尔类型C对堆区空间使用的扩充作业 第一个C程序…...
什么叫区块链?怎么保证区块链的安全性?
区块链(Blockchain)是一种分布式数据库或账本技术,它通过去中心化的方式记录交易或其他数据,并确保这些记录是安全、透明和不可篡改的。区块链最初是作为比特币(Bitcoin)加密货币的基础技术而被公众所知&am…...
探秘block原理
01 概述 在iOS开发中,block大家用的都很熟悉了,是iOS开发中闭包的一种实现方式,可以对一段代码逻辑进行封装,使其可以像数据一样被传递、存储、调用,并且可以保存相关的上下文状态。 很多block原理性的文章都比较老&am…...
Unity2D初级背包设计后篇 拓展举例与不足分析
Unity2D初级背包设计中篇 MVC分层撰写(万字详解)-CSDN博客、 如果你已经搞懂了中篇,那么对这个背包的拓展将极为简单,我就在这里举个例子吧 目录 1.添加物品描述信息 2.拓展思路与不足分析 1.没有删除只有丢弃功能,所以可以添加垃圾桶 2.格…...
云计算基础,虚拟化原理
文章目录 一、虚拟化1.1 什么是虚拟化1.2 虚拟化类型 二 、存储虚拟化2.1 存储指标2.2 存储类型2.3 存储协议2.4 RAID 三、内存 i/O虚拟化3.1 内存虚拟化基本概念地址空间转换原理内存共享与隔离原理 3.2 I/O 虚拟化基本概念模拟(Emulation)方式半虚拟化…...
Android13工具修改wifi mac地址以后没有更新的问题
Android13系统在通过烧写工具更新修改wifi mac地址以后,在系统设置里面查看wifi mac地址还是之前的,没有更新。 原因:android13 系统中packages\modules\Wifi\service\ServiceWifiResources\res\values\config.xml新增了"config_wifiSav…...
Jmeter_后置处理beanshell
背景:调用Eolinker接口,统计接口测试用例的完成情况,并写入excel文件; 1、调用登录接口,JSON提取器提取接口返回的accessToken,再封装到HTTP信息头管理器中; 2、请求工作空间列表接口࿰…...
熵与交叉熵:从不确定性角度理解 KL 散度
从不确定性减少视角理解KL散度 损失函数相关文章(置顶) 1. KL 散度:多维度解读概率分布间的隐秘 “距离” 2. 熵与交叉熵:从不确定性角度理解 KL 散度 3. 机器学习、深度学习关于熵你所需要知道的一切 本文核心 由于熵表征不确定…...
HarmonyOS鸿蒙开发 弹窗及加载中指示器HUD功能实现
HarmonyOS鸿蒙开发 弹窗及加载中指示器HUD功能实现 最近在学习鸿蒙开发过程中,阅读了官方文档,在之前做flutter时候,经常使用overlay,使用OverlayEntry加入到overlayState来做添加悬浮按钮、提示弹窗、加载中指示器、加载失败的t…...
KG-CoT:基于知识图谱的大语言模型问答的思维链提示
一些符号定义 知识图谱实体数量: n n n 知识图谱中关系类型数量: m m m 三元组矩阵: M ∈ { 0 , 1 } n n m \textbf{M} \in \{0, 1\}^{n \times n \times m} M∈{0,1}nnm, M i j k 1 M_{ij}^k 1 Mijk1则说明实体 i i i和实…...