StarRocks 助力首汽约车精细化运营
作者:任智红,首汽约车大数据负责人
更多交流,联系我们:https://wx.focussend.com/weComLink/mobileQrCodeLink/334%201%202/ffbe5
导读:
本文整理自首汽约车大数据负责人任智红在 StarRocks 年度峰会上的演讲,介绍了 StarRocks 在公司内部的应用。主要业务场景包括:
运效诊断与干预:实现秒级数据接入和计算,分钟级生成和应用标签,提高了数据处理效率。
供需平衡联动:支持实时计算数百亿数据,确保分钟级联动,提升供需匹配效率。
自助查询与多维分析:查询性能从分钟级延迟提升到秒级,显著降低了数据开发和维护成本。
引入StarRocks的背景
首汽约车公司及业务介绍
首汽约车成立于 2015 年,主营网约车业务,曾为冬奥会、冬残奥会等国家级重点会议提供出行服务。公司最初仅在北京运营,随后逐步扩展至全国。目前,我们的业务已覆盖全国 200 多个城市。
首汽约车专注于特色化业务和差异化运营,服务用户涵盖 To C 和 To B 两大类。我们不仅面向普通消费者,也为商务人士提供高品质出行服务,满足不同用户的需求,包括服务敏感型和价格敏感型群体。
首汽约车数据架构变化
我们的数据架构经历了多个重要发展阶段,与大多数公司类似。最初,我们专注于满足业务报表的数据需求,处于数据基础建设期。随后,我们引入更多组件,进入快速发展期,数据开始反哺业务,发挥赋能作用。
目前,我们通过引入 StarRocks,对底层数据进行了标准化与一致化,进入增效期,充分发挥数据的驱动价值,使其与业务产生更紧密的联动。由于数据架构的发展路径在业内较为相似,这里不再展开详细介绍。
精细化运营带来的挑战
随着业务逐步拓展,开设的城市数量增加,需求来源和种类也变得更加多样,运力来源和总量也在不断扩大。我们进入了精细化运营阶段,这为数据建设和使用带来了许多挑战。首先,更多的角色将参与数据分析过程。其次,数据的视角和维度将更加丰富和细化,这对数据处理和查询提出了更高的要求。此外,数据的时效性要求也更为严格。业务需要更加实时的数据来感知变化并做出快速决策。这种实时联动不仅仅是通过报表展示数据,业务在看到数据后做出相应的动作,更是通过系统化的自动联动,实现智能化调控效果。
引入 StarRocks 的原因
在这样的背景下,经过选型调研后,我们最终选择了引入 StarRocks。选择 StarRocks 不仅因为它的产品特性和优异性能,还因为它与我们首汽约车的数据特点有着完美的契合。例如,我们的数据存在明显的高峰期和低谷期,尤其是在高峰期,相比低谷期,我们的数据量可能会增长十倍以上。与此同时,很多策略主要依赖于高峰期的流量暴增,因此我们对高峰期的性能要求非常高。
另外,我们的数据源和种类也非常丰富,涵盖司机端数据、乘客端数据、第三方数据、通过埋点采集的端上操作数据、业务过程数据以及策略服务日志类数据等。我们的数据处理复杂度也较高,涉及很多实时数据整合的场景,也有很多历史数据的局部更新场景。这些特性完全依赖于 StarRocks 的产品特性和性能优势,能够很好地支撑我们的需求。
StarRocks的基建情况和应用创新
基于StarRocks的实时生态系统
我们按照标准的数据建设规范,依托 StarRocks 构建了一套完整的数据体系,包括明细数据、主题数据以及视图类数据等。目前,这套体系已经广泛应用于我们的多个业务场景中,涉及算法策略、报表工具、自助查询工具以及实时预警工具等。现在,日查询量已经突破百万次,涵盖系统性调用和人工探索性查询,整体查询性能能够控制在秒级别。
除了数据建设本身,我们还借助 StarRocks 强大的兼容性,建立了一系列配套工具。例如,在数据接入方面,我们基于 Flink 构建了分场景的数据接入工具,支持离线数据导入工具,并且具备数据接入效率监控工具。在数据处理过程中,我们有微批调度工具,当数据出现轻微延迟时,能够自动补充数据或回刷。在应用方面,我们有统一查询引擎、配置化预警工具以及数据导出工具等。这些数据建设和配套工具共同构成了一个完整的数据生态体系。
StarRocks 的业务场景
现在,StarRocks 在我们内部的应用贯穿了整个业务的运营生命周期。在我们公司,数据和业务是相互联动、相辅相成的。一方面,业务场景的落地往往会对数据建设提出新的需求。例如,当业务需要实施新的策略时,可能需要相应的数据支持。另一方面,数据能力的提升和突破也会推动业务动作的细化和标准化。例如,最初我们在司机风险管理上主要依赖事后管控手段,但随着实时处理能力的突破和增强,我们已经逐步从事后管控扩展到事前防护和事中拦截。当某些问题有迹象时,我们会通过预警和引导手段进行管理,丰富了对司机的管理手段。
我们的数据理念是通过工具化方式提升数据使用的闭环性和时效性,从而提高数据与业务的协同效率。
场景举例1——运效诊断与干预
第一个场景是运效的诊断与干预。运力是网约车业务的核心运营主体,通常我们对运力的运营目标是提升其运营效率,并管控服务风险。因此,我们需要精准、快速、高效地识别哪些是高效的,哪些是有风险的。
要全面感知和识别运力的各种问题,涉及到多个数据源和多种数据类型,这正是这个场景的主要难点。数据进来后,我们还需要进行复杂的计算,以统计出许多行为并进行标签化。基于这些标签,我们进一步在业务动作上进行联动。整体的查询分析复杂度高,且时效性要求强,这是该场景的另一个挑战。依托 StarRocks 的分布式执行框架、全面向量化的执行引擎等一系列处理能力,我们成功地支撑了这个场景的需求。
在具体的数据处理流程中,首先需要对各种与实际相关的数据进行接入和整合。例如,C端用户的操作行为日志、行为轨迹、基础信息、业务过程中的订单数据以及派单日志等。在这个过程中,依靠 StarRocks 的一些特性,确保了数据处理的效率、一致性和准确性。
在这个处理过程中,部分数据会临时写入 StarRocks,借助其查询能力,使得整体的实时计算更加轻量化。当涉及数据回放时,StarRocks 也能够快速完成。在数据整合后,我们进一步加工生成静态指标和动态指标。例如,司机当前的空闲时长、在冷区的停留时长、异常轨迹点数量以及被订单异常过滤的次数。这些指标会进一步加工,形成各类司机标签,例如冷区停留、挑单、推单等。这些标签会实时联动到相应的业务动作中,进行相应的管理。例如,对于冷区停留的司机,我们可能会通过系统调度将其引导到周围的热区接单,从而提高其运营效率。对于有风险或服务问题的司机,我们会实时联动派单策略,对其派单进行限制或降权,以保障整体的服务质量。
这个场景的实现效果是使我们能够对各种类型和来源的数据进行秒级数据接入和计算,并在分钟级别生成和应用标签。这一切都依赖于 StarRocks 底层优异的特性。此外,由于我们的数据和业务不断扩展,若新增数据源或标签,我们可以按照这套模式高效、灵活地进行开发和落地。
场景举例2——供需平衡联动
第二个场景是供需平衡联动。网约车是一个双边业务,除了供需两侧各自的运营和增长,平衡供需之间的匹配效率和匹配关系也是一个非常重要的线上策略。与上一个场景相比,这个场景的数据来源可能没有那么多,但数据量和维度种类却非常多。如果我们要精准识别供需情况,我们不仅需要当前时刻的实时数据,还需要与实时数据相关的历史数据,因此整体的数据量会非常庞大。
此外,如果要进行精细化调控,随着每个维度的扩展,数据量会暴增。例如,从城市级别的调控细化到商圈和蜂巢级别的调控,单一维度的数据量可能会扩展千倍之多。如果要进行更精细的调控,还需要依赖订单的结构、来源、车型组合等综合维度,这样整体的数据量会大幅膨胀。
数据接入和初步处理后,我们还会关联到相应的业务动作。例如,可能需要对某些区域进行局部调价、进行 PUSH 调度、区域奖励或智能补贴等。这些动作的计算复杂度较高,并且时效性要求非常高,这也是该场景的主要难点之一。依靠 StarRocks 的实时存储能力及其相关的实时处理能力,我们的场景性能得到了很好的保障。
在具体的数据处理过程中,首先我们会整合各类数据,然后将其直接写入需求宽表和运力宽表,这两个表是该场景中的核心基础表。这些表采用主键模型表,确保数据更新计算的效率。在这两个表之上,我们会构建一系列视图,通过这些视图来简化查询并提升计算效率。
在 StarRocks 中,数据的写入和查询是并行进行的。得益于 StarRocks 的高效性能,我们在数据写入的同时还能确保较高的查询性能,从而保障了该场景的正常运作。在需求宽表和视图之上,我们会进行分维度的供需计算。计算结果会帮助我们确定调控范围和对象,判断是进行全程调控还是局部调控,确定是主要调控需求端还是运力端。
这些调控结果有的会作为算法模型的特征输入,直接调用算法模型;有的则会作为规则模型的输入,直接联动到相应的策略中。
最后,联动效果会实时回写到我们的分维度数据中,经过整合和打包,形成分级预警和联动效果提醒。通过钉钉和我们的运营平台,这些结果会传递给业务方,使他们能够感知到效果。整体实现效果是:
-
能够实时计算数百亿的数据,这些数据不仅包括实时数据,还包含与实时数据相关联的历史数据。
-
能够实现分钟级别的监测和联动。我们许多复杂策略已经能够实现分钟级别的联动。例如,我们能够在分钟级别实现大单降价、小单涨价,热区到冷区的需求涨价,以及冷区到热区的需求涨价。可以调整冷区派单半径的扩大,热区派单半径的缩小。整体目标是将高质量订单最大化转化,并将运力留在需求最热的区域。
-
整体的数据处理链路简洁,联动过程不需要借助额外的组件来实现,绝大多数数据直接从 StarRocks 中查询,确保了执行效率和一致性。
场景举例3——自助查询&多维分析
自助多维分析是我们内部非常重要的一个场景,最初我们使用了两种模式来进行数据查询和分析:预计算模式和明细查询模式。
预计算模式:主要通过 Spark 和 Hive 来进行数据的汇总和计算,然后将计算结果生成统计表。由于这种模式是通过空间换时间,能够减少查询时的计算负担。然而,随着业务的快速发展,维度数量的迅速增加,开发和维护成本也随之激增。特别是当我们需要进行历史数据的局部更新时,预计算模式带来了巨大的压力。如果业务进行了调整,比如城市或需求分类的重新调整,预计算模式就需要重新处理大量的数据,导致数据回刷的成本非常高。
明细查询模式:为了应对预计算模式的限制,我们还使用了基于明细查询的模式,这主要依赖 Presto 进行查询。这种模式在维度扩展上更加灵活,能够快速响应多维度查询。但当数据量变得庞大时,查询性能显得有些不足,尤其是在查询量和维度不断增加的情况下,性能瓶颈变得越来越明显。尽管我们尝试通过预计算来优化性能,但随着维度数量的扩展,整体查询性能还是面临了很大的挑战。
依靠我们在 StarRocks 上建立的这些数据体系和相应的一些工具,我们形成了一个全新的自助多维分析模式。
一些数据通过我们的一些主题数据表直接进行查询,一些数据则通过明细表和维度表进行实时校验查询,另外还有一些数据是基于视图进行查询。这种灵活高效的查询方式,满足了不同场景下的多维分析需求,最终实现了性能提升和成本降低的效果。
-
在性能方面,我们从最初的旧模式(分钟级延迟)转变为新模式(秒级查询),查询性能提升了数十倍。
-
在成本方面,数据开发和维护的成本也大幅降低,初步估算节省了至少一半。通过这种优化,数据开发团队可以从低效和重复性的工作中抽离出来,专注于更有价值的探索。
随着查询性能瓶颈的突破,更多的人能够参与到自助分析过程中,这不仅促进了精细化运营的开展,也增强了数据与业务之间的联动,推动了公司数据驱动的业务发展。
成果总结
总结来说,基于我们引入 StarRocks 以及在底层建设上的努力,我们在性能统一、场景拓展和效率提升方面取得了显著突破。特别感谢 StarRocks 的技术团队,他们在模型设计指导、慢查询分析等方面提供了大量专业支持。由于我们的许多业务都涉及线上应用,技术团队在我们需要时能够及时响应和支持,这对我们的项目非常关键。
另外,结合我们数据的特点,StarRocks 能够按需快速迭代,满足我们的一些定制化需求。总结起来,在 StarRocks 强大的产品特性、性能优势以及技术团队的大力支持下,我们在人力相对有限的情况下,实现了基础建设的快速稳步发展,并成功驱动了业务需求的满足。很多以前想做却无法实现的场景现在得以实施,例如对风险司机的实时管控;之前难以做到的高成本场景现在也能以低成本执行,比如我们的自助多维分析工具。
未来规划
首先,在业务层面,我们计划进一步整合后台系统,充分发挥 StarRocks 的性能优势。例如,针对我们对外提供的加盟商 SAAS 平台,以及 C 端和乘客端的数据展示或数据统计,未来这些都可能逐步切换到 StarRocks 平台。
其次,场景方面,我们将持续拓展现有场景,并结合业务发展的需求,构建新的应用场景。例如,目前我们正在与财务团队合作,开发业务成本的实时管控功能。这些场景的扩展需要我们进一步加强数据基础建设,同时对 StarRocks 资源进行投入和扩展。
在架构层面,我们将重点推进存算分离。我们的业务已经积累了大量的离线数据,如何高效地利用这些数据是我们接下来的关键任务。初步设想是在离线数据中引入数据湖组件,并利用 StarRocks 作为统一的查询引擎来提高数据处理效率,同时减少数据在导入和导出过程中的流转成本。存算分离之后,我们也计划提升在高峰期的临时扩容能力,进一步降低成本,提高效率。最终目标是朝着湖仓一体的方向发展。
最后,我们还计划做资源隔离,确保不同业务应用场景的稳定性。由于我们目前的业务场景非常广泛,包括线上应用、报表工具、自助查询等不同场景,这些场景对系统的稳定性要求不同。通过资源隔离,我们可以确保关键应用场景的绝对稳定性。
相关文章:
StarRocks 助力首汽约车精细化运营
作者:任智红,首汽约车大数据负责人 更多交流,联系我们:https://wx.focussend.com/weComLink/mobileQrCodeLink/334%201%202/ffbe5 导读: 本文整理自首汽约车大数据负责人任智红在 StarRocks 年度峰会上的演讲…...
Versatile-OCR-Program:可以从复杂的教育材料(如试卷)中提取结构化数据的开源多模态OCR工具
Versatile-OCR-Program 此 OCR 系统专门设计用于以针对机器学习 (ML) 训练优化的格式从复杂的教育材料(如试卷)中提取结构化数据。它支持多语言文本、数学公式、表格、图表和图表,非常适合创建高质量的训练数据集。 主…...
时序数据库 TDengine Cloud 私有连接实战指南:4步实现数据安全传输与成本优化
小T导读:在物联网和工业互联网场景下,企业对高并发、低延迟的数据处理需求愈发迫切。本文将带你深入了解 TDengineCloud 如何通过全托管服务与私有连接,帮助企业实现更安全、更高效、更低成本的数据采集与传输,从架构解析到实际配…...
vue项目本地调试使用https
由于测试环境远程接口,是采用https协议,为了能正常携带cookie访问接口,需要把本地项目也采用https协议访问。前提是后端的cookie设置在二级域名下,且允许固定其他子域名跨域访问(需要在后端设置) 项目框架…...
【学习笔记】文件上传漏洞--二次渲染、.htaccess、变异免杀
目录 第十二关 远程包含地址转换 第十三关 突破上传删除 条件竞争 第十四关 二次渲染 第十五关 第十六关 第十七关 .htaccess 第十八关 后门免杀 第十九关 日志包含 第十二关 远程包含地址转换 延续第十一关,加一个文件头,上传成功,…...
探秘 MQTT 协议:物联网的 “隐形桥梁”
在当今数字化时代,物联网技术正以前所未有的速度改变着我们的生活。从智能家居到工业自动化,从远程医疗到智能交通,无数设备相互连接、交换信息,构建起一个庞大而复杂的智能世界。而在这背后,有一个关键的 “隐形桥梁”…...
[ctfshow web入门] web24
前置知识 isset:判断这个变量是否声明且不为NULL,否则返回False mt_srand:设置随机数种子,如果不手动设置,那么系统会自动进行一次随机种子的设置 mt_rand:生成一个随机数,这个随机数与种子有个…...
Unity 实现伤害跳字
核心组件: Dotween TextMeshPro 过程轨迹如下图: 代码如下: using System.Collections; using System.Collections.Generic; using DG.Tweening; using TMPro; using UnityEngine; using UnityEngine.Pool;public class …...
在SQLark 中快速生成测试数据
在软件开发与数据库管理过程中,高质量的测试数据是保障系统稳定性和性能优化的关键。然而,手动构造仿真数据不仅耗时耗力,还难以覆盖多样化的测试场景。现在,可以使用 SQLark 的数据生成功能,通过 8大类47子类的数据规…...
Postman接口测试详解
一、为何使用postman postman是一款简单高效的接口测试工具,能够很方便发送接口请求,易于保存接口请求脚本,postman提供接口响应数据比对功能,可以设置预期结果作断言,还能把测试用例放在一个集合中批量执行ÿ…...
[ctfshow web入门] web30
信息收集 题目将flag system php不区分大小写地过滤了 解题 前置知识 print_r:php中用于打印数组 scandir:php中用于获取指点目录下的所以文件目录名 getcwd:获取当前目录 目录获取 这里提供两种方法 print_r(scandir(getcwd())); pri…...
ElasticSearch迁移数据
一、查询索引 1、查询所有索引 curl --user elastic:123456 -XGET "http://localhost:19200/_cat/indices?v&sindex" 2、查询索引配置 以索引名称hello为例 curl --user elastic:123456 -XGET "http://localhost:19200/hello/_settings?pretty" 3…...
ES:账号、索引、ILM
目录 笔记1:账号权限查看、查看账号、创建账号等查看所有用户查看特定用户验证权限修改用户权限删除用户 笔记2:索引状态和内容的查看等查看所有索引查看特定索引内容查看索引映射查看索引设置查看索引统计信息查看ILM策略 笔记1:账号权限查看…...
Spring MVC 逻辑视图(JSP、Thymeleaf、FreeMarker)与非逻辑视图(JSON、Excel、PDF、XML)详解及示例
Spring MVC 逻辑视图与非逻辑视图详解及示例 一、逻辑视图与非逻辑视图的定义 类型定义逻辑视图通过视图解析器(ViewResolver)将逻辑名称(如 success)映射到具体视图实现。非逻辑视图直接返回具体视图对象(如 JsonVie…...
开发体育赛事直播系统:实现聊天交友的私聊功能技术实现全方案解析
基于“东莞梦幻网络科技”体育赛事直播系统,展示前后端技术(PHP ThinkPHP Vue.js Android Java iOS OC)实现的“用户与用户之间私聊”完整方案,包括功能描述、界面效果、技术实现、数据结构、接口设计及关键代码示例。 一、私…...
UTF-8和GBK编码的区别和详细解释
各位看官,大家早安午安晚安呀~~~ 如果您觉得这篇文章对您有帮助的话 欢迎您一键三连,小编尽全力做到更好 欢迎您分享给更多人哦 今天我们来学习:一个小的知识点—UTF-8和GBK编码的解释 1.关于bite位和进制的关系 1 个比特(bit&am…...
java导入excel更新设备经纬度度数或者度分秒
文章目录 一、背景介绍二、页面效果三、代码0.pom.xml1.ImportDevice.vue2.ImportDeviceError.vue3.system.js4.DeviceManageControl5.DeviceManageUserControl6.Repeater7.FileUtils8.ResponseModel9.EnumLongitudeLatitude10.词条 四、注意点本人其他相关文章链接 一、背景介…...
使用python访问mindie部署的vl多模态模型
说明 今天使用mindie1.0部署了qwen2_7b_vl模型,测试过程出现一些问题,这里总结下。 问题1:transformers版本太低 报错信息: [ERROR] [model_deploy_config.cpp:159] Failed to get vocab size from tokenizer wrapper with ex…...
github发布个人中英文简历网站CaoYongshengcys.github.io
在GitHub上创建个人主页(也称为GitHub Pages)是一个展示个人项目、技能和经历的好方法。以下是详细步骤: 1. 创建GitHub账号 • 如果你还没有GitHub账号,先访问GitHub官网注册一个账号。 • 选择一个专业的用户名,因…...
动态规划算法深度解析:0-1背包问题(含完整流程)
简介: 0-1背包问题是经典的组合优化问题:给定一组物品(每个物品有重量和价值),在背包容量限制下选择物品装入背包,要求总价值最大化且每个物品不可重复选取。 动态规划核心思想 通过构建二维状态表dp[i]…...
QML面试笔记--UI设计篇04交互控件
1. QML中常用交互控件 1.1. Button1.2. Slider1.3. ProgressBar1.4. TextField1.5. TextArea1.6. ComboBox1.7. CheckBox1.8. RadioButton1.9. Menu1.10. Dialog 1. QML中常用交互控件 在万物互联的智能时代,QML凭借其声明式语法和跨平台能力,…...
【数学】线性代数(Python)
参考:https://aibydoing.com/notebooks/appendix01-01-linear-algebra-with-python 目录 矩阵的定义矩阵的运算矩阵的属性矩阵的分解矩阵的本质遗留问题 矩阵的定义 通过数组的维度来区分向量(1 维数组)、矩阵(2 维数组࿰…...
ragflow开启https访问:添加证书后,使用浏览器还是有警告,如何解决?
如果在 Windows 系统中安装了 PEM 证书(使用方法一通过证书管理器 MMC 导入),但浏览器仍然提示安全警告,可能有以下几个原因及解决方法: 1. 证书未正确安装到受信任的存储位置 问题:如果证书被导入到错误的存储位置(如“个人”而非“受信任的根证书颁发机构”),浏览器…...
vue.config.js配置代理(输出代理前后的地址)
devServer: {host: 0.0.0.0,port: port,open: true,before(app) {app.use((req, res, next) > {// console.log(原始地址:, req.originalUrl) // 原始地址,如 /api/some-api/xxxxxnext()})},proxy: {[process.env.VUE_APP_BASE_API]: {target: http://192.168.50…...
【八股文】http1.0和1.1的区别
http1.0默认使用短连接,每次请求都需要建立TCP连接(三次握手),响应完成后立即关闭连接,导致资源浪费和延迟增加。 支持通过Connection:Keep-alive 手动开启长连接,但需客户端和服务端显式协商 …...
【Prompt实战】邮件分类专家
本文原创作者:姚瑞南 AI-agent 大模型运营专家,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。(转载需经授权&am…...
K8S核心技术点
Pod,Service和Deployment的关系 Pod:Kubernetes 中最小的部署单元,用于运行容器化应用。 Service:提供服务发现和负载均衡,为 Pod 提供稳定的网络端点,ClusterIP,NodePort,LoadBala…...
Python手写“随机森林”解决鸢尾花数据集分类问题
Python使用“随机森林”解决鸢尾花数据集分类问题 任务描述解题1. 导入必要的库2. 数据采样函数 sample3. 设置随机种子和超参数4. 定义随机森林类 random_forest5. 加载数据集并划分训练集和测试集6. 创建并训练随机森林模型7. 进行预测并计算准确率 代码 任务描述 您的任务是…...
Python 字典和集合(泛映射类型)
本章内容的大纲如下: 常见的字典方法 如何处理查找不到的键 标准库中 dict 类型的变种set 和 frozenset 类型 散列表的工作原理 散列表带来的潜在影响(什么样的数据类型可作为键、不可预知的 顺序,等等) 泛映射类型 collections.…...
CrystalDiskInfo电脑硬盘监控工具 v9.6.0中文绿色便携版
前言 CrystalDiskInfo是一个不用花钱的硬盘小帮手软件,它可以帮你看看你的电脑硬盘工作得怎么样,健不健康。这个软件能显示硬盘的温度高不高、还有多少地方没用、传输东西快不快等等好多信息。用了它,你就能很容易地知道硬盘现在是什么情况&…...
rqlite:一个基于SQLite构建的分布式数据库
今天给大家介绍一个基于 SQLite 构建的轻量级分布式关系型数据库:rqlite。 rqlite 基于 Raft 协议,结合了 SQLite 的简洁性以及高可用分布式系统的稳健性,对开发者友好,操作极其简便,其核心设计理念是以最低的复杂度实…...
网络1 网络设备
计算机网络设备 集线器: 易发生阻塞:所有端口共享一条带宽,两个端口发生传输时,其他端口若想传输数据给这两个端口,需等待这两个端口传输数据完毕。 端口数量限制:10M带宽下可用15口。15口共享10Md带宽 集线…...
mybatis 某些特殊的 ORA-00979:not a GROUP BY expression
打印的日志sql执行都是正常的 但是 就是报ORA-00979: not a GROUP BY expression 可能是 GROUP BY中不能使用动态参数 或特殊方法 使用 硬编码可以解决问题 <if test"statisticsInVo.timeTypeSql!null and statisticsInVo.timeTypeSql yyyy">TO_CHAR(CARD_T…...
基于OpenCV的图像处理程序设计实践
一.安装OpenCV3.x # 安装依赖 sudo apt update sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev# 下载OpenCV源码 git clone https://github.com/opencv/opencv.git -b 3.4 cd opencv mkdir build &…...
DeepSeek 全套汇总资料pdf免费下载(最新更新8篇)
DeepSeek 全套汇总资料pdf目前仍然在持续更新中,今天更新了8篇,合计的汇总都在这里了,有需要的朋友可以直接去下载了。 后续更新请关注文章:DeepSeek 全套汇总资料pdf免费下载(持续更新) _ 潘子夜个人博客…...
前端面试题(六):HTTP和HTTPS的区别以及他们如何保障数据安全
HTTP(HyperText Transfer Protocol)和HTTPS(HyperText Transfer Protocol Secure)都是用于在互联网上传输数据的协议,但它们之间有一个重要的区别:安全性。 1. HTTP(超文本传输协议)…...
Buffer Pool 的核心作用与工作机制
Buffer Pool 的核心作用与工作机制 1. Buffer Pool 是什么? Buffer Pool 是 InnoDB 存储引擎的核心内存区域,用于 缓存磁盘中的数据页。 作用:通过内存缓存减少直接磁盘 I/O,加速数据库的读写操作。默认大小:通常设…...
使用uglifyjs对静态引入的js文件进行压缩
前言 因为有时候js文件没有npm包,或者需要修改,只能引入静态的js,那么这个时候就可以对js进行压缩了。我其实想通过vite、webpack等插件进行压缩的,可是他都不能定位到public目录下面的文件,所以我只能自己压缩了。编…...
Vue 3 的<Teleport>功能与用法
Vue 3 的 <Teleport> 功能与用法 1. 基本用法 <Teleport> 是 Vue 3 的一个内置组件,允许将组件的内容渲染到 DOM 中的任意位置,而不改变其逻辑结构。以下是基本用法: 定义目标 DOM 元素:<div id"teleport-…...
2025 年江苏交安安全员考试:借助本地培训资源提升能力
江苏拥有丰富的教育和培训资源,为交安安全员备考提供了有力支持。考生可关注本地专业培训机构开设的交安安全员培训课程,这些课程往往由经验丰富的讲师授课,他们熟悉本地考试特点和行业实际需求。课程内容不仅涵盖考试大纲的知识点࿰…...
Umi Max 和 Ant Design Pro 的区别
1、前言: Ant Design Pro Umi Max Umi Max 和 Ant Design Pro 其实关系很紧密,但用途不同、定位不同。 我们一起来搞清楚它们的区别、联系、使用场景👇 2、一句话总结 名称作用Umi Max是现代前端框架,用来构建中后台项目&#x…...
《 Scikit-learn与MySQL的深度协同:构建智能数据生态系统的架构哲学》
在机器学习工程实践中,数据存储与模型训练的割裂始终是制约算法效能的关键瓶颈。Scikit-learn作为经典机器学习库,其与MySQL的深度协同并非简单的数据管道连接,而是构建了一个具备自组织能力的智能数据生态系统。这种集成突破了传统ETL流程的…...
无公网实体服务器加装多个操作系统供多个用户互不打扰使用_part1
背景介绍 因笔者业务需求,入手了一个实体服务器,但为了避免出现在一个操作系统中搭建编程环境后有许多相关的进程和服务,拖慢日常的使用,也能让其他人短期使用,更好的利用服务器的性能,让服务器专注于“什…...
C#调用Lua方法1+C#调用Lua方法2,3
xLua中Lua调用C#代码 原因:C#实现的系统,因为Lua可以调用,所以完全可以换成Lua实现,因为Lua可以即时更改,即时运行,所以游戏的代码逻辑就可以随时更改。 实现和C#相同效果的系统,如何实现&#…...
浅层神经网络:从数学原理到实战应用的全面解析
浅层神经网络:从数学原理到实战应用的全面解析 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,可以分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/ccc 一、神经网络演进简史:浅层网络的奠…...
【深度学习:理论篇】--Pytorch基础入门
目录 1.Pytorch--安装 2.Pytorch--张量 3.Pytorch--定义 4.Pytorch--运算 4.1.Tensor数据类型 4.2.Tensor创建 4.3.Tensor运算 4.4.Tensor--Numpy转换 4.5.Tensor--CUDA(GPU) 5.Pytorch--自动微分 (autograd) 5.1.back…...
C++中数组的概念
文章目录 一、数组的定义二、什么是一维数组?2.1 一维数组的声明2.2 一维数组的初始化2.3 一维数组的使用 三、什么是一维数组的数组名?四、一维数组与指针的关系五、数组指针和指针数组的区别5.1 指针数组(array of pointers)5.2…...
996引擎-源码学习:Cocos2d-Lua 的 class(classname, ...)
996引擎-源码学习:Cocos2d-Lua 的 class(classname, ...) 一、核心方法调用顺序用户调用入口完整调用链二、__create 工厂方法的三种情形情形1:父类为函数(自定义工厂)情形2:父类为Cocos原生类情形3:父类为普通Lua表三、方法职责与内存管理对照表四、正确使用示例示例1…...
@linux系统SSL证书转换(Openssl转换PFX)
在Linux中,你可以使用OpenSSL工具将PFX/P12格式的证书转换为单独的CRT(证书)、KEY(私钥)文件以及提取证书链 1. 提取私钥文件(.key) openssl pkcs12 -in your_certificate.pfx -nocerts -out private.key -nodes系统会…...
flask返回json或者中文字符串不要编码
在 Flask 中返回中文字符串时,如果希望浏览器直接显示中文(而非编码后的 Unicode 转义字符如 \uXXXX),需确保以下两点: 正确设置 HTTP 响应的字符集(如 utf-8)。 避免 Flask 默认的 JSON 序列化转义中文字符。 以下是具体实现方法: 方法 1:直接返回纯文本(非 JSON) …...