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

日志服务 SLS 深度解析:拥抱云原生和 AI,基于 SLS 的可观测分析创新

云布道师

10 月 31 日,杭州云栖大会上,日志服务 SLS 研发负责人简志和产品经理孟威等人发表了《日志服务 SLS 深度解析:拥抱云原生和 AI,基于 SLS 的可观测分析创新》的主题演讲,对阿里云日志服务 SLS 产品服务创新以及背后的技术积累进行了深度解读。

日志服务 SLS 是云原生观测与分析平台,为 Log、Metric、Trace 等数据提供大规模、低成本、实时的平台化服务。日志服务一站式提供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能,全面提升您在开发、运维、运营、安全等场景的数字化能力。
在这里插入图片描述

SLS 近一年持续进行技术创新

近期迎来稳定、性能、易用、智能、成本五个方面的全新升级!包括:

  • 稳定可靠:同城冗余存储
  • 高性能:查询分析引擎升级
  • 开放易用:兼容 ES/Kafka,统一易用的 SPL 语法,开箱即用的日志应用
  • AI 加持:智能运维基础模型,自动标注人工辅助微调,Copilot 智能问答
  • 低成本:按写入数据量计费,热存/低频/归档存储规格
    在这里插入图片描述
    稳定可靠
    稳定可靠:同城冗余存储,构建云上同城容灾服务能力
    提供机房级容灾能力:当服务终端或者灾难事件导致某个机房不可用时,仍然能够确保继续提供强一致性的服务能力,可满足关键业务系统对于 RPO=0 的强需求。

更高的 SLA 可用性指标:SLS “同城区域冗余”存储能够提供 99.99% 的 可用性 SLA 指标,相比于“本地冗余存储” 99.9% SLA 指标,具有更高的可用性。

一键开通:SLS “同城区域冗余”能够非常方便的构建云上同城容灾服务能力。用户只需要在创建 Project 时,开启“同城区域冗余”存储属性即可。SLS 采用多副本机制自动将用户的数据分散存放在同城相距数十公里的三个不同的可用区内。
在这里插入图片描述
高性能
高性能:查询分析引擎性能升级,加速 SLS 日志数据分析
通过本次升级,SLS 查询分析引擎显著提升 3 个方面性能:

  • 查询性能提高 2 倍,每秒查询百亿~千亿行日志
  • 分析性能提高 3 倍,每秒处理数十亿行日志
  • 单租户最大并发提升 20 倍,内存使用上限提升 10 倍,QPS 最高至 2000,支持更大规模、更复杂查询

与此同时,还为客户带来 4 个方面的新体验:

  • 易于使用:提供简单易用的 API,可以轻松地进行数据分析,实时获得计算结果;
  • 高性能:基于列存储、向量化计算引擎和内存计算的方式,可秒级处理大量数据的查询分析,支持复杂的 SQL 查询;
  • 可扩展性:基于分布式架构和多租户设计,可以在大规模数据集上运行,支持秒级水平扩展,按需弹性扩展出更多计算资源处理更大规模的数据;
  • 灵活性:基于秒级响应 API,分析结果所见即所得,可不断调整优化 Query,从任意维度探索分析数据,具有很高的灵活性
    在这里插入图片描述
    高性能:时序查询分析引擎升级,百万时间线秒级计算

在开源的 Prometheus 中,对于 PromQL 的计算是完全单机、单协程的,这种方式在一些小型企业场景中较为适用。但当集群变大时,参与计算的时间线会剧烈膨胀,这时单机、单协程的计算完全无法满足需求(通常对于一个几十万的时间线,查询几小时都会有十多秒的延迟)。

为此我们在 PromQL 的计算逻辑上,引入了一层并行计算架构,将大部分的计算量分布到 Worker 节点,Master 节点只做最终的结果聚合,同时计算并发数和 Shard 数解耦,存储和计算都可以独立扩缩容。

此次 SLS 时序查询分析引擎升级,百万时间线秒级计算:

  • 原生支持 PromQL:时序引擎原生适配 PromQL,支持 Prometheus 协议
  • AIOps 函数支持:支持丰富机器学习函数,为时序数据赋予智能计算力
  • 性能升级:更智能的聚合写入、全局 Cache、PromQL 分布式计算、计算下推、内置降采样
    在这里插入图片描述
    开放易用
    开放易用:查询分析引擎性能升级,加速 SLS 日志数据分析
    当您将日志引擎从 Elasticsearch 切换为日志服务时,可能遇到使用习惯以及上下游程序修改问题。为了解决这些问题,日志服务提供了 Elasticsearch 兼容接口,最大程度保障 Elasticsearch 查询分析方案迁移的平滑度,降低将日志引擎从 Elasticsearch 切换为日志服务的使用难度。
    日志服务兼容 Elasticsearch API 和 Elasticsearch DSL(Domain Specific Language)语法。日志服务所提供的Elasticsearch 兼容接口,其兼容机制是将 Elasticsearch DSL 查询翻译为日志服务的索引查询和 SQL 分析查询,并且按照 Elasticsearch 的 API 格式规范返回查询分析结果,从而实现 Elasticsearch 的查询协议的兼容。客户无需进行 Query 改造即可将开源 Elasticsearch 迁移至 SLS 平台。

此外,SLS 开放兼容,支持 ElasticSearch、Kafka、Prometheus、CK 99% 情况下无缝迁移。
在这里插入图片描述
开放易用:日志服务推出功能强大的 SPL 语言,进一步提升日志查询、处理效率

日志服务 SLS 将查询语言升级为 SPL (Search Processing Language):丰富的算子使得弱结构化数据的查询、处理更加简单;支持管道化语法,复杂处理需求也能实现分步求解;使用统一的 SPL 语法,可以玩转日志查询、加工和消费等多项功能。同时,SPL 语言具有如下 5 大优势:

  • 管道式语法:SPL 采用类似 Unix Pipeline
    语法结构设计,用管道符分别连接查询、过滤、抽取、转换等子语句。对于复杂处理需求,通过逐步计算能更容易写出完整语句。在交互式场景下,SPL 语句更易于调试,更便于探索分析。
  • 丰富的算子:SPL 从 SQL 语法中吸收了大量算子,不仅可以用于日志的过滤搜索,还能完成复杂的加工操作,例如正则取值、字段分裂、字段投影、数值计算、编解码等。
  • 弱结构化数据友好:对于每一行中字段不整齐的日志数据,常规的 SQL 语言难以应对特殊场景需要,例如丢弃指å定字段、JSON 提取所有未知
    Key 为一级字段、按字段值分裂成多行等。SPL 提供了日志场景上广泛应用的加工算子,在弱结构化日志处理上具有更高的灵活性、易用性。
  • 适用性广泛:使用统一的 SPL 语言,可以运行在日志服务多个功能上。例如编写一个 SPL 过滤语句,可以用于日志搜索,也可以用于流式消费时过滤下推,并且在数据加工等功能上也将支持 SPL。
  • 性能强劲:统一的 SPL 语言运行在高性能处理引擎上,基准过滤场景达到百 MB/s 的单核计算性能。日志服务以分布式集群提供 Serverless 算力,满足大规模数据实时处理性能需要。

综上所述,日志服务推出统一的 SPL 语言,使得日志这类弱结构化数据的查询、处理可以更加易用、灵活、高效。
在这里插入图片描述
开放易用:全栈可观测,开箱即用的一站式 IT 系统可观测方案

Gartner 报告指出,到 2026 年,成功应用可观测性的企业中,有 70% 的企业将实现更短的决策延迟,从而为目标业务或 IT 流程带来竞争优势。SLS 全新升级全栈可观测应用,提供一站式 IT 系统全链路可观测能力,包括 IT 基础设施监控、全链路 Trace、全链路日志、智能告警等功能,演示如何将 Log、Metric、Trace 等数据进行统一存储和融合分析,并使用 SLS 自动巡检、异常实时通知、根因定位等能力,帮助企业快速定位问题。

  • 全栈数据:融合 Trace、全栈监控、用户体验监控(前端/移动端)、性能监控,提供一站式的可观测数据接入方案
  • 自动关联:自动计算系统的拓扑,并基于数据与实体关联关系实现所有数据和实体的互相关联
  • 统一告警:提供内置的告警和指标巡检,实现统一的事件管理和告警通知
  • 智能化:内置 AIOps 套件,实现对指标、Trace、日志的智能分析,同时提供根因分析、Copilot 等高级功能
    在这里插入图片描述
    日志审计,助力企业 SecOps 云上安全审计

SLS 提供开箱即用的日志审计服务,自动化实现跨多账号日志审计数据采集及集中存储,帮助客户快速搭建安全审计中心。

  • 丰富数据源:自动发现、自动化采集、一键配置 51 种主流产品日志类型
  • 跨账号多实例:支持跨账号、多实例统一审计,提供长期、可靠、无篡改的日志记录与审计的中心化存储
  • 安全合规:内置近百个 CIS、最佳实践等安全场景监控规则,一键式开启,及时发现不合规行为
  • 开放易集成:借助 SLS 查询分析、加工、报表、告警、导出等功能,完整支持审计场景下分析告警对接需求。支持开源、三方 SIEM/SOC 对接
    在这里插入图片描述
    AI 加持
    AI 加持,SLS 智能分析能力全新升级
    日志服务推出运维领域的基础模型,覆盖 Log、Trace、Metric 等可观测数据场景,支持指标的异常检测、文本的分词标注、Trace 请求的高延时分析,模型提供开箱即用的异常检测、自动标注、分类和根因分析等能力。支持秒级在数千请求内定位到根因,在生产中准确率达 95%以上。自动标注人工辅助微调支持人工标注结果打标修正,模型根据人工反馈自动微调,提升场景准确率。

此外,还提供 Alibaba CloudLens Copilot 大模型助力云设施运维与运营。采用基于大语言模型的 NL2Query 技术,精准理解用户的查询意图,提高查询结果准确性;无需理解复杂的 SQL 语言和查询语法,可准确将自然语言查询转化为 SQL 查询和可视化图表;建立场景化的知识图谱,持续学习,不断优化模型调整和知识库更新,不断改进问题解答的准确性和效果。
图片
低成本
全新按写入数据量计费模式,让 SLS 更普惠、更易用
日志服务 SLS 全新推出按写入数据量计费模式,是一种相比按使用功能计费(原计费方式)购买更简单、费用可预期、场景更丰富的计费方式。

按写入数据量计费模式仅收取原始数据(非压缩)写入费用及 30 天后的存储费用(免费 30 天存储权益)以及外网数据读取费用,超过免费存储周期的数据可继续保存至热存储或低频/归档。

相比于原计费方式,按写入数据量计费的具有4大优势:

  • 更省钱:比功能计费更省钱,全索引场景降价高达 32%,增值功能越多降幅越大
  • 更易购买:成本模型简单易懂,基于当前业务数据量即可快速评估成本
  • 成本更可控:控制使用成本仅考虑业务规模,无需担心其他功能增加费用
  • 场景更丰富:仅收取数据写入/存储/读取费用,无需额外费用即可拓展更丰富场景

同时,按写入数据量计费拥有极简计费模式、计费公式更简单。

例如:A 客户每日写入数据量 1GB,数据保存 30 天,按写入数据量计费月目录价=(1GB*30)*0.4元/GB=12元
在这里插入图片描述
新增归档存储,存储成本降幅 86%

除了按写入数据量计费,日志服务 SLS 还全新推出归档存储类型,在现有热存储、低频存储的基础上,为用户提供更低成本且可查询分析的长期数据存储方案。归档存储类型具有3大特性:

  • 优化长期存储成本:归档存储价格仅 0.05 元/GB/月,相比热存储价格降幅可达 86%。
  • 智能存储分层:多类型存储规格可通过生命周期管理功能实现数据自动分层,配置简便,无须编写脚本或手动迁移数据。
  • 实时日志查询分析:归档存储数据可实时访问,无需手动取回或修改应用,无任何取回费用。

通过全新推出的按写入数据量计费和归档存储类型,帮助客户更好的降本增效!
在这里插入图片描述

SLS 深度技术解读

SLS 面临的场景与挑战
面向亿级终端、千万级 DAU 数据,我们需要同时应对各种可观测分析、安全分析、大数据系统和大模型的场景和挑战,SLS 如何满足用户需求并提供面向可观测数据分析平台能力?日志服务 SLS 研发负责人、阿里云资深技术专家简志认为,系统的稳定可靠、弹性+低成本、交互式设计是关键,并从架构、存储、处理引擎和上层的应用支撑能力这四个层次解析了SLS 在技术设计方面如何化解这个问题。
在这里插入图片描述
架构:面向高可用设计
首先,让我们来看一下用户数据的生命周期,从数据的生成到最终进入我们的系统,它需要经历哪些过程。对于可观测性数据,在大语言模型的世界中,整个文本可以被视为一个符号,计算机可以理解这个符号,从而能够理解我们所处的物理世界。然而,在 IT 系统中,我们认为 Log、Metric、Trace 数据是让计算机能够感知 IT 系统的关键要素。只有当这些数据能够完整地进入我们的存储系统,并在整个分析过程中得到使用,机器才能够获得完整的 Picture,这也是通向 AIOps 的必经之路。

从整个系统的角度来看,数据从用户端产生到服务端,可能会经历突发的流量情况。在整个网络中,数据可能会经历机器硬件故障和网络链路传输问题,包括从各个可用区采集数据并将其完整存储的过程。我们还需要面对低概率的不可用事件。为了确保数据链路的完整性,我们通过弹性伸缩、精确 Quota 管理、自动负载均衡和多 AZ 架构设计,以及跨 Region 复制能力来提供服务。此外,SLS 和网络团队合作,通过全球自动加速技术,确保设备和数据无论位于全球哪个区域,都能够安全高效地被采集到系统中。
在这里插入图片描述
在数据采集到系统后,我们面临一个问题。尽管这类遥测数据(Telementry Data)本身的信息量并不大,但通过大数据技术,我们可以将这些数据进行整合,从而获得一个完整的视图。当然,为了存储这些数据,我们必须将存储成本降低到一定程度。在阿里巴巴操作系统中,我们利用了两个重要的模块来实现这一目标,分别是飞天盘古和对象存储(OSS)。通过飞天盘古和 OSS 的灵活、海量和低成本存储服务,我们可以将热数据存储在更易访问的介质上,支持冷热数据介质管理,降低了海量 OpenTelemetry 数据存储的成本。

此外,SLS 还通过行列混合的编码技术,平衡了存储成本和访问效率。它提供了低成本的归档存储,并且能够提供非常高的查询吞吐量(QPS)。在业务突发场景下,单个查询每秒可达到 2000 的 QPS,从而满足高性能数据分析和查询的需求。

存储:面向 Telementry 场景构建
在这里插入图片描述
对于这类数据,我们会面临各种不同的处理需求。无论是生成报表、触发告警,还是在大数据系统针对数据进行订阅和流处理,这些都是面向 Telementry 的常见应用场景。在设计过程中,我们充分考虑了程序员、安全团队、运维团队和运营团队的各种需求,因此,我们将整个能力构建为两个系统引擎,一个是流处理引擎,另一个是批处理引擎。这两个引擎基于阿里巴巴的低成本存储和弹性计算能力,可以根据用户的需求和数据规模进行灵活扩展。

在查询语言方面,SLS 已经统一升级为 SPL 管道式语法,在用户查询过程中,我们可以像 Linux 程序员一样,通过非常传统的 pipeline 线性来满足需求。此外,SLS 还考虑了 BI 分析师的基本需求,并支持使用 SQL 标准数据分析语法。用户只需要熟悉一种语言,就可以将其应用于流场景和批场景,从而使整个分析过程更加容易、从容。

处理:流批场景支持
在这里插入图片描述
SLS 在可观测性场景中具备强大的兼容能力。过去,我们在搭建系统时,常常需要将数据在多个系统之间流动。例如,在远程采集到数据后,我们需要通过 Queue 进行数据加工,然后将清洗后的数据投递到各种查询系统、指标存储系统和数据湖等。在满足安全需求时,研发人员通常需要通过多个接口获取多份数据,并进行一系列复杂的计算,才能得到最终答案,这个过程非常耗时且费力。

而 SLS 的存储模型充分考虑了各种数据访问的需求,无论是顺序访问、随机检索还是批量访问。通过两个接口,即SQL 和 SPL,我们都可以轻松地获取数据。因此,用户使用 SLS 只需要通过一套 API,就能够满足对于 Log、Metric、Trace 数据和 Kafka 数据等所有分析场景的需求。

同时,为了兼容整个生态系统,SLS 与开源进行合作。既支持通过 SLS 的接口访问数据,也可以通过开源 Elasticsearch、Kafka 和 Prometheus 等访问数据。因此,在 SLS 的设计中,只需要存储一份数据,就能够满足所有场景的需求。

支撑:无孤岛,不搬迁(一份数据、多协议)
在这里插入图片描述

小结

阿里云日志服务 SLS 全面拥抱云原生和 AI,近一年持续进行技术创新,此次云栖大会上发布了在稳定可靠、高性能、开放易用、AI 加持、低成本等五个方面的全面升级。深度解读 SLS 的技术积累,面向高可用设计的架构, 针对 Telementry 场景构建的存储,支持流处理和批处理场景的处理引擎,以及一份数据多协议的上层应用支撑。未来,我们还将持续深耕基于 SLS 的可观测分析创新,为用户提供更好的云原生可观测数据分析平台服务。

相关文章:

日志服务 SLS 深度解析:拥抱云原生和 AI,基于 SLS 的可观测分析创新

云布道师 10 月 31 日,杭州云栖大会上,日志服务 SLS 研发负责人简志和产品经理孟威等人发表了《日志服务 SLS 深度解析:拥抱云原生和 AI,基于 SLS 的可观测分析创新》的主题演讲,对阿里云日志服务 SLS 产品服务创新以…...

MinIO客户端之rm

MinIO提供了一个命令行程序mc用于协助用户完成日常的维护、管理类工作。 官方资料 mc rm 删除指定的对象。 准备待删除的对象,查看对象,命令如下: ./mc ls local1/bkt2/控制台的输出,如下: [2023-12-16 01:52:54 …...

【Linux笔记】文件和目录操作

🍎个人博客:个人主页 🏆个人专栏:Linux学习 ⛳️ 功不唐捐,玉汝于成 目录 前言 命令 ls (List): pwd (Print Working Directory): cp (Copy): mv (Move): rm (Remove): 结语 我的其他博客 前言 学习Linux命令…...

Vue-router 中hash模式和history模式的区别

Vue-router 中hash模式和history模式的区别 在通过vue-cli创建项目的时候,出现: 于是,去Google一遍。。 vue-router的model有两种模式:hash模式和history模式。 hash模式和history模式的不同 最直观的区别就是在url中 hash 带了一个很丑的…...

Debian在升级过程中报错

当我们在升级的过程中出现如下报错信息 报错信息如下所示: The following signatures couldnt be verified because the public key is not available: NO_PUBKEY ED444FF07D8D0BF6 W: GPG error: http://mirrors.jevincanders.net/kali kali-rolling InRelease: …...

IOS开发问题记录

1. xcode上传app store connect后testflight没有可构建版本的原因 查看你的邮箱, 里面有原因提示 一般为使用了某些权限, 但是plist没有声明 2. xcode 修改display name后名字并没有改变 原因是并没有修改到plist的CFBundleDisplayName的字段 将CFBundleDisplayName的值修改…...

数据流图_DFD图_精简易上手

数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输人移动到输出的过程中所经受的变换。 首先给出一个数据流图样例 基本的四种图形 直角矩形:代表源点或终点,一般来说,是人,如例图的仓库管理员和采购员圆形(也可以画成圆角矩形):是处理,一般来说,是动作,是动词名词的形式…...

使用 Xcode 创建一个新的项目并运行

启动 Xcode: 打开你的 Mac,然后启动 Xcode。你可以在应用程序文件夹中找到它,或者使用 Spotlight 搜索。 创建新项目: 当 Xcode 启动时,选择 “Create a new Xcode project”(创建一个新的 Xcode 项目)。 在项目模板…...

教师未来前景发展

教师是一个光荣而重要的职业,他们承担着培养下一代的责任和使命。随着社会的不断发展和变化,教师的前景也在不断扩大和改变。本文将探讨教师未来的前景发展,并提供一些思考和建议。 首先,教师的就业前景将继续扩大。随着人口的增长…...

【华为机试】2023年真题B卷(python)-采样过滤

一、题目 题目描述: 在做物理实验时,为了计算物体移动的速率,通过相机等工具周期性的采样物体移动能离。由于工具故障,采样数据存在误差甚至相误的情况。需要通过一个算法过滤掉不正确的采样值,不同工具的故意模式存在…...

编译opencv和opencv_contrib

1 下载源码 下载opencv源码https://github.com/opencv/opencv 下载opencv源码https://github.com/opencv/opencv_contrib 2 开始编译 构建需要下载ffmpeg的包,cmake构建时会自动下载,但是比较满,这里可以从下面链接直接下载 https://downloa…...

每次maven刷新jdk都要重新设置

pom.xml <java.version>17</java.version> 改为<java.version>1.8</java.version>...

《PySpark大数据分析实战》-18.什么是数据分析

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…...

【小白攻略】php 小数转为百分比,保留两位小数的函数

php 小数转为百分比 首先&#xff0c;最简单直观的方法是利用PHP内置的number_format函数。该函数可以对一个数字进行格式化&#xff0c;并可以设置小数点后的精度。通过将小数乘以100&#xff0c;再用number_format函数将结果格式化为百分比形式&#xff0c;即可达到将小数转为…...

electron GPU process isn‘t usable. Goodbye

最近再使用electron的时候总是报错打不开&#xff0c;记录一下这个问题的解决方法&#xff1b; // 再主进程中添加下面的即可 app.commandLine.appendSwitch(no-sandbox);官网看了下&#xff1a;https://www.electronjs.org/zh/docs/latest/api/command-line-switches –no-sa…...

ApsaraMQ Serverless 演进之路,助力企业降本

作者&#xff1a;家泽 ApsaraMQ 与时俱进&#xff0c;砥砺前行 阿里云消息队列从诞生开始&#xff0c;至今已有十余年。今年&#xff0c;阿里云消息产品全面品牌升级为 ApsaraMQ&#xff0c;与时俱进&#xff0c;砥砺前行。 2012 年&#xff0c;RocketMQ 诞生于集团内部&…...

redis 从0到1完整学习 (六):Hash 表数据结构

文章目录 1. 引言2. redis 源码下载3. dict 数据结构4. 哈希表扩容与 rehash5. 参考 1. 引言 前情提要&#xff1a; 《redis 从0到1完整学习 &#xff08;一&#xff09;&#xff1a;安装&初识 redis》 《redis 从0到1完整学习 &#xff08;二&#xff09;&#xff1a;red…...

阿里云江苏省中小企业补贴5000元上云补贴金

阿里云「数智惠企」中小企业补贴&#xff0c;江苏区域企业提交申请内部评估及审批通过后&#xff0c;即可获取上云补贴金&#xff0c;使用补贴金购买指定云产品&#xff0c;满10000元即可立减5000元&#xff0c;请抓紧申领。阿里云百科 aliyunbaike.com 分享江苏区域5000元上云…...

PID算法

内容导航 类别内容导航机器学习机器学习算法应用场景与评价指标机器学习算法—分类机器学习算法—回归机器学习算法—聚类机器学习算法—异常检测机器学习算法—时间序列数据可视化数据可视化—折线图数据可视化—箱线图数据可视化—柱状图数据可视化—饼图、环形图、雷达图统…...

Linux bridge开启hairpin模拟测试macvlan vepa模式

看到网上介绍可以通过Linux bridge 开启hairpin方式测试macvlan vepa模式&#xff0c;但是没有找到详细资料。我尝试测试总提示错误信息&#xff0c;无法实现&#xff0c;经过几天的研究&#xff0c;我总算实现模拟测试&#xff0c;记录如下&#xff1a; 参考 1.Linux Macvla…...

连续执行函数和alert与focus死循环事件

1.innerText value的值会根据输入的改变而改变DOM树&#xff0c;但是innerHTML和innerText有一种效果就是赋值的时候是标签下所有替代了&#xff0c;但是取值的时候还是html文件下&#xff0c;标签下的所有。如果赋值就是标签子都被这个代替。内部变量就是这个&#xff0c;没赋…...

向量投影:如何将一个向量投影到矩阵的行向量生成子空间?

向量投影&#xff1a;如何将一个向量投影到矩阵的行向量生成子空间&#xff1f; 前言 本问题是在学习Rosen梯度投影优化方法的时候遇到的问题&#xff0c;主要是对于正交投影矩阵(NT(NNT)-1N)的不理解&#xff0c;因此经过查阅资料&#xff0c;学习了关于向量投影的知识&…...

Ubuntu18.04安装GTSAM库(亲测可用)

在SLAM&#xff08;Simultaneous Localization and Mapping&#xff09;和SFM&#xff08;Structure from Motion&#xff09;这些复杂的估计问题中&#xff0c;因子图算法以其高效和灵活性而脱颖而出&#xff0c;成为图模型领域的核心技术。GTSAM&#xff08;Georgia Tech Smo…...

SpringBoot中常见配置配置,MySQL、Redis、MinIO等

SpringBoot中配置 启动端口号 server:port: 8501 spring:application:name: server-managerprofiles:active: dev # 当前使用的配置文件servlet:multipart:max-file-size: 20MB # 最大文件max-request-size: 20MB# # 最大请求数据库相关 MySQL spring:datasource:type: com…...

面向LLM的App架构——技术维度

这是两篇面向LLM的大前端架构的第二篇&#xff0c;主要写我对LLM辅助开发能力的认知以及由此推演出的适合LLM辅助开发的技术架构。 LLM之于代码 商业代码对质量的要求其实对LLM是有点高的。主要是输入准确度、输出准确度&#xff08;这个是绝大部分人质疑的点&#xff09;、知…...

ArkUI - 状态管理

目录 一、State装饰器 二、自定义组件 三、Prop和Link、Provide和Consume 四、Observed和ObjectLink 一、State装饰器 这里涉及到两个概念 状态 和 视图 状态&#xff08;State&#xff09;&#xff1a;指驱动视图更新的数据&#xff08;就是被State注解标记的变量&…...

C++ 学习系列 -- C++ 中的多态行为

一 多态是什么&#xff1f; 多态是面向对象三大特征中重要一项&#xff0c;另外两项分别是封装与继承。 所谓多态&#xff0c;指的是多种不同的形态&#xff0c;也就是去完成某个具体的行为&#xff0c;多个不同的对象去操作同一个函数时&#xff0c;会产生不同的行为&…...

Spring Cloud中实现Feign声明式服务调用客户端

可以通过OpenFeign从一个服务中调用另一个服务&#xff0c;我们一般采用的方式就是定义一个Feign接口并使用FeignClient注解来进行标注&#xff0c;feign会默认为我们创建的接口生成一个代理对象。 当我们在代码中调用Feign接口的方法的时候&#xff0c;实际上就是在调用我们Fe…...

【网络编程】网络通信基础——简述TCP/IP协议

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 一、ip地…...

观察者模式 Observer

观察者模式属于行为型模式。在程序设计中&#xff0c;观察者模式通常由两个对象组成&#xff1a;观察者和被观察者。当被观察者状态发生改变时&#xff0c;它会通知所有的观察者对象&#xff0c;使他们能够及时做出响应。 三要素&#xff1a;观察者&#xff08;Observer&#…...

Hadoop入门学习笔记——七、Hive语法

视频课程地址&#xff1a;https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接&#xff1a;https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 Hadoop入门学习笔记&#xff08;汇总&#xff09; 目录 七、Hive语法7.1. 数据库相关操作7.1.1. 创建数据库7.1.2…...

采用SpringBoot框架+原生HTML、JS前后端分离模式开发和部署的电子病历编辑器源码(电子病历评级4级)

概述&#xff1a; 电子病历是指医务人员在医疗活动过程中,使用医疗机构信息系统生成的文字、符号、图表、图形、数据、影像等数字化信息,并能实现存储、管理、传输和重现的医疗记录,是病历的一种记录形式。 医院通过电子病历以电子化方式记录患者就诊的信息&#xff0c;包括&…...

HTML表单

<!DOCTYPE html> <html><head><meta charset"utf-8"><title>招聘案列</title></head><body><h1>午睡操场传来蝉的声音</h1><hr /><form>昵称&#xff1a;<input type"text" …...

Http 请求体和响应体中重要的字段

Http 请求体 Accept&#xff1a;用于告诉服务器客户端能够处理哪些媒体类型。Accept 头中的值通常是一个或多个 MIME 类型&#xff0c;并按优先级排序。服务器会根据 Accept 头中的值来决定响应的内容类型。例如&#xff0c;Accept: text/plain, text/html。Content-Type&…...

最新国内可用使用GPT4.0,GPT语音对话,Midjourney绘画,DALL-E3文生图

一、前言 ChatGPT3.5、GPT4.0、GPT语音对话、Midjourney绘画&#xff0c;相信对大家应该不感到陌生吧&#xff1f;简单来说&#xff0c;GPT-4技术比之前的GPT-3.5相对来说更加智能&#xff0c;会根据用户的要求生成多种内容甚至也可以和用户进行创作交流。 然而&#xff0c;GP…...

【量化金融】证券投资学

韭菜的自我修养 第一章&#xff1a; 基本框架和概念1.1 大盘底部形成的技术条件1.2 牛市与熊市1.3 交易系统1.3.1 树懒型交易系统1.3.2 止损止损的4个技术 第二章&#xff1a;证券家族4兄弟2.1 债券&#xff08;1&#xff09;债券&#xff0c;是伟大的创新&#xff08;2&#x…...

【Bash】重点总结

文章目录 1. 总体认识1.1. Shell概述1.2. 第一个Shell脚本 2. 变量2.1. 定义变量2.2. 使用变量2.3. 只读变量2.4. 删除变量2.5. 变量类型2.5.1. 字符串变量 1. 总体认识 1.1. Shell概述 Shell是一个用C语言编写的程序&#xff0c;这个程序提供了一个界面&#xff0c;用户通过…...

Git安装和使用教程,并以gitee为例实现远程连接远程仓库

文章目录 1、Git简介及安装2、使用方法2.1、Git的启动与配置2.2、基本操作2.2.1、搭建自己的workspace2.2.2、git add2.2.3、git commit2.2.4、忽略某些文件不予提交2.2.5、以gitee为例实现git连接gitee远程仓库来托管代码 1、Git简介及安装 版本控制&#xff08;Revision cont…...

Hadoop入门学习笔记——一、VMware准备Linux虚拟机

视频课程地址&#xff1a;https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接&#xff1a;https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 Hadoop入门学习笔记&#xff08;汇总&#xff09; 目录 一、VMware准备Linux虚拟机1.1. VMware安装Linux虚拟机1.…...

CSS3新增特性

CSS3 CSS3私有前缀 W3C 标准所提出的某个CSS 特性&#xff0c;在被浏览器正式支持之前&#xff0c;浏览器厂商会根据浏览器的内核&#xff0c;使用私有前缀来测试该 CSS 特性&#xff0c;在浏览器正式支持该 CSS 特性后&#xff0c;就不需要私有前缀了。 查询 CSS3 兼容性的网…...

Unity中Shader观察空间推导

文章目录 前言一、本地空间怎么转化到观察空间二、怎么得到观察空间的基向量1、Z轴向量2、假设 观察空间的 Y~假设~ (0,1,0)3、X Y 与 Z 的叉积4、Y X 与 Z 的叉积 三、求 [V~world~]^T^1、求V~world~2、求[V~world~]^T^ 四、求出最后在Unity中使用的公式1、偏移坐标轴2、把…...

信息学奥赛一本通2034:【例5.1】反序输出

2034&#xff1a;【例5.1】反序输出 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 79280 通过数: 35643 【题目描述】 输入nn个数,要求程序按输入时的逆序把这nn个数打印出来&#xff0c;已知整数不超过100100个。也就是说&#xff0c;按输入相反顺序打印这nn个…...

使用教程之【SkyWant.[2304]】路由器操作系统,破解移动【Netkeeper】校园网【小白篇】

许多高校目前饱受Netkeeper认证的痛苦&#xff0c;普通路由器无法使用&#xff0c; 教你利用SkyWant的Netkeeper认证软件来使你的SkyWant路由器顺利认证上网&#xff0c;全宿舍又可以合作共赢了&#xff01; 步骤一&#xff1a;正确连接网线&#xff0c;插电开机 正确连接网…...

模式识别与机器学习(十):梯度提升树

1.原理 提升方法实际采用加法模型&#xff08;即基函数的线性组合&#xff09;与前向分步算法。以决策树为基函数的提升方法称为提升树&#xff08;boosting tree&#xff09;。对分类问题决策树是二叉分类树&#xff0c;对回归问题决策树是二叉回归树。提升树模型可以表示为决…...

《剑指offer》Java版--12.矩阵中的路径(DFS+剪枝)

剑指offer原题:矩阵中的路径 请设计一个函数&#xff0c;用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始&#xff0c;每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格&#xff0c;那么该路径不能再…...

AI智能体的介绍

最近几个月 随着大语言模型的持续火爆 利用大模型来构建AI智能体的研究呢 也陆续进入了人们的视野 AI智能体这个概念呢 也逐渐的流行开来 先是斯坦福大学谷歌的研究者们 成功的构建了一个虚拟小镇 小镇上的居民呢不再是人 而是25个AI的智能体 他们的行为呢 比人类角…...

Java设计模式-单例模式(Singleton)

Java中实现单例模式有几种不同的方式,每种方式都有其特点和适用场景。下面是两种常用的实现方式:懒汉式和饿汉式。 懒汉式(线程安全) 懒汉式单例是指在第一次被引用时才会创建实例。为了确保线程安全,可以使用同步方法或同步块。 public class SingletonLazy {private sta…...

若依vue如何展示一个HTML页面(或者展示Markdown文档)

一. 前言 ⚠ 本文是展示Markdown的方法,不能直接前端编辑Markdown文档. 二. 准备部分 用Typora编辑器打开需要导出html页面,我这里使用Typora来导出 1. 先将md文件导出成html 2. 将导出好的文件放在若依vue的pubilc下(文件可以是中文) 三. 代码部分 1.使用v-html来展示HT…...

优化for循环(js的问题)

性能优化 var array [];for (let index 0; index < array.length; index) {// do something }// 优化后 for (let index 0, len array.length; index < len; index) {// do something } 算法优化 // 求和&#xff1a;1 2 3 4 ... 100 var sum 0; for (let i …...

如何更好的去理解源码

前言 这篇文章我准备来聊一聊如何去阅读开源项目的源码。 在聊如何去阅读源码之前&#xff0c;先来简单说一下为什么要去阅读源码&#xff0c;大致可分为以下几点原因&#xff1a; 最直接的原因&#xff0c;就是面试需要&#xff0c;面试喜欢问源码&#xff0c;读完源码才可以…...