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

通过启用Ranger插件的Hive审计日志同步到Doris做分析

以下是基于Apache Doris的Ranger Hive审计日志同步方案详细步骤,结合审计日志插件与数据导入策略实现:


一、Doris环境准备

1. 创建审计日志库表

参考搜索结果的表结构设计,根据Ranger日志字段调整建表语句:

CREATE DATABASE IF NOT EXISTS ranger_audit;CREATE TABLE IF NOT EXISTS ranger_audit_hive_log (repoType INT COMMENT '仓库类型标识',repo VARCHAR(50) COMMENT '目标仓库名称',reqUser VARCHAR(50) COMMENT '请求用户',evtTime DATETIMEV2(3) COMMENT '事件时间(毫秒精度)',access VARCHAR(20) COMMENT '操作类型',resource VARCHAR(255) COMMENT '资源路径',resType VARCHAR(20) COMMENT '资源类型',action VARCHAR(20) COMMENT '具体动作',result TINYINT COMMENT '执行结果(0失败/1成功)',agent VARCHAR(50) COMMENT '代理服务类型',policy INT COMMENT '策略ID',enforcer VARCHAR(50) COMMENT '策略执行组件',sess VARCHAR(36) COMMENT '会话ID(UUID)',cliType VARCHAR(20) COMMENT '客户端类型',cliIP ipv4 COMMENT '客户端IP',reqData TEXT COMMENT '原始请求数据',agentHost VARCHAR(50) COMMENT '代理主机名',logType VARCHAR(20) DEFAULT 'RangerAudit' COMMENT '日志类型',id VARCHAR(50) COMMENT '唯一事件ID',seq_num INT COMMENT '序列号',event_count INT COMMENT '事件计数',event_dur_ms INT COMMENT '事件持续时间(ms)',tags ARRAY<VARCHAR(50)> COMMENT '标签数组',additional_info VARCHAR(500) COMMENT '扩展信息(结构化数据)',cluster_name VARCHAR(50) COMMENT '集群名称',policy_version INT COMMENT '策略版本'
)
ENGINE=OLAP
DUPLICATE KEY(repoType,repo,reqUser,evtTime)
COMMENT 'Ranger审计Hive日志存储表'
PARTITION BY RANGE(evtTime)()
DISTRIBUTED BY HASH(id) BUCKETS auto
PROPERTIES ("replication_num" = "3","dynamic_partition.enable" = "true","dynamic_partition.create_history_partition" = "true","dynamic_partition.time_unit" = "DAY","dynamic_partition.start" = "-180","dynamic_partition.end" = "7","dynamic_partition.prefix" = "p","dynamic_partition.buckets" = "8"
);

2. 启用审计日志插件

在Doris FE节点部署审计日志插件:

# 解压插件到FE插件目录
unzip auditloader.zip -d /opt/doris/fe/plugins/audit/
# 修改plugin.conf配置Ranger日志源
frontend_host_port = 192.168.1.101:8030  # Doris FE地址
database = ranger_audit
audit_log_table = log_main
user = sync_user  # 有写入权限的账户

三、日志传输与加载

1. Broker Load定时导入

创建每日定时任务加载HDFS上的审计日志:

LOAD LABEL broker_load_test_user111
(DATA INFILE("hdfs://ns01/ranger/audit/hiveServer2/20250318/hiveServer2_ranger_audit.log")INTO TABLE ranger_audit_hive_logFORMAT AS "json"
)
WITH HDFS
("fs.defaultFS" = "hdfs://ns01","hadoop.security.authentication" = "kerberos","hadoop.kerberos.principal" = "user01@HADOOP.COM","hadoop.kerberos.keytab" = "/etc/security/keytabs/user01.keytab","dfs.nameservices" = "ns01","dfs.ha.namenodes.ns01" = "nn1,nn2","dfs.namenode.rpc-address.ns01.nn1" = "192.168.1.101:8020","dfs.namenode.rpc-address.ns01.nn2" = "192.168.1.102:8020","dfs.client.failover.proxy.provider.ns01" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider","hadoop.security.auth_to_local" = "RULE:[1:$1@$0](^.*@.*$)s/^(.*)@.*$/$1/gRULE:[2:$1@$0](^.*@.*$)s/^(.*)@.*$/$1/gDEFAULT"
)
PROPERTIES
("timeout" = "14400","max_filter_ratio" = "0.1","exec_mem_limit" = "2147483648","strict_mode" = "false","timezone" = "Asia/Shanghai","load_parallelism" = "1","send_batch_parallelism" = "1","load_to_single_tablet" = "false","priority" = "NORMAL"
)
COMMENT "备注、注释";

2. 脏数据处理

# 我这里additional_info 字段中不是一个正确的json串,所以建表类型用的是varchar
报错一:Reason: no partition for this tuple. tuple=
数据写入时,没有对应的分区报错二:Reason: column(additional_info) value is incorrect while strict mode is true, src value is
additional_info类型设置为varchar

四、运维监控与优化

  1. 数据质量校验
    -- 检查数据完整性,1000根据自身实际的审计日志数量调整
    SELECT DATE(evtTime) AS day, COUNT(*) FROM ranger_audit_hive_log
    GROUP BY day HAVING COUNT(*) < 1000;  # 阈值告警
    
  2. 查询加速
    为核心字段添加索引:
    ALTER TABLE log_main ADD INDEX idx_action (action) USING BITMAP;
    

五、安全加固

  1. 权限隔离
    按角色控制访问权限:

    -- 创建只读角色
    CREATE ROLE audit_viewer;
    GRANT Select_priv ON audit_log.* TO audit_viewer;
    
  2. 敏感字段脱敏
    通过Ranger策略对reqData字段动态脱敏:

    -- 在Ranger中配置策略
    Mask类型: Partial mask show last 4
    生效字段: reqData中的手机号(如`1*******5678`

六、故障处理指南

  1. 常见问题排查
    数据延迟:检查Broker Load任务状态 SHOW LOAD WHERE LABEL LIKE 'ranger%';
    格式错误:使用curl -X GET http://fe_host:8030/api/_load_error_log?file=__ranger_audit_log获取错误详情
    权限拒绝:验证用户权限 SHOW GRANTS FOR sync_user;

  2. 日志清理策略

    -- 调整保留周期为90天
    ALTER TABLE log_main SET ("dynamic_partition.start" = "-90");
    

通过以上步骤可实现Ranger审计日志从采集、传输到分析的全链路管理。实际部署时需根据集群规模调整分桶数和并发参数,并定期检查存储策略有效性。

相关文章:

通过启用Ranger插件的Hive审计日志同步到Doris做分析

以下是基于Apache Doris的Ranger Hive审计日志同步方案详细步骤&#xff0c;结合审计日志插件与数据导入策略实现&#xff1a; 一、Doris环境准备 1. 创建审计日志库表 参考搜索结果的表结构设计&#xff0c;根据Ranger日志字段调整建表语句&#xff1a; CREATE DATABASE IF…...

Node.js框架Express、Koa、Koa2、Egg 和 NestJS 的对比分析

以下是 Express、Koa、Koa2、Egg 和 NestJS 的对比分析&#xff0c;从多个维度梳理它们的区别和适用场景&#xff1a; 1. 历史背景与定位 框架背景与定位ExpressNode.js 早期框架&#xff0c;灵活轻量&#xff0c;生态丰富&#xff0c;适合快速开发简单应用。KoaExpress 原班团…...

蓝桥杯--冲刺题单--随时更新

冲刺题单 感谢up主溶金落梧桐&#xff08;uid:40733116&#xff09;&#xff0c;我是看了他的视频后总结的。 简单模拟&#xff08;循环数组日期进制&#xff09; 1.蓝桥19723–分布式队列 package datasimulation;import java.util.Scanner;public class Test3 {//计算数组…...

新一代电子数据取证专家 | 苏州龙信信息科技有限公司

本文关键词&#xff1a;电子取证、手机取证、计算机取证、云取证 关于我们About us 苏州龙信信息科技有限公司专注于电子数据取证、大数据、信息安全等领域&#xff0c;核心业务主要涵盖取证工具研发、大数据融合分析、案件技术支持、取证能力培训等&#xff0c;先后为执法部门…...

SSRF 攻击与防御:从原理到落地实践

1. 什么是 SSRF&#xff1f; SSRF&#xff08;Server-Side Request Forgery&#xff09; 是一种常见的Web安全漏洞。当服务器提供了某种对外请求的功能&#xff0c;如“URL 参数直接转发请求”&#xff0c;攻击者就可以通过精心构造的URL&#xff0c;让服务器“自己”去访问特…...

socks 协议介绍

SOCKS协议详解 一、基本定义与核心功能 SOCKS&#xff08;Socket Secure&#xff09;是一种网络传输协议&#xff0c;主要用于通过代理服务器转发客户端与目标服务器之间的通信请求。其核心功能包括隐藏用户真实IP地址、穿透防火墙限制以及支持多种网络协议&#xff08;如TCP…...

不使用负压电源,ADC如何测量正负压?

电路图来自ZLinear的开源数据采集板卡DL8884_RFN&#xff0c;是一个比较常见的电压偏置采集法 对电路进行分析&#xff0c;所以说可以先看下采集卡的模拟输入部分的参数如下&#xff1a; 通道数量: 8通道单端输入/4通道差分输入 分辨率: 16位逐次逼近型(SAR) ADC 采样速率: 40…...

服务的拆分数据的迁移

参考&#xff1a; 数据迁移调研...

强推 Maven多镜像源快速切换工具,GUI操作超便捷

引言 在开发过程中&#xff0c;配置Maven的settings.xml文件以优化依赖下载速度是一个常见的需求。然而&#xff0c;手动编辑XML文件不仅繁琐&#xff0c;还容易出错。本文将介绍如何使用Python和Tkinter构建一个图形界面工具&#xff0c;帮助开发者快速、安全地切换Maven镜像…...

Qt6.8实现麦克风音频输入音频采集保存wav文件

一.本文目的 实现在Qt中接收麦克风数据并保存为WAV文件,使用QAudioInput来录音,并使用QFile来保存数据到WAV文件。 开发环境:QT6.8 本文用极简代码实现,核心代码只需不到100行。 二.代码实现...

自动驾驶AEB误触发率评估的必要测试里程估计

文章目录 一 问题背景与行业挑战二 数学建模框架2.1 基础假设2.2 贝叶斯推断流程先验分布选择: 使用 Γ \Gamma Γ分布作为 λ \lambda λ的共轭先验参数 α 0 \alpha_0 α0​和 β 0 \beta_0 β0​的工程物理意义可靠性判断条件 三 数值求解方法1. 无信息先验场景 ( α 0 1 ,…...

python3 -m http.sever 8080加载不了解决办法

解决方法很多,本文设置各种处理方法,逻辑上需要根据你的自身情况选择 我会告诉你遇到这种问题怎么做,根据具体症状处理 如需转载,标记出处 背景: 1。如图 2.。域名访问不了 http://www.meiduo.site:8080/register.html 上面的域名访问不了,下面的倒是正常 http://127…...

BYU-YOLO数据格式准备

BYU - Locating Bacterial Flagellar Motors 2025(在3D断层扫描图像中定位细菌鞭毛马达) 一、数据介绍 1.竞赛介绍 在本次竞赛中,您的任务是在3D断层扫描图像中找到鞭毛马达的中心位置。断层扫描图像是物体的三维体积表示。每个断层扫描图像作为一个独立的目录提供,其中…...

java NIO中的FileSystems工具类可以读取本地文件系统,ZIP/JAR等,无需解压处理,还可以复制文件

在Java NIO&#xff08;java.nio.file包&#xff09;中&#xff0c;FileSystems 是一个工具类&#xff0c;用于操作和管理文件系统。它提供了静态方法来获取或创建文件系统实例&#xff0c;并支持自定义文件系统实现。以下是其核心功能和用法&#xff1a; 1. 核心功能 (1) 获取…...

群体智能优化算法-模拟退火优化算法(Simulated Annealing, SA,含Matlab源代码)

摘要 模拟退火&#xff08;SA&#xff09;算法是一种基于物理退火过程的全局优化算法&#xff0c;其核心思想来源于热力学中的退火过程&#xff1a;将材料加热到高温后再缓慢冷却&#xff0c;使其分子结构趋于最低能量状态&#xff0c;从而获得稳定结构。SA 算法利用 Metropol…...

knowledge-微前端(多个前端应用聚合的一个应用架构体系,每个小的应用可独立运行,独立开发,独立部署上线)

1.前言 微前端&#xff0c;将一个大的前端应用拆分为多个小型的&#xff0c;独立开发的前端应用&#xff0c;每一个小型的应用都可以单独的开发&#xff0c;部署和运行。这种结构允许不同的团队使用不同的技术栈来开发应用的不同部分&#xff0c;提高开发的效率与灵活性。 2.实…...

目标检测中归一化的目的?

在目标检测任务中,归一化坐标和尺寸时需要除以图像的宽度和高度,主要有以下几个原因: 1. 统一尺度 不同图像可能具有不同的宽度和高度。通过将坐标和尺寸除以图像的宽度和高度,可以将所有图像的标注信息统一到相同的尺度范围([0, 1])。这使得模型在训练和推理时能够处理…...

HarmonyOs- UIAbility应用上下文

上下文为何物 上下文在计算机科学领域是一个广泛存在的概念。是现代操作系统核心抽象概念之一。其本质是环境信息的结构化封装。 有过开发经验的都知道&#xff0c;当我们在一个系统上进行开发的时候&#xff0c;无论是Android&#xff0c;HarmonyOs&#xff0c;Linux 等等&a…...

鸿蒙开发真机调试:无线调试和USB调试

前言 在鸿蒙开发的旅程中&#xff0c;真机调试堪称至关重要的环节&#xff0c;其意义不容小觑。虽说模拟器能够为我们提供初步的测试环境&#xff0c;方便我们在开发过程中快速预览应用的基本效果&#xff0c;但它与真机环境相比&#xff0c;仍存在诸多差异。就好比在模拟器中…...

【门店租金指定日期区间计算】

目录 一、背景&#xff08;一&#xff09;业务场景&#xff08;二&#xff09;相关数据支撑 二、计算方法统一封装&#xff08;一&#xff09;门店租金数据表格逻辑&#xff08;二&#xff09;业务逻辑详细解释&#xff08;三&#xff09;具体代码 一、背景 &#xff08;一&am…...

Dify:开源大模型应用开发平台全解析

从部署到实践&#xff0c;打造你的AI工作流 一、项目简介 Dify 是一款面向开发者和企业的开源大语言模型&#xff08;LLM&#xff09;应用开发平台&#xff0c;旨在降低AI应用开发门槛&#xff0c;让用户通过可视化界面快速构建、管理和部署基于大模型的智能应用。其名称寓意“…...

使用DDR4控制器实现多通道数据读写(四)

在创建完DDR4的仿真模型后&#xff0c;我们为了实现异步时钟的读写&#xff0c;板卡中在PL端提供了一组差分时钟&#xff0c;可以用它通过vivado中的Clock Wizard IP核生成多个时钟&#xff0c;在这里生成两个输出时钟&#xff0c;分别作为用户的读写时钟&#xff0c;这样就可以…...

BFS--------N叉树的层序遍历

429. N 叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 1.题目解析 给定一个 N 叉树&#xff0c;返回其节点值的层序遍历。&#xff08;即从左到右&#xff0c;逐层遍历&#xff09;。 树的序列化输入是用层序遍历&#xff0c;每组子节点都由 null 值分隔&#xff08…...

蓝桥杯备考----小贪心+分类讨论问题---Popsicle

这道题有点小贪心的意思&#xff0c;小老鼠每次都想阻碍小猫最多&#xff0c;老鼠每次阻碍猫的话&#xff0c;可能是把0变成9 也可能是把1变成9&#xff0c;再有可能把2变成9&#xff0c;把3变成9&#xff0c;小老鼠的贪心就是尽可能更多的阻碍小猫拿冰棍&#xff0c;所以小老…...

强大的AI网站推荐(第一集)—— Devv AI

网站&#xff1a;Devv AI 号称&#xff1a;最懂程序员的新一代 AI 搜索引擎 博主评价&#xff1a;我的大学所有的代码都是使用它&#xff0c;极大地提升了我的学习和开发效率。 推荐指数&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x…...

【问题解决】Postman 测试报错 406

现象 Tomcat 日志 org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.logException Resolved org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation HTTP状态 406 - 不可接收 的报错&#xff0c;核心原因 客…...

互联网it常用抓包工具说明

一、引言 在互联网 IT 领域&#xff0c;无论是网络故障排查、安全检测&#xff0c;还是开发调试&#xff0c;抓包工具都发挥着举足轻重的作用。 当网络出现故障&#xff0c;比如网页加载缓慢、应用无法连接服务器时&#xff0c;抓包工具可以帮助我们捕获网络数据包&#xff0…...

RS485总线加终端电阻可能存在的问题

目录 1、降低驱动信号幅值 2、增大通信线压降 3、增大收发器功耗 4、降低总线空闲时的差分电压 尽管终端电阻能有效减少信号反射、提高信号质量&#xff0c;但它也引入了一系列问题&#xff0c;需要在设计中谨慎考虑。以下是几个常见问题的详细分析&#xff1a; 1、降低驱…...

在 Linux 系统上部署 Deepseek AI 的全面指南‌

对于所有希望亲身体验 AI 魅力的玩家来说&#xff0c;本文将提供一个详尽的教程&#xff0c;指导你在 Linux 系统上部署 Deepseek AI。无论你是技术小白还是有一定基础的用户&#xff0c;都能轻松跟随本文完成部署。 ‌一、关于 Ollama‌ Ollama 是一款功能强大的开源应用&am…...

Docker下载,包含Win、Mac

介绍 Docker 是一种开源的容器化平台&#xff0c;通过操作系统级虚拟化技术实现应用的快速开发、部署和运行。以下从多个维度对 Docker 进行详细介绍&#xff1a; 一、Docker 的核心概念与功能 容器化技术 Docker 利用 Linux 内核的容器隔离技术&#xff08;如 Cgroups 和 Nam…...

算法|2025最强优化算法

根据2025年的最新研究进展&#xff0c;以下是被广泛认可的几种“最强优化算法”&#xff0c;它们在理论创新、性能表现和应用范围上均有显著突破&#xff1a; 一、植物根茎生长优化算法&#xff08;PRGO&#xff09; 1 - 核心原理&#xff1a;灵感来源于植物根系结构&#xf…...

Prime: 1靶场渗透测试

Prime: 1 来自 <Prime: 1 ~ VulnHub> 1&#xff0c;将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.182&#xff0c;靶场IP192.168.23.207 3&#xff0c;对靶机进行端口服务探测…...

html相关常用语法

html相关常用语法 HTML&#xff08;HyperText Markup Language&#xff09;即超文本标记语言&#xff0c;是用于创建网页的标准标记语言 HTML使用标记语言描述Web页面的结构 HTML元素是HTML页面的建构快 HTML元素通过标签tag来表示 HTML标签是“标题”、”段落“、”表格“等内…...

2025年R1 快开门式压力容器操作证考试题目及答案解析

R1 快开门式压力容器操作证考试题目及答案&#xff1a; 单选题 1、快开门式压力容器的快开门&#xff08;盖&#xff09;应设计安全联锁装置并应具有&#xff08; &#xff09;功能。 A. 当快开门达到预定关闭部位方能升压运行的安全联锁功能 B. 当压力容器的内部压力完全释…...

《傲慢与偏见》(Pride and Prejudice)简介

学习《傲慢与偏见》 本文缘于阅读床头灯3000词英文版《傲慢与偏见》。读完之后&#xff0c;想要了解的更深一点。 英语学习记录&#xff1a;床头灯3000词&#xff1a;《傲慢与偏见》&#xff08;Pride and Prejudice&#xff09;阅读记录 故事梗概 《傲慢与偏见》&#xff08…...

绿盟科技春招面试

《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…...

dpkg-architecture命令详解

dpkg-architecture 是 Debian 系系统中用于处理软件包架构相关操作的工具&#xff0c;尤其在软件包构建和交叉编译环境中至关重要。以下是其核心功能及用法的详细说明&#xff1a; ‌一、核心功能‌ ‌架构查询与验证‌ 显示或验证当前系统&#xff08;DEB_HOST_ARCH&#xff…...

阿里的MNN源码如何编译成so文件,供Android调用

在Ubtuntu下面的编译&#xff0c;先整理编译环境 1、安装环境依赖 # 安装必要工具 sudo apt update sudo apt install -y cmake ninja-build git wget # 安装Android NDK&#xff08;建议使用r21版本或更高&#xff09; wget https://dl.google.com/android/repository/a…...

【高项】信息系统项目管理师(九)项目资源管理【4分】

项目资源管理包括识别、获取和管理所需资源以成功完成项目的各个过程,这些过程有助于确保项目经理和项目团队在正确的时间和地点使用正确的资源。项目资源是指对于项目来说,一切具有使用价值,可为项目接受和利用,且属于项目发展过程所需的客观存在的资源,包括实物资源和团…...

hive 数据简介

Hive介绍 1&#xff09;Hive简介 Hive是基于Hadoop的一个数据仓库工具&#xff0c;用于结构化数据的查询、分析和汇总。Hive提供类SQL查询功能&#xff0c;它将SQL转换为MapReduce程序。 Hive不支持OLTP&#xff0c;Hive无法提供实时查询。 2&#xff09;Hive在大数据生态环境…...

SpringBoot的启动原理?

大家好&#xff0c;我是锋哥。今天分享关于【SpringBoot的启动原理&#xff1f;】面试题。希望对大家有帮助&#xff1b; SpringBoot的启动原理&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Boot的启动原理主要是通过 SpringApplication 类来…...

蓝桥杯2023年第十四届省赛真题-子矩阵

题目来自DOTCPP&#xff1a; 暴力思路&#xff08;两个测试点超时&#xff09;&#xff1a; 题目要求我们求出子矩阵的最大值和最小值的乘积&#xff0c;我们可以枚举矩阵中的所有点&#xff0c;以这个点为其子矩阵的左上顶点&#xff0c;然后判断一下能不能构成子矩阵。如果可…...

hackmyvm-connection

connection(利用445端口smb) ubuntu:192.168.89.225(这里使用ubuntu代替centos7) connection:192.168.89.47 kali:192.168.89.149 arp-scan -l nmap -sS -v 192.168.36.47 nmap 192.168.89.47 --script vuln 使用nmap vuln扫描192.168.111.80靶机&#xff0c;观察可能存在的…...

JVM——Java虚拟机

JVM——Java虚拟机 一. 内存区域划分二. 类加载机制2.1 双亲委派模型&#xff08;类加载环节&#xff09; 三. 垃圾回收机制&#xff08;GC&#xff09;3.1 识别垃圾3.2 释放内存空间 一. 内存区域划分 JVM本身也是一个进程&#xff0c;会向系统申请内存&#xff0c;然后根据实…...

2024年数维杯数学建模A题多源机会信号建模与导航分析解题全过程论文及程序

2024年数维杯数学建模 A题 多源机会信号建模与导航分析 原题再现&#xff1a; &#xff08;一&#xff09;问题背景   尽管全球卫星定位系统下的定位导航技术已成熟&#xff0c;但考虑到室内、隧道、建筑密集区等复杂环境或全球卫星定位系统被毁失灵等突发场景&#xff0c;…...

解释 TypeScript 中的类型保护(type guards),如何使用类型保护进行类型检查?

TypeScript类型保护深度解析 核心概念解析 类型保护是TypeScript用于在条件分支中缩小变量类型范围的机制&#xff0c;通过特定的语法结构让编译器能够推导出更精确的类型信息。其核心价值在于提升代码类型安全性&#xff0c;同时保持开发效率。 五大实现方式及实战案例 1.…...

【时时三省】(C语言基础)习题:分析一个程序

( 1 )运行时会输出什么信息&#xff1f;为什么&#xff1f; ( 2 )如果将程序第4&#xff0c;5行改为 c1 197&#xff1b; c2 198&#xff1b; 运行时会输出什么信息?为什么? ( 3 )如果将程序第3行改为 int cl , c2 ; 运行时会输出什么信息?为什么? ( 1 )输出结果…...

基于springboot的旅游网站(013)

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff0c;旅游网站当然也不能排除在外&#xff0c;随着旅游网站的不断成熟&#xff0c;它彻底改变了过去传统的旅游网站方式&#xff0c;不仅使旅游管理…...

vscode查看文件历史git commit记录

方案一&#xff1a;GitLens 在vscode扩展商店下载GitLens 选中要查看的文件&#xff0c;vscode界面右上角点击GitLens的图标&#xff0c;选择Toggle File Blame 界面显示当前打开文件的所有修改历史记录 鼠标放到某条记录上&#xff0c;可以看到记录详情&#xff0c;选中O…...

基于Wasm的边缘计算Pandas:突破端侧AI的最后一公里——让数据分析在手机、IoT设备上飞驰

引言&#xff1a;边缘计算的算力觉醒 在智能家居设备每秒产生数万条传感器数据、手机App需要实时分析用户行为的今天&#xff0c;传统云计算模式面临高延迟、隐私风险、带宽成本三大挑战。本文将揭示如何通过WebAssembly&#xff08;Wasm&#xff09;Pandas的技术组合&#xf…...