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

es 3期 第25节-运用Rollup减少数据存储

#### 1.Elasticsearch是数据库,不是普通的Java应用程序,传统数据库需要的硬件资源同样需要,提升性能最有效的就是升级硬件。
#### 2.Elasticsearch是文档型数据库,不是关系型数据库,不具备严格的ACID事务特性,任何企图直接替代严格事务性场景的应用项目都会失败!!!
#### 3.Elasticsearch原则上适合一切非事务性应用场景或能够容许一定的延迟的事务性场景;能最大限度的替代mongodb与传统关系型数据库

##### 索引字段与属性都属于静态设置,若后期变更历史数据需要重建索引才可生效
##### 对历史数据无效!!!!
##### 一定要重建索引!!!!

#### 1、Materialized view 概念介绍

### 概念介绍
## 物化视图名词
# Materialized view
## 物化视图概念介绍
# 将原始数据按照一定规则提前计算好,并存储起来,供其它应用使用,达到高效查询分析的需求
# join/aggs
## 物化数据需求背景
# 原始数据量过大,转换压缩后,节约存储空间,时序数据;
# 聚合压缩后,数据统计检索更快:
## 行业数据产品
# MMP产品: Clickhosue、Greenplum、dorisdb等

### 物化视图技术便利
## 技术便利
# 原有数据压缩,需要自己开发三方应用,或借助三方产品如Spark/Hive,将数据明细聚合之后,存储到ES中,便于查询,需要很多开发工作;
# 2.ES提供的Rollup/Transforms,可以直接将原始数据进行实时的转换,存储到新的索引空间,查询检索更加高效便捷。

### ES物化视图能力
## 自有能力
# 1.Rollup,数据上卷
# 2.Transformer,数据聚合
# 3.自有能力仅限能处理单索引,不能跨多个索引关联
## 外部能力
# 1.基于Spark/Hive/Prestodb查询聚合能力,将多个索引数据关联合并到单个大宽表索引

#### 2、Rollup应用实战
### Rollup概念
# 1.数据上卷,基于时间维度,将原有细粒度时间的数据按照粗一点的粒度汇总,并移除原有的数据;节约存储空间,应用在时序数据领域;
# 2.大数据广告应用产品:Apache Druid

### Rollup应用场景
# 应用场景
# 1.基于时间维度提取预聚合数据,典型的时序数据领域。
# 2.业务数据具备时序特征,都可以运用。
# 3.物联网IOT
# 4.监控系统
# 5.其它

### Rollup接口API

# 数据上卷,按照一定的维度聚合,压缩数据,并同时保证实时性
# 必须基于时间字段
# 1.创建API
# 2.管理维护API3.查询API

## /job/
# PUT /_rollup/job/<job_id>: Create a rollup job
# GET /_rollup/job: List rollup jobs
# GET /_rollup/job/<job_id>: Get rollup job details
# POST /_rollup/job/<job_id>/_start: Start a rollup job
# POST /_rollup/job/<job_id>/_stop: Stop a rollup job
# DELETE /_rollup/job/<job_id>: Delete a rollup job
## /data/
# GET /_rollup/data/<index_pattern>/_rollup_caps: Get Rollup CapabilitiesGET/<index_name>/_rollup/data/: Get Rollup Index Capabilities
## /<index_name>/
# GET/<index_name>/_rollup_search: Search rollup data

# aggs聚合,天维度统计每个洲的销售额

GET kibana_sample_data_ecommerce/_search
{"track_total_hits": true,"size": 0,"aggs": {"date_histogram_order_date": {"date_histogram": {"field": "order_date","calendar_interval": "day"},"aggs": {"terms_continent_name": {"terms": {"field": "geoip.continent_name","size": 100},"aggs": {"stats_taxful_total_price": {"stats": {"field": "taxful_total_price"}}}}}}}
}

### 创建rollup
## 通用参数说明
# 创建有 2种方式,一种直接基于 Api,一种基于 Kibana 可视化
# _rollup,创建 Rollup的API接口
# cron,定时任务,cron 表达式
# groups,分组逻辑,支持多个分组分桶函数
# index_pattern,指定索引数据,可以指定多个索引,支持通配符
# metrics,指标数据,分组分桶之后聚合的数据,支持常规的指标聚合
# page_size,分页大小,数据分组时,单页大小,默认1000
# rollup_index,新创建的索引名称,聚合之后的数据从这个所有查询
# timeout,超时时间,任务执行超时时间,默认20s    
## groups 参数
# 设定滚动分桶聚合函数,建议采用 date_histogram
# groups,分组逻辑,支持多个分组分桶函数

# 创建

PUT _rollup/job/job_ecommerce_001
{// 数据来源索引"index_pattern": "kibana_sample_data_ecommerce",// 转入的索引"rollup_index": "index_ecommerce_001",// 定时"cron": "*/5 * * * * ?",// 每次统计多少条"page_size": 1000,// 分组条件"groups": {"date_histogram": {"field": "order_date","calendar_interval": "day"},"terms": {"fields": "geoip.continent_name"}},// 需要统计的值"metrics": {// 统计字段"field": "taxful_total_price",// 计算方式"metrics": ["max","min","avg","sum"]}
}


// 查询

GET _rollup/job/job_ecommerce_001

// 启动,创建完后需要启动

POST _rollup/job/job_ecommerce_001/_start

// 暂停

POST _rollup/job/job_ecommerce_001/_stop


// 删除,需要先暂停了才能删除

DELETE _rollup/job/job_ecommerce_001


# 普通查询数据

GET index_ecommerce_001/_search
{}


# rollup 查询语法,一级分桶

GET index_ecommerce_001/_rollup_search
{"size":0,// 再次根据continent_name聚合"aggs":{"terms_continent_name":{"terms": {"field": "geoip.continent_name"}}}
}


# rollup对比aggs聚合,结果是一样的,但是过程不一样

GET kibana_sample_data_ecommerce/_search
{"track_total_hits": true,"size": 0,"aggs": {"terms_continent_name": {"terms": {"field": "geoip.continent_name","size": 100},"aggs": {"stats_taxful_total_price": {"stats": {"field": "taxful_total_price"}}}}}
}

# rollup 查询语法,二级分桶

GET index_ecommerce_001/_rollup_search
{"size":0,"aggs":{"terms_continent_name":{"terms": {"field": "geoip.continent_name"},"aggs": {"max_taxful_total_price": {"max": {"field": "taxful_total_price"}},"min_taxful_total_price": {"min": {"field": "taxful_total_price"}}}}}
}

# 基于数据再次统计

GET index_ecommerce_001/_search
{"size":1,"aggs":{"terms_continent_name":{"terms": {"field": "geoip.continent_name.terms.value","size": 100},"aggs": {"NAME": {"sum": {"field": "geoip.continent_name.terms._count"}}}}}
}

# 查看有多少个rollup任务

GET _rollup/data/_all

# 查看rollup绑定了哪个索引

GET index_ecommerce_001/_rollup/data

# 通过索引找rollup

GET _rollup/data/kibana_sample_data_ecommerce


### Rollup分桶支持函数
# 分桶聚合函数支持
# 1.分组分桶Group支持的聚合函数


### 支撑的分桶分组聚合函数:date_histogram、histogram、terms
## Rollup数值聚合计算
# 数值聚合支持函数
# 1.Metric数值聚合函数支持

## 支撑的数值聚合函数:min、max、sum、avg、value_count


### Rollup数据查询限制
# 1.支持的查询表达式与类型
# 支持查询的类型语法    说明
# Term Query            精确词项查询
# Terms Query           精确词项查询
# Range Query           范围查询
# MatchAll Query        默认查询
# Any compound query (Boolean, Boosting, ConstantScore, etc)


### Rollup其它限制
# 其它限制
# 1.一个索引同时仅一个Rollup任务支持
# 2.数据必须有时间字段,建议时支持到毫秒的


### Kibana创建示例
# Kibana创建Kibana提供了可视化,非常方便创建维护
## path:Stack Management -> Rollup Jobs


#### 3、Transforms应用实战

## Transform概念
# 概念解释
# 1.与Rollup类似,将数据转换变化,基于聚合的思维,区别在于,可以不受时间限制,主要是在已有的聚合上做一次预聚合;
# 2.自带Checkpoint机制,可实时的刷新数据。


## Transform应用场景
# 应用场景海量明细数据提前预聚合统计;
# 需要进行二次聚合的数据统计

## Transform操作API
# 操作API
# 创建Transforms
# 维护Transforms

# Create transforms
# Delete transforms
# Get transforms
# Get transforms statistics
# Preview transforms
# Start transforms
# Stop transforms
# Update transforms

### 创建Transform
## 通用参数说明
# transform,创建 Transforms接口,后面参数为任务名称
# description,任务描述,定义转换任务描述
# dest,目标索引,按照规则新生成的索引,只能设定一个索引名称
# frequency,检查原始索引数据是否变化的间隔,最小 1s,建议按照业务需求设定,实际就是定时器,与 Rollup-cron表达式有点类似
# latest,标识数据字段是否最新,
# pivot,数据转换入口参数,包括分组group_by与aggregations聚合统计2部分
# retention_policy,数据保留策略,设置 time,setting
# settings,数据转换性能限制
# source,设置需要转换的索引信息
# sync,数据同步设定

## defer_validation 参数
# 依赖索引有效性验证,取值范围 true/false,默认false
# 部分索引是动态创建,不一定立刻就有

## dest 参数
# 设定目标索引信息
# 目标索引,按照规则新生成的索引,只能设定一个索引名称dest,
# pipeline,设定数据加工管道处理函数名称

## latest 参数
# latest,标识数据字段是否最新,用于判断哪些数据是否变化,便于计算挑选
# unique_key,指定唯一标识数据字段
# sort,设定排序字段

## pivot 参数
# pivot,数据转换入口参数,包括分组group_by与aggregations聚合统计2部分
# group_by,分组分桶字段选择,内部支持多个分组分桶,函数也支持多种,与Rollup不一样
# aggs/aggregations,聚合统计的数据值,一般建议是数值统计,支持多种指标聚合函数

## retention_policy 参数
# retention_policy,设定转换后的数据有效期
# field,指定数据字段
# max_age,设定有效期,可以设置多种维度

## settings 参数
# 设定数据抽取的频率限制
# 限制数据转换对于性能影响
# settings,数据转换性能限制
# docs_per_second,控制查询数据源,单秒阀值,默认无限制,集群任务过多,考虑资源建议限制,若从原数据-次查询过度,会交叉影响原始索引别的业务应用。
# max_page_search _size,默认500,范围【10,10000】,限制组合分桶时的输入数据量,到达这个阀值就开始执行聚合逻辑。防止单次聚合原始数据过多。白话就是每次聚合时,单次数据量尽量别太多。
# dates_as_epoch_milis,设置转换的时间字段是否符合iso 标准,取值范围 true/false、默认 false

## source 参数
# 设置需要转换的索引信息
# source,设置需要转换的索引信息
# index,指定原有索引名称,可以指定多个,支持通配符,最好是同一类索引数据
# query,限定原有数据集合,满足查询过滤条件,详细参考 DSL-query部分
# runtime_mappings,设定运行时字段

## sync 参数
# 设置数据写入到新索引策略
# sync,数据同步设定
# time,时间策略
# delay,间隔写入新索引的时间,默认60s,建议设置稍微大点
# field,设定前后间隔时间对比时参考的字段数据,一般建议设定时间

### 查询案例:按照大洲区域,按照客户性别,统计订单金额数据
GET kibana_sample_data_ecommerce/_search

{"track_total_hits": true,"size": 1,"aggs": {"terms_continent_name": {"terms": {"field": "geoip.continent_name","size": 7,"order": {"_key": "asc"}},"aggs": {"terms_customer_gender": {"terms": {"field": "customer_gender","size": 10},"aggs": {"stats_taxful_total_price": {"stats": {"field": "taxful_total_price"}}}}}}}
}


# 创建Transform

PUT _transform/my-trans-001
{"description": "我的转换-001","source": {"index": "kibana_sample_data_ecommerce","query": {"match_all": {}}},"pivot": {"group_by": {"terms_continent_name": {"terms": {"field": "geoip.continent_name"}},"terms_customer_gender": {"terms": {"field": "customer_gender"}}},"aggregations": {"max_taxful_total_price": {"max": {"field": "@timestamp"}},"min_taxful_total_price": {"min": {"field": "@timestamp"}},"avg_taxful_total_price": {"avg": {"field": "@timestamp"}},"sum_taxful_total_price": {"sum": {"field": "@timestamp"}}}},"dest":{"index":"index-trans-001"},"frequency":"1m","sync":{"time":{"field":"order_date","delay":"60s"}},"settings":{"docs_per_second":500,"max_page_search_size":500}
}


## 启动暂停
# transfroms与 rollup 一样,基于定时运行规则,也需要人为的启动/暂停
# start

POST _transform/my-trans-001/_start


# stop

POST _transform/my-trans-001/_stop

## 查询数据
# 查询数据,直接从新索引查询
# _search 查询,与 rollup不一样

GET index-trans-001/_search
{}

## 管理维护
# preview
# 在线预览创建后的 transfroms生成的数据
# preview,在线预览

POST _transform/_preview
{#此处与创建内容一样
}

## update
# 更新 transform 设置
# _update,在线更新

POST _transform/trans01/_update
{#此处与创建内容一样
}

## DELETE
DELETE _transform/<transform_id>

DELETE _transform/my-trans-001

## 查询GET
# transforms创建后,就会存储在 ES 之中
# 运行中会产生很多统计信息
# GET transform/<transform id>
# GET transform/<transform_id>,<transform_id>
# GET transform/
# # GET transform/_all
# GET transform/*
## 状态stats
# GET transform/<transform id>/ stats
# GET transform/<transform_id>,<transform_id>/ stats
# GET transform/stats
# GET transform/_all/_stats
# GET transform/*/stats

### Transform 限制
## aggregations聚合函数支持
# 注意高级的聚合函数支持,并非所有的都支持
# 支持计算聚合函数:avg、max、min、sum、bucket_script 管道聚合、cardinality、filter、geo_bounds、geo_centroid、median_absolute_deviation、missing、percentiles、rare_terms、scripted_metric、terms、value_count、weighted_avg

## group_by分桶支持函数
# 限制条件
# 函数限制,并非所有的聚合函数都支持,支持常用的大部分;
# 支持分桶聚合函数:date_histogram、geotile_grid、histogram、terms 
## 其它限制条件
# 限制条件
# 1.当前限制单集群1000个数据转换任务iob

### 转换节点设置
# ES为了大规模应用转换,启用了独立的节点角色,需要在节点启动之前配置好
# 参数设置
# 配置文件:{ES_HOME}/config/elasticsearch.yml
# node.roles:[transform]


#### 4、数据转换建议以及经验分享
## 任务数量限制
## 数据转换角色
## 可大规模运用ES分析能力,可有条件的替代市面上部分数据产品

# rollup & transform
# https://www.elastic.co/guide/en/elasticsearch/reference/8.6/data-rollup-transform.html
# rollup
# https://www.elastic.co/guide/en/elasticsearch/reference/8.6/xpack-rollup.html
# rollup-apis
# https://www.elastic.co/guide/en/elasticsearch/reference/8.6/rollup-apis.html
# transforms
# https://www.elastic.co/guide/en/elasticsearch/reference/8.6/transforms.html
# transform-checkpoints 局部更新机制
# https://www.elastic.co/guide/en/elasticsearch/reference/8.6/transform-checkpoints.html
# transform-apis
# https://www.elastic.co/guide/en/elasticsearch/reference/8.6/transform-apis.html
# transforms 节点角色
# https://www.elastic.co/guide/en/elasticsearch/reference/8.6/modules-node.html
# Apache Druid 产品
# https://druid.apache.org

相关文章:

es 3期 第25节-运用Rollup减少数据存储

#### 1.Elasticsearch是数据库&#xff0c;不是普通的Java应用程序&#xff0c;传统数据库需要的硬件资源同样需要&#xff0c;提升性能最有效的就是升级硬件。 #### 2.Elasticsearch是文档型数据库&#xff0c;不是关系型数据库&#xff0c;不具备严格的ACID事务特性&#xff…...

理解深度学习pytorch框架中的线性层

文章目录 1. 数学角度&#xff1a; y W x b \displaystyle y W\,x b yWxb示例 2. 编程实现角度&#xff1a; y x W T b \displaystyle y x\,W^T b yxWTb3. 常见错误与易混点解析4. 小结参考链接 在神经网络或机器学习的线性层&#xff08;Linear Layer / Fully Connect…...

“上门按摩” 小程序开发项目:基于 SOP 的全流程管理

在竞争激烈的生活服务市场,“上门按摩” 服务需求日益增长。为满足这一需求,我们启动了 O2O 模式的 “上门按摩” 小程序开发项目,该项目涵盖客户端、系统管理端、技师端。以下将通过各类 SOP 对项目进行全面管理,确保项目顺利推进。 一、项目启动 SOP:5W2H 分析法 What(…...

【xcode 16.2】升级xcode后mac端flutter版的sentry报错

sentry_flutter 7.11.0 报错 3 errors in SentryCrashMonitor_CPPException with the errors No type named terminate_handler in namespace std (line 60) and No member named set_terminate in namespace std 替换sentry_flutter版本为&#xff1a; 8.3.0 从而保证oc的…...

Unity自学之旅05

Unity自学之旅05 Unity学习之旅⑤&#x1f4dd; AI基础与敌人行为&#x1f94a; AI导航理论知识&#xff08;基础&#xff09;开始实践 &#x1f383; 敌人游戏机制追踪玩家攻击玩家子弹碰撞完善游戏失败条件 &#x1f917; 总结归纳 Unity学习之旅⑤ &#x1f4dd; AI基础与敌…...

LINUX下设置分离状态(Detached State)和未设置分离状态的主要区别在于线程资源的管理方式和线程的生命周期。以下是两种状态的对比:

1. 设置分离状态&#xff08;Detached State&#xff09; 资源管理&#xff1a; 线程终止时&#xff0c;系统会自动释放与线程相关的所有资源&#xff08;如线程栈、线程控制块&#xff09;。不需要其他线程显式回收&#xff08;pthread_join&#xff09;。 线程生命周期&…...

软考信安26~大数据安全需求分析与安全保护工程

1、大数据安全威胁与需求分析 1.1、大数据相关概念发展 大数据是指非传统的数据处理工具的数据集,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低等特征。 大数据的种类和来源非常多,包括结构化、半结构化和非结构化数据。 1.2、大数据安全威胁分析 (…...

Alibaba Spring Cloud 一 核心组件、特性

Alibaba Spring Cloud 是 Alibaba 基于 Spring Cloud 的分布式微服务解决方案&#xff0c;提供了一套高性能、高可靠的微服务开发和运维工具。它扩展了 Spring Cloud 的功能&#xff0c;并优化了许多在生产环境中的实践场景&#xff0c;例如服务发现、配置管理、熔断限流等。 …...

通过脚本申请免费SSL证书(泛解析SSL证书)

参考来源 1.https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E 2.https://github.com/acmesh-official/acme.sh/wiki/dns-manual-mode 3.https://github.com/acmesh-official/acme.sh/wiki/dnsapi 安装 acme.sh 配置账号 配置默认CA 安装依赖 # Cento…...

基于相机内参推导的透视投影矩阵

基于相机内参推导透视投影矩阵&#xff08;splatam&#xff09;&#xff1a; M c a m [ 2 ⋅ f x w 0.0 ( w − 2 ⋅ c x ) w 0.0 0.0 2 ⋅ f y h ( h − 2 ⋅ c y ) h 0.0 0 0 f a r n e a r n e a r − f a r 2 f a r ⋅ n e a r n e a r − f a r 0.0 0.0 − 1.0 0.0 ] M_…...

代码随想录算法训练营day34

代码随想录算法训练营 —day34 文章目录 代码随想录算法训练营前言一、62.不同路径动态规划动态规划空间优化 二、63. 不同路径 II动态规划动态规划优化空间版 三、343. 整数拆分动态规划贪心算法 96.不同的二叉搜索树总结 前言 今天是算法营的第34天&#xff0c;希望自己能够…...

Orgill EDI需求分析

Orgill 是一家位于美国的家族企业&#xff0c;主要为五金零售商、建材供应商及相关行业提供全面的分销服务和支持&#xff0c;覆盖范围遍及全球。 EDI需求分析 EDI全称Electronic Data Interchange&#xff0c;中文名称是电子数据交换&#xff0c;也被称为“无纸化贸易”。EDI…...

好用的js工具类

格式化相关 // 数字每三位增加一个逗号 function toThousands(num) {if (num) {return num.toString().replace(/\d/, function(n) {// 先提取整数部分return n.replace(/(\d)(?(\d{3})$)/g, function($1) {return $1 ,})})} else {return 0} }//输出10,000 toThousands(10…...

C++ —— 基于范围的 for 循环

C —— 基于范围的 for 循环 语法push_back() 与 emplace_back() 的区别**emplace_back()** 示例代码如下&#xff1a;**push_back()** 示例代码如下&#xff1a; 容器中的元素是结构体和类 语法 C11中引入了基于范围的for循环&#xff0c;语法如下&#xff1a; for (迭代的变…...

15-spring整合mybatis方式一

spring整合mybatis 方式一【重要】 步骤: 1.导入相关jar包 junit mybatis mysql数据库 spring相关的 aop织入 mybatis-spring 【new】 junit junit 4.12 mysql mysql-connector-java 8.0.23 org.mybatis mybatis 3.5.2 org.springframework spring-webmvc 5…...

数据结构:二叉树—面试题(一)

目录 1、相同的树 2、另一棵树的子树 3、翻转二叉树 4、平衡二叉树 5、对称二叉树 6、二叉树遍历 7、二叉树的分层遍历 1、相同的树 习题链接https://leetcode.cn/problems/same-tree/description/https://leetcode.cn/problems/same-tree/description/ 描述&#xff1a…...

GPU算力平台|在GPU算力平台部署可图大模型Kolors的应用实战教程

文章目录 一、GPU算力服务平台GPU算力服务平台的概述 二、平台账号注册流程可图大模型Kolors的应用实战教程可图大模型的介绍可图大模型的应用场景可图大模型Kolors的部署步骤 一、GPU算力服务平台 GPU算力服务平台的概述 蓝耘GPU算力平台专为高性能计算设计&#xff0c;广泛…...

Linux探秘坊-------4.进度条小程序

1.缓冲区 #include <stdio.h> int main() {printf("hello bite!");sleep(2);return 0; }执行此代码后&#xff0c;会 先停顿两秒&#xff0c;再打印出hello bite&#xff0c;但是明明打印在sleep前面&#xff0c;为什么会后打印呢&#xff1f; 因为&#xff…...

Ansys Motor-CAD:IPM 电机实验室 - 扭矩速度曲线

各位电动机迷们&#xff0c;大家好&#xff1a; 在本博客中&#xff0c;我讨论了如何使用 Ansys Motor-CAD 通过 LAB 模块获取扭矩速度曲线。使用每安培最大扭矩电机控制策略&#xff0c;并涵盖恒定扭矩区域和恒定功率、磁通减弱区域。分析了高转子速度如何影响功率输出。 模型…...

关于事件捕获和事件冒泡的理解

我一直对事件捕获和事件冒泡是挺困惑的&#xff0c;好像理解了&#xff0c;但又感觉哪里不对。这篇文章打算深入探讨一些细节性的问题&#xff0c;更好的理解事件捕获和事件冒泡。 当我们点击的时候&#xff0c;浏览器的默认行为是怎么样的&#xff1f; 搞清楚这个非常的重要…...

如何使用HASH创建低交互式蜜罐系统

关于HASH HASH是一个用于创建和启动低交互蜜罐的框架&#xff0c;可以帮助广大研究人员轻松创建HTTP无关的低交互式软件蜜罐。 HASH 的主要理念是易于配置&#xff0c;能够灵活地模拟在 HTTP/HTTPs 上运行的任何软件。尽可能减少占用空间&#xff0c;避免被检测为蜜罐。 功能…...

vue3+vite+ts安装wangeditor富文本编辑器

需求: 实现粘贴,上传图片时本地渲染但并不实现上传功能,工具栏移除不需要的工具 安装方法看官网 安装 | wangEditor 封装子组件 wangEditor.vue <template><div><div style"border: 1px solid #ccc; margin-top: 10px"><Toolbar:editor&qu…...

PostIn教程-安装配置

PostIn是一款国产开源免费的接口管理工具&#xff0c;包含项目管理、接口调试、接口文档设计、接口数据MOCK等模块&#xff0c;支持常见的HTTP协议、websocket协议等&#xff0c;支持免登陆本地接口调试&#xff0c;同时可以对项目进行灵活的成员权限、消息通知管理等。 1、服务…...

SpringBoot读取配置优先级顺序是什么?

Spring Boot外部化配置详解 目录 引言Spring Boot外部化配置概述配置加载优先级配置加载顺序详解实际案例总结 引言 Spring Boot因其“开箱即用”的特性&#xff0c;极大地简化了Java应用的开发和部署过程。它通过外部化配置机制&#xff0c;允许开发者根据不同的环境&#x…...

群晖docker获取私有化镜像http: server gave HTTP response to HTTPS client].

群晖docker获取私有化镜像提示http: server gave HTTP response to HTTPS clien 问题描述 层级时间用户事件Information2023/07/08 12:47:45cxlogeAdd image from xx.xx.31.240:1923/go-gitea/gitea:1.19.3Error2023/07/08 12:47:48cxlogeFailed to pull image [Get "http…...

MySQL8【学习笔记】

第一章前提须知 1.1 需要学什么 Dbeaver 的基本使用SQL 语句&#xff1a;最重要的就是查询&#xff08;在实战的时候&#xff0c;你会发现我们做的绝大部分工作就是 “查询”&#xff09;MySQL 存储过程&#xff08;利用数据库底层提供的语言&#xff0c;去进行业务逻辑的封装…...

汇编实验·子程序设计

一、实验目的: 1.掌握汇编中子程序编写方法 2.掌握程序传递参数的基本方法,返回值的方法。 3.掌握理解子程序(函数)调用的过程 二、实验内容 1.编写汇编语言子程序,实现C表达式SUM=X+Y的功能,具体要求: 1)函数的参数传递采用寄存器实现 2)函数的参数传递采用堆栈…...

EDI安全:2025年数据保护与隐私威胁应对策略

在数字化转型的浪潮中&#xff0c;电子数据交换&#xff08;EDI&#xff09;已成为企业间信息传递的核心基础设施。然而&#xff0c;随着数据规模的指数级增长和网络威胁的日益复杂化&#xff0c;EDI安全正面临前所未有的挑战。展望2025年&#xff0c;企业如何构建一套全面、高…...

Cloudpods是一个开源的Golang实现的云原生的融合多云/混合云的云平台,也就是一个“云上之云”。

Cloudpods是一个开源的Golang实现的云原生的融合多云/混合云的云平台&#xff0c;也就是一个“云上之云”。Cloudpods不仅可以管理本地的虚拟机和物理机资源&#xff0c;还可以管理多个云平台和云账号。Cloudpods隐藏了这些异构基础设施资源的数据模型和API的差异&#xff0c;对…...

C++小病毒-1.0勒索

内容供学习使用,不得转卖,代码复制后请1小时内删除,此代码会危害计算机安全,谨慎操作 在C20环境下,并在虚拟机里运行此代码! #include <iostream> #include <windows.h> #include <shellapi.h> #include <stdio.h> #include <fstream> #include…...

MySQL入门(数据库、数据表、数据、字段的操作以及查询相关sql语法)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…...

AIGC视频扩散模型新星:Video 版本的SD模型

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍慕尼黑大学携手 NVIDIA 等共同推出视频生成模型 Video LDMs。NVIDIA 在 AI 领域的卓越成就家喻户晓&#xff0c;而慕尼黑大学同样不容小觑&#xff0c;…...

08-ArcGIS For JavaScript-通过Mesh绘制几何体(Cylinder,Circle,Box,Pyramid)

目录 概述代码实现1、Mesh.createBox2、createPyramid3、Mesh.createSphere4、Mesh.createCylinder 完整代码 概述 对于三维场景而言&#xff0c;二位的点、线、面&#xff0c;三维的圆、立方体、圆柱等都是比较常见的三维对象&#xff0c;在ArcGIS For JavaScript中我们知道点…...

在 Go 语言中如何高效地处理集合

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons&#xff1a;JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram&#xff0c;自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 &#xff1f; 5 IDEA必装的插件&…...

Python的进程和线程

ref 讲个故事先 这就像一个舞台&#xff08;CPU核心&#xff09;​&#xff0c; 要供多个剧组演出多个剧目&#xff08;进程&#xff09;​&#xff0c; 剧目中有多个各自独立的角色&#xff08;线程&#xff09;​&#xff0c;有跑龙套的&#xff0c;有主角&#xff0c;第一…...

基于单片机的智能台灯设计

摘要: 方向和亮度,采用的是手动调节。而对于儿童来说,他们通常不知道如何调整以及调整到何种程度。本文设计了一款智能台灯,当有人的 台灯是用于阅读学习而设计使用的灯,一般台灯用的灯泡是白炽灯、节能灯泡以及市面上流行的护眼台灯,可以调节高度、光照的时候,可以根据…...

vue3案例:筛选部门、选择人员案例组件

可以控制可以选多人&#xff0c;或者只能选单人可以做部门筛选再选人&#xff0c;没有部门情景&#xff0c;直接显示全部人员&#xff0c;有输入框可以搜索人员 ✨一、实现功能 需求&#xff1a; 可以灵活控制&#xff0c;多选或者单选人员配合部门进行部门下的人员筛选 详细…...

Spring MVC:综合练习 - 深刻理解前后端交互过程

目录 1. Lombok 1.1 引入 lombok 依赖 1.1.1 通过 Maven 仓库引 lombok 依赖 1.1.2 通过插件引入 lombok 依赖 1.2 Data 1.3 其他注解 2. 接口文档 2.1 接口(api) 2.2 接口文档 3. 综合练习 - 加法计算器 3.1 定义接口文档 3.2 准备工作 - 前端代码 3.3 后端代码 …...

Debian常用命令

以下是完整的 Linux 命令大全&#xff0c;适用于 Debian、Ubuntu 及其衍生系统&#xff0c;涵盖系统管理、文件操作、磁盘管理、用户管理、网络调试、安全、进程管理等多个方面。 目录 基本命令关机与重启文件和目录管理文件搜索挂载文件系统磁盘空间管理用户和群组管理文件和…...

【FFmpeg】FLV 格式分析 ③ ( Tag Body 数据块体结构 - Vedio Data 视频数据 )

文章目录 一、Tag Body 数据块体结构 - Video Data 视频数据1、Vedio Data 视频数据 类型标识2、Vedio Data 视频数据 结构分析3、Composition Time Offset 字段涉及的时间计算4、AVC Packet Type 字段说明① AVC Sequence Header 类型② AVC NALU 类型③ AVC End of Sequence …...

开源鸿蒙开发者社区记录

lava鸿蒙社区可提问 Laval社区 开源鸿蒙项目 OpenHarmony 开源鸿蒙开发者论坛 OpenHarmony 开源鸿蒙开发者论坛...

MinIO的安装与使用

目录 1、安装MinIO 1.1 下载 MinIO 可执行文件 1.2 检查 MinIO 是否安装成功 1.3 设置数据存储目录 1.4 配置环境变量&#xff08;可选&#xff09; 1.5 编写启动的脚本 1.6 开放端口 1.7 访问 2、项目实战 2.1 引入依赖 2.2 配置yml文件 2.3 编写Minio配置类 2.4…...

【分布式日志篇】从工具选型到实战部署:全面解析日志采集与管理路径

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…...

Spring Boot/MVC

一、Spring Boot的创建 1.Spring Boot简化Spring程序的开发,使用注解和配置的方式开发 springboot内置了tomact服务器 tomact:web服务器,默认端口号8080,所以访问程序使用8080 src/main/java:Java源代码 src/main/resource:静态资源或配置文件,存放前端代码(js,css,html) s…...

uni-app连接EventSource

前言 uniapp默认是不支持event-source&#xff0c;这里是借助renderjs进行SSE连接 正文 引入event-source-polyfill 这里演示的是直接将代码下载到本地进行引入 下载地址 把里面的eventsource.min.js文件放到项目中的static文件夹 项目封装event-source.vue组件 <templ…...

[SCTF2019]babyre

[SCTF2019]babyre 一、查壳 无壳&#xff0c;64位 二、IDA分析 1.没有main&#xff0c;那就shifef12 点击&#xff1a; 再进&#xff1a; 都是花指令&#xff0c;所以要先解决花指令 三、解决花指令&#xff0c;得到完整的 main 往上面翻&#xff0c;注意看爆红的&#x…...

简洁实用的wordpress外贸模板

简洁、实用、大气的wordpress外贸模板&#xff0c;适合跨境电商搭建外贸B2B产品展示型网站。 简洁实用的wordpress外贸模板 - 简站WordPress主题简洁、实用、大气的wordpress外贸模板&#xff0c;适合跨境电商搭建外贸B2B产品展示型网站。https://www.jianzhanpress.com/?p828…...

每日一题 414. 第三大的数

414. 第三大的数 简单 class Solution { public:int thirdMax(vector<int>& nums) {int n nums.size();long first , second,third;first second third LONG_MIN ;bool find false;for(auto num : nums){if(num > first){ third second;second first…...

TVM框架学习笔记

TVM是陈天齐等人一个开源的深度学习编译器栈,用于优化和部署机器学习模型到各种硬件后端。它支持多种前端框架,如TensorFlow、PyTorch、ONNX等,并且可以在不同的硬件平台上运行,包括CPU、GPU和专用加速器。官方文档: Apache TVM Documentation — tvm 0.20.dev0 documenta…...

Codeforces Round 998 (Div. 3)

文章目录 EF E 原题链接 思路&#xff1a; 题目要求对于 G 中存在路径的两个点&#xff0c;在 F 中也必须存在路径&#xff0c;不是两个点存在直连的边。 两个点存在路径&#xff0c;说明俩个点在同一个连通块。我们用并查集来维护图的连通块。 最终的要求就是把 F 的并查集通…...