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

数据仓库: 8- 数据仓库性能优化

CSDN 目录展示

目录

    • 8- 数据仓库性能优化
      • 8.1 查询优化
        • 8.1.1 索引优化
        • 8.1.2 分区和分桶
        • 8.1.3 使用缓存
        • 8.1.4 查询简化与重写
        • 8.1.5 聚合优化
        • 8.1.6 并行化和分布式计算
        • 8.1.7 基于列存储的优化
        • 8.1.8 表的分区和数据清洗
        • 8.1.9 查询提示 (Hints)
        • 8.1.10 自动调优工具
      • 8.2 索引设计
        • 8.2.1 索引的作用
        • 8.2.2 数据仓库中索引的常见类型
        • 8.2.3 索引设计原则
        • 8.2.4 索引设计中的常见问题
        • 8.2.5 索引设计案例
        • 8.2.6 数据仓库与传统OLTP索引的区别
        • 8.2.7 索引设计工具与方法
      • 8.3 数据倾斜处理
        • 8.3.1 数据倾斜的定义
        • 8.3.2 理解数据倾斜的原因
        • 8.3.3 数据倾斜的识别
        • 8.3.4 数据倾斜的处理方法
        • 8.3.5 示例 (Spark)
        • 8.3.6 总结
      • 8.4 资源管理
        • 8.4.1 资源管理的目标
        • 8.4.2 数据仓库资源管理的资源分类
        • 8.4.3 数据仓库资源管理的关键技术
          • 1. 资源分配与隔离
          • 2. 资源调度
          • 3. 并发控制
          • 4. 数据分区分片
          • 5. 缓存管理
          • 6. 压缩与存储优化
        • 8.4.4 常用资源管理工具与框架
          • 1. Hadoop YARN
          • 2. Apache Mesos
          • 3. Kubernetes
          • 4. Spark Resource Manager
          • 5. 数据仓库工具内置管理功能
        • 8.4.5 资源管理中的常见问题与优化措施
          • 1. 问题
          • 2. 优化措施
        • 8.4.6 案列分析
          • 案例1: 大数据批处理任务资源管理
          • 案例2: 热点查询的内存优化
        • 8.4.7 总结
      • end

8- 数据仓库性能优化

8.1 查询优化

在数据仓库中, 查询优化是性能优化的核心, 直接影响数据检索的速度和效率 ;

优化查询可以通过多种方法来提高性能, 确保在查询数据量较大时, 系统仍然能够快速响应 ;

8.1.1 索引优化
  • 创建合适的索引: 建立合理的索引可以显著提高查询速度, 特别是在使用 WHEREJOIN 语句过滤大量数据时 ; 索引的选取应基于查询中经常使用的列, 但避免过多索引以免造成插入和更新的性能开销 ;
  • 选择性索引: 在高选择性字段 (即不同值多、重复值少的字段) 上建立索引效果最好, 如 idname 等主键或唯一标识符 ;
8.1.2 分区和分桶
  • 分区表: 将表按某些字段 (如: 日期、区域) 分区, 允许查询在较小的数据集上进行操作, 显著加快查询速度 ; 在 Hive、Impala 等工具中, 分区是一种常用的优化方式 ;
  • 分桶: 将数据按字段分为多个桶 (通常使用 HASH 函数) 可以有效支持 JOIN 操作; 在分桶的情况下, 同样的 JOIN 字段的数据会放到相同的桶中, 从而加速查询 ;
8.1.3 使用缓存
  • 结果缓存: 对于频繁查询的相同数据, 可利用缓存 (如 Memcached、Redis) 减少数据库查询频率, 提升响应速度 ;
  • 中间结果缓存: 在数据仓库中, 复杂查询的中间结果可以缓存 (如 Materialized View 或临时表) 以便复用, 避免重复计算 ;
8.1.4 查询简化与重写
  • 避免SELECT * : 在查询中明确指定所需字段, 减少不必要的数据传输量 ;
  • 优化JOIN 和子查询: 调整JOIN 语句的顺序和类型, 选择性能更高的 INNER JOINLEFT JOIN ; 子查询可以尝试重写为 JOINWITH 子句以提高效率 ;
  • 过滤条件下推: 将过滤条件尽可能前置到底层表扫描阶段以减少数据扫描量; 例如, 在JOIN 前增加 WHERE 条件 ;
8.1.5 聚合优化
  • 预计算聚合结果: 对经常使用的聚合计算 (如 SUMAVG) 进行预计算, 存储在中间表或试图中 ;

  • 使用数据立方体(CUBE): 在某些查询引擎中, 可以使用 CUBEROLLUP 进行多维聚合操作, 避免重复计算 ;

8.1.6 并行化和分布式计算
  • 并行查询: 利用数据仓库的并行计算功能, 特别是在大规模数据处理平台(如 Hadoop、Spark) 上, 将查询分解为多个并行任务, 显著加速处理速度 ;
  • 分布式计算: 对于大数据量, 分布式数据仓库 (如 Snowflake、BigQuery) 可以通过将数据和计算任务分布到多个节点, 提高查询效率 ;
8.1.7 基于列存储的优化
  • 列式存储格式: 在数据仓库中使用列式存储格式 (如: Parquet、ORC) 能显著减少 I/O 读取量, 因为只需读取查询涉及的列数据, 特别适合分析型查询 ;
  • 数据压缩: 列式存储格式通常带有数据压缩功能, 在减少存储的同时还可以提高读取效率 ;
8.1.8 表的分区和数据清洗
  • 按时间分区: 对于时间序列数据, 将表按时间( 如 天、月) 分区, 并对老旧数据进行归档或删除, 减少活跃数据的量 ;
  • 去除冗余和脏数据: 对表数据进行清洗, 剔除无效数据, 能减少扫描量并提升查询效率 ;
8.1.9 查询提示 (Hints)
  • 在一些 SQL 查询引擎中 (如 Oracle) , 可以通过使用 HINT 指定查询策略 (如使用特定的索引或表扫描方式) , 从而控制查询执行计划以获得更高性能 ;
8.1.10 自动调优工具
  • 数据库调优工具: 许多数据仓库管理系统 (如 SQL Server 的自动调优功能) 可以提供索引建议、查询分析和执行计划优化, 帮助进一步提升查询性能 ;

通过以上优化措施, 数据仓库的查询性能可以显著提升, 确保在大数据量、高并发查询场景下仍能保持快速响应和稳定性 ;

8.2 索引设计

在数据仓库性能优化中, 索引设计 是一个关键环节, 可以显著提高查询效率和降低响应时间 ;

8.2.1 索引的作用

索引是数据库中用于快速查找数据的结构, 通过减少全表扫描的需求, 提升查询性能; 在数据仓库中, 索引主要优化以下场景:

  • 快速定位数据: 提升 SELECT 语句的效率 ;
  • 加速聚合查询: 如SUM、COUNT、AVG等操作 ;
  • 提高排序性能: ORDER BY 或 GROUP BY查询 ;
8.2.2 数据仓库中索引的常见类型
  1. 唯一索引: 确保列中的数据唯一性, 适用于主键或唯一约束列 ;
  2. 非唯一索引: 加速频繁查询但不需要唯一约束的字段, 适用于数据分析的维度查询 ;
  3. 聚簇索引: 数据存储顺序与索引顺序一致, 适用于范围查询和排序操作 ;
  4. 非聚簇索引: 索引结构独立于数据表, 适合随机查询和小范围数据的检索 ;
  5. Bitmap索引: 数据仓库常用, 针对低基数(如性别、地区) 的字段优化查询性能 ; 优点: 占用空间少, 适合多列组合过滤; 缺点: 不适合频繁更新的数据 ;
  6. 分区索引: 结合表分区, 将索引按分区存储, 适合大规模数据分区管理 ;
  7. 覆盖索引: 仅包含查询所需列, 减少磁盘访问次数 ;
8.2.3 索引设计原则
  1. 基于查询需求设计
    • 分析常见查询条件(WHERE子句)
    • 选择高频率、过滤性强的字段作为索引列
  2. 避免过多索引
    • 索引需要维护, 过多索引会增加数据插入、更新和删除的开销
    • 平衡读取性能和写入性能
  3. 考虑列的基础
    • 高基数字段 (如用户ID) : 适合 B-Tree索引
    • 低基数字段 (如性别) : 适合Bitmap索引
  4. 多列组合索引
    • 优化多条件查询 (WHERE col1 AND col2)
    • 列顺序需根据查询频率排列, 最常用的列放在前面
  5. 避免索引冗余
    • 不重复创建覆盖已有索引功能的索引
  6. 动态优化索引
    • 基于查询日志分析实际使用情况, 移除未使用索引或调整索引结构
8.2.4 索引设计中的常见问题
  1. 查询未命中索引
    • 查询未按索引顺序使用字段
    • 使用函数或计算, 如 WHERE UPPER(name) = 'JOHN'
  2. 索引失效
    • 索引字段类型与查询类型不匹配
    • 查询条件模糊, 如 LIKE '%keyword%'
  3. 高频更新导致索引开销
    • 索引频繁更新可能拖慢写入速度
8.2.5 索引设计案例
  1. 优化查询性能
    • 表: 销售数据表 ;
    • 查询: 根据销售日期和地区统计销售额 ;
    • 索引建议: 为 sales_dateregion 字段建立组合索引, 先以 sales_date 为主列 ;
  2. 多条件复杂过滤
    • 表: 用户行为日志表 ;
    • 查询: 根据 user_idevent_type 快速定位日志 ;
    • 索引建议: 建立Bitmap索引, 适配高效多条件过滤 ;
8.2.6 数据仓库与传统OLTP索引的区别
  • 查询频率: 数据仓库更注重读性能, 索引设计偏向复杂查询优化 ;
  • 更新频率: 数据仓库数据更新较少, 可使用更多低基数索引 (如 Bitmap) ;
  • 索引类型: 数据仓库常用分区索引和Bitmap索引, 而OLTP主要使用B-Tree ;
8.2.7 索引设计工具与方法
  • 工具: EXPLAIN语句、查询优化器、性能监控工具 ;
  • 方法: 通过查询分析器定位慢查询, 逐步调整索引 ;

通过合理的索引设计, 可以显著提升数据仓库的查询效率, 降低系统资源占用, 并优化用户体验 .

8.3 数据倾斜处理

在数据仓库性能优化中, 数据倾斜处理是一个关键问题, 因为数据倾斜会导致查询或计算任务的执行效率显著下降, 甚至导致任务失败;

8.3.1 数据倾斜的定义

数据倾斜: 是指在数据分布过程中, 某些数据节点 (分区或任务) 上的数据量远远多于其它节点, 导致任务的执行时间取决于最慢的节点 ;

常见的倾斜场景包括:

  • 某字段值过于集中 (如用户ID中大量重复值) ;
  • 数据分区方式导致某些分区存储了过多的数据 ;
  • 键值分布不均匀, 聚合或链接操作时部分键值过大 ;
8.3.2 理解数据倾斜的原因

数据倾斜通常由一下几个原因引起:

  • Key 分布不均匀: 在进行 shuffle 操作 (例如 JOIN、GROUP BY、DISTINCT 等) 时, 如果某些 key 的数据量特别大, 就会导致数据倾斜 ;
  • 数据本身的特性: 某些数据本身就存在倾斜, 例如某些用户的访问量远高于其他用户 ;
  • 不合理的 SQL 语句: 一些不合理的 SQL 语句也可能导致数据倾斜, 例如使用大量的子查询或复杂的JOIN 条件 ;
8.3.3 数据倾斜的识别
  • 观察作业执行时间: 如果某个作业的执行时间明显长于预期, 则可能存在数据倾斜 ;
  • 查看作业执行日志: 作业执行日志中通常会记录每个任务的执行时间和数据量, 可以从中发现数据倾斜的节点 ;
  • 使用监控工具: 一些数据仓库平台提供监控工具, 可以实时监控作业的执行情况, 并识别数据倾斜 ;
8.3.4 数据倾斜的处理方法
  • 预聚合 (Pre-aggregation): 对于一些常用的聚合操作, 可以预先计算并将结果存储起来, 避免在查询时进行大量的计算 ;
  • 过滤小表 (Filtering Small Tables): 在进行 JOIN 操作时, 如果其中一个表的数据量很小, 可以先将其广播到所有节点, 避免数据倾斜 ;
  • 增加 Reduce 的数量: 增加 Reduce 的数量可以将数据分散到更多的节点上, 减轻数据倾斜的影响 ;
  • 使用随机 Key: 在进行 JOIN 或 GROUP BY 操作时, 可以为 key 添加一个随机数, 将数据分散到不同的节点上 ;
  • 使用倾斜优化参数: 一些数据仓库平台提供专门的倾斜优化参数, 可以根据具体情况进行调整 ;
  • 调整数据分布: 重新设计表的分区键或分桶键, 使数据更均匀地分布到各个节点上 ;
  • 优化 SQL 语句: 避免使用复杂的 JOIN 条件或子查询, 尽量简化 SQL 语句 ;
8.3.5 示例 (Spark)
// 使用 随机 Key 解决数据倾斜
val saltedData = data.map(x => (Random.nextInt(100) + "_" + x._1, x._2))// 增加 Reduce 的数量
sqlContext.setConf("spark.sql.shuffle.partitions", "200")
8.3.6 总结

数据倾斜是数据仓库性能优化中的一个常见问题, 需要结合具体业务场景、数据分布特点以及查询模式来选择合适的解决方案 ; 理解数据倾斜的原因、识别数据倾斜的节点, 并采取相应的措施, 可以有效提高数据仓库的查询性能 .

8.4 资源管理

资源管理 是数据仓库性能优化的重要组成部分, 目的是通过合理分配和调控计算、存储、内存等资源, 提升数据仓库的整体运行效率, 同时降低成本和资源浪费 ;

8.4.1 资源管理的目标
  • 提升性能: 确保关键任务优先完成, 减少资源竞争 ;
  • 保障稳定性: 避免因资源不足导致任务失败或系统崩溃 ;
  • 优化成本: 合理分配资源, 避免浪费或过度分配 ;
  • 提高并发性: 支持多个任务同时执行 ;
8.4.2 数据仓库资源管理的资源分类
  • 计算资源
    • CPU核数
    • GPU加速 (如适用)
  • 存储资源
    • 磁盘空间 (本地或分布式存储, 如HDFS)
    • 数据压缩和分区策略
  • 内存资源
    • 用于缓存、查询优化、临时表存储等
  • 网络资源
    • 数据节点间的传输带宽
    • 分布式计算的网络性能
  • 作业列队和并发控制
    • 控制任务的优先级和排队规则
8.4.3 数据仓库资源管理的关键技术
1. 资源分配与隔离
  • 静态分配: 资源在任务运行前预先分配, 例如为每个用户或部门分配固定的资源配额 ;
  • 动态分配: 根据任务的优先级和运行状态实时调整资源 ;
  • 资源隔离: 通过 队列 (Queue) 或 容器化 (如Kubernetes) 实现, 确保不同用户或任务之间互不干扰 ;
2. 资源调度
  • 任务优先级: 优先调度关键业务任务 (如实时数据查询) , 延迟非关键任务 (如批处理任务) ;
  • 时间窗口调度: 根据业务需求设定高峰时段和非高峰时段的资源使用规则 ;
  • 多租户支持: 为不同用户、团队或部门分配资源上限, 支持多租户场景 ;
3. 并发控制
  • 限制同时运行的查询或任务数量, 避免资源争用 ;
  • 动态调整并发数, 根据当前系统负载情况优化 ;
4. 数据分区分片
  • 对大规模数据集进行水平或垂直分区, 减少单次查询的数据量 ;
  • 分片技术将数据均匀分布到每个节点, 防止数据倾斜 ;
5. 缓存管理
  • 利用内存或分布式缓存 (如 Redis、Memcahed) 加速热点查询 ;
  • 自动淘汰冷数据, 释放内存资源 ;
6. 压缩与存储优化
  • 压缩算法 (如 Parquet、ORC格式) 减少存储开销 ;
  • 分层存储 (如冷热数据分层) 降低高频查询的I/O延迟 ;
8.4.4 常用资源管理工具与框架
1. Hadoop YARN
  • 提供资源调度和任务管理
  • 支持动态资源分配与隔离
2. Apache Mesos
  • 提供分布式资源管理
  • 可支持多种框架 (如Spark、Hadoop)
3. Kubernetes
  • 基于容器技术实现资源隔离
  • 动态扩展计算资源, 支持弹性伸缩
4. Spark Resource Manager
  • 在分布式环境中管理内存、CPU和执行器资源
  • 与YARN或Kubernetes集成
5. 数据仓库工具内置管理功能
  • 如Amazon Redshift、Google BigQuery、Snowflake 等云数据仓库, 通常内置智能资源管理功能, 包括查询优化和自动扩展
8.4.5 资源管理中的常见问题与优化措施
1. 问题
  1. 资源不足: 高并发或大规模计算任务时, 系统资源耗尽
  2. 资源浪费: 任务的资源分配过大, 导致未充分利用
  3. 资源争用: 多个任务同时运行时争夺资源, 影响性能
  4. 单点瓶颈: 某节点过载, 而其它节点空闲
2. 优化措施
  • 资源池化: 将资源池化, 按需动态分配
  • 负载均衡: 调整任务分配策略, 避免单节点过载
  • 弹性扩展:在高峰时段增加资源, 在低峰时段释放资源
  • 监控与报警: 实时监控系统资源使用情况, 预警资源耗尽风险
8.4.6 案列分析
案例1: 大数据批处理任务资源管理
  • 场景: 每日定时运行批量数据分析任务, 占用大量计算资源
  • 优化措施:
    • 调整任务运行时间到非高峰时段
    • 使用分布式调度工具 (如Apache Airflow) 动态分配资源
    • 提起缓存热点数据, 减少计算需求
案例2: 热点查询的内存优化
  • 场景: 实时查询任务占用大量内存, 导致批处理任务无法运行
  • 优化措施:
    • 设置查询优先级, 高频查询分配更多资源
    • 使用分布式缓存存储查询结果, 减少重复计算
8.4.7 总结

数据仓库的资源管理是一个复杂的系统工程, 涵盖了计算、存储、内存、网络等多个维度;

通过合理的资源分配、任务调度、并发控制和存储优化, 可以显著提升数据仓库的性能和稳定性, 为企业提供更高效的数据支持 .

end

相关文章:

数据仓库: 8- 数据仓库性能优化

CSDN 目录展示 目录 8- 数据仓库性能优化8.1 查询优化8.1.1 索引优化8.1.2 分区和分桶8.1.3 使用缓存8.1.4 查询简化与重写8.1.5 聚合优化8.1.6 并行化和分布式计算8.1.7 基于列存储的优化8.1.8 表的分区和数据清洗8.1.9 查询提示 (Hints)8.1.10 自动调优工具 8.2 索引设计8.2…...

可编程网络在分布式深度学习通信瓶颈控制中的应用与未来展望

目录 可编程网络在分布式深度学习通信瓶颈控制中的应用与未来展望 可编程网络在分布式深度学习通信瓶颈控制中的应用与未来展望 在分布式深度学习领域,随着模型规模的不断扩大,训练过程中的通信开销已成为制约性能提升的关键因素。传统的分布式训练方法面临高通信延迟和带宽…...

【论文笔记】Tool Learning with Foundation Models 论文笔记

Tool Learning with Foundation Models 论文笔记 文章目录 Tool Learning with Foundation Models 论文笔记摘要背景:工作: 引言工具学习的发展本文工作(大纲&目录) 背景2.1 工具使用的认知起源2.2 工具分类:用户界…...

Springfox迁移到 Springdoc OpenAPI 3

将项目从 Springfox 迁移到 Springdoc OpenAPI 3 时,主要的工作是将原先使用的 Springfox 注解替换为 Springdoc OpenAPI 3 中的对应注解。虽然 Springdoc OpenAPI 3 基于 OpenAPI 3 规范,并且有一些不同的命名方式和设计理念,但大部分注解的…...

DIY-Tomcat part 3 实现对动态资源的请求

实现ServletRequest package connector;import javax.servlet.RequestDispatcher; import javax.servlet.ServletInputStream; import javax.servlet.ServletRequest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i…...

3.10 内核 BUG_ON() at xfs_vm_writepage() -> page_buffers()

目录 前言 问题分析 page buffers创建 page buffers丢失 Write-Protect Dirty Page w/o Buffers 问题解决 前言 这个问题发生在3.10.0-514.el7上,并且在RHEL的知识库中快速找到了对应的案例以及解决方案,但是,理解问题如何发生和解决…...

CrystalDiskInfo:硬盘健康监测工具简介和下载

原论坛给你更好的阅读体验:CrystalDiskInfo:硬盘健康监测工具简介和下载 | 波波论坛 引言 在日常使用电脑时,硬盘的健康状态对于系统的稳定性和数据的安全性至关重要。硬盘出现故障可能会导致数据丢失,严重时甚至会使整个系统无…...

Flink cdc同步增量数据timestamp字段相差八小时(分析|解决)不是粘贴复制的!

问题 我使用flink cdc同步mysql到mysql遇到了timestamp字段缺少八小时的问题。很少无语,flink ,cdc,debezium时区都设置了,没有任何效果! 分析 问题出现在mysql binlog身上!!! 因为默认mysql会使用UTC来…...

【docker】9. 镜像操作与实战

镜像操作案例 查找镜像 docker search busybox下载镜像 docker pull busybox:1.36.0查看镜像及列表存储位置 rootLAPTOP-H2EI4I6A:~# docker images busybox REPOSITORY TAG IMAGE ID CREATED SIZE busybox latest 517b897a6a83 2 months a…...

js-显示转换(强制转换)与隐式转换,==与===区别

1.显示转换(强制转换)与隐式转换 1.1显示转换 常见的JavaScript强制转换示例。 (1) 一元加号、一元减号- 值是布尔值,true将被转换为1,false将被转换为0。 let a "123"; let b a; // b的值为123,类型为Nu…...

【通俗理解】步长和学习率在神经网络中是一回事吗?

【通俗理解】步长和学习率在神经网络中是一回事吗? 【核心结论】 步长(Step Size)和学习率(Learning Rate, LR)在神经网络中并不是同一个概念,但它们都关乎模型训练过程中的参数更新。 【通俗解释&#x…...

【PTA】【数据库】【SQL命令】编程题2

数据库SQL命令测试题2 测试题目录 10-1 查询“李琳”老师所授课程的课程名称10-2 查询成绩比所有课程的平均成绩高的学生的学号及成绩10-3 创建带表达式的视图StuView10-4 从视图PerView中查询数据10-5 查询工资高于在“HR”部门工作的所有员工的工资的员工信息10-6 查询选修的…...

Spring Boot林业产品推荐系统:用户指南

摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此林业产品销售信…...

【Conda 】Conda 配置文件详解:优化你的包管理与环境设置

目录 引言一、什么是 .condarc 文件?二、.condarc 文件的详细解析与优化2.1 SSL 验证2.2 设置 Conda 下载源2.3 设置环境和包存储路径2.4 代理服务器设置2.5 连接超时设置2.6 显示频道 URL2.7 包版本与构建选择2.8 环境依赖性管理2.9 禁用默认包版本2.10 Conda 配置…...

win10中使用ffmpeg的filter滤镜

1 给视频加文字水印 1.1 添加播放时间 ffmpeg -i input.mp4 -vf "drawtextfontfileC\\:/Windows/fonts/consola.ttf:fontsize30:fontcolorwhite:timecode00\:00\:00\:00:rate25:textTCR\::boxcolor0x000000AA:box1:x20:y20" -y output.mp4 在视频的x20:y20位置添加t…...

设计模式 外观模式 门面模式

结构性模式-外观模式 门面模式 适用场景:如果你需要一个指向复杂子系统的直接接口, 且该接口的功能有限, 则可以使用外观模式。 不用关心后面的查询具体操作 /*** 聚合查询接口*/ RestController RequestMapping("/search") Slf…...

Prophet时间序列算法总结及python实现案例

目录 一、prophet理论总结二、python导入模块方式三、python实现案例3.1帮助信息3.2 案例 四、参考学习 一、prophet理论总结 prophet模型是facebook开源的一个时间序列预测算法。[1][2],该算法主要为处理具有周期性、趋势变化以及缺失值和异常值的时间序列数据而设…...

远程调用 rpc 、 open feign

在学习黑马 springcloud 视频的时候,看到 open feign 使用, 就是 http 封装。 spring框架三部曲,导入依赖,加配置,使用api。...

Redis的几种持久化方式

Redis 提供了两种主要的持久化方式,它们分别是: 1. RDB(Redis Database Snapshotting) RDB 是 Redis 的一种数据持久化方式,它会在指定的时间间隔内对 Redis 中的数据进行快照并保存到硬盘上。 特点: 触…...

论文笔记(五十九)A survey of robot manipulation in contact

A survey of robot manipulation in contact 文章概括摘要1. 引言解释柔顺性控制的概念:应用实例: 2. 需要接触操控的任务2.1 环境塑造2.2 工件对齐2.3 关节运动2.4 双臂接触操控 3. 接触操控中的控制3.1 力控制3.2 阻抗控制3.3 顺应控制 4. 接触操控中的…...

c#控制台程序26-30

26.寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m11,m2121,m31331皆为回文数。请编制函数实现此功能,如果是回文数&#…...

环形链表系列导学

问题描述 给定一个单链表,可能存在一个环。我们的目标是找到环的入口节点,即从这个节点开始,链表进入循环。如果没有环,则返回 null。 将链表问题转化为数学问题 状态序列与循环 我们可以将链表节点视为状态,每个节点的 next 指针代表状态转移函数 f f f。从头节点开始,我…...

IDEA2024创建一个spingboot项目

以下是创建一个基本的 Spring Boot 项目的步骤和示例: 初始化一个springboot工程其实有许多方法,笔者这里挑了一个最快捷的方式搭建一个项目。我们直接通过官方平台(start.spring.io)进行配置,然后下载压缩包就可以获取…...

Nginx:ssl

目录 部署ssl前提 nginx部署ssl证书 部署ssl部署建议 部署ssl前提 网站有域名根据域名申请到ssl证书,并下载证书部署到nginx中 部署了ssl证书后,访问的流量是加密的。 nginx部署ssl证书 #80端口跳转到443 server {listen 80;return 302 https://1…...

QT配置文件详解

TEMPLATElib TEMPLATE变量用于指定项目模板类型,其值可以是以下几种: app:建立一个应用程序的makefile,这是默认值。lib:建立一个库的makefile。vcapp:建立一个应用程序的Visual Studio项目文件。vclib&a…...

根据合约地址判断合约协议的方法

判断合约协议之前,需要了解一下什么是ERC165协议: ERC165 是以太坊中用于标准化接口检测的协议,由 Fabian Vogelsteller 在 2018 年创建 ,其核心内容主要包括以下方面: 接口定义 单一函数接口:ERC165 协议…...

联想YOGA Pro 14s至尊版电脑找不到独立显卡(N卡)问题,也无法安装驱动的问题

问题描述 电脑是联想YOGA Pro 14s至尊版,电脑上装的独立显卡是4060,一直是能够使用独立显卡的。然而有两次突然就找不到显卡了,NVIDIA CONTROL PANEL也消失了,而且也无法安装驱动。具体表现如下: 无法连接外接显示器…...

Spring Web开发注解和请求(1)

大家好我是小帅,今天我们来学习Spring Web MVC框架(入门级) 文章目录 1. 什么是 Spring Web MVC?1.1 MVC 定义1.2 什么是Spring MVC ? 2. 学习Spring MVC2.1 建⽴连接第一个spring MVC程序 3. web开发注解的解释3.1RestControlle…...

Supervisor使用教程

文章目录 [toc] Supervisor使用教程平台要求 安装supervisor本文测试的时候是使用Linux的yum安装的(其它方式未做测试)加入系统守护进行 Supervisor使用教程 在项目中,经常有脚本需要常驻运行的需求。以PHP脚本为例,最简单的方式…...

Spark基本命令详解

文章目录 Spark基本命令详解一、引言二、Spark Core 基本命令1、Transformations(转换操作)1.1、groupBy(func)1.2、filter(func) 2、Actions(动作操作)2.1、distinct([numTasks])2.2、sortBy(func, [ascending], [numTasks]) 三、…...

汝州网站建设/torrentkitty磁力猫

一、什么是LVM:LVM(Logical Volume Manager)LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层&#xff…...

花都网站开发公司/品牌公关

项目介绍 以智能水务项目管理的实际应用需要出发,架构系统来改善现智能水务项目管理工作流程繁琐等问题。不仅如此以操作者的角度来说,该系统的架构能够对智能水务进行有效的管理。 本系统是利用ssmt框架而设计的一款结合用户的实际情况而设计的平台&am…...

质量好网站建设公司/关键词优化排名的步骤

locale 关于locale的设定 locale 是国际化与本土化过程中的一个非常重要的概念,个人认为,对于中文用户来说,通常会涉及到的国际化或者本土化,大致包含三个方面:看中文,写中文,与 window中文系统…...

南通建设企业网站/2021百度热搜年度榜

在现实生活中每个人去申请贷款,批下来的额度以及利息是不一样的,这样就有许多人觉得郁闷,为什么会每个人的差距这么大。其实,我们应该想一想自己的征信情况,负债情况,工作情况等是否好,是否符合…...

wordpress做招聘网站/长沙企业关键词优化哪家好

测试代码链接 异常过滤器特性: ExceptionFilterAttribute异常过滤器特性:可以在方法执行期间出现异常,被处理掉,有局限性:只有控制器实例化后,方法执行完之前,出现的异常才能被抓住 在WebApiConfig.cs Reg…...

小程序推广网站/百度网络推广怎么收费

中石油校内的比赛&#xff0c;只能后续补题了&#xff0c;题目来说还是比较的不错 A 数方格&#xff08;思维&#xff09; 规定了都是正方形&#xff0c;那么枚举就可以一行的按照规律也好枚举列数也好枚举 代码 #include <bits/stdc.h> using namespace std; int main()…...