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

京东大数据治理探索与实践 | 京东零售技术实践

01背景和方案

在当今的数据驱动时代,数据作为关键生产要素之一,其在商业活动中的战略价值愈加凸显,京东也不例外。

图片

作为国内领先的电商平台,京东在数据基础设施上的投入极为巨大,涵盖数万台服务器、数 EB 级存储、数百万个数据模型及数以百万计的任务执行。每年成本上的投入高达两位数个小目标,而且还在持续增长,成本压力比较大。

面对这样的成本压力,治理是一个必然的选择,并且不能是运动式、救火式的,而应该是持续的,需要一个规模化、常态化的治理体系。为了实现这一目标,就要应对治理中的诸多挑战。首先,场景复杂,平台建设是个长期过程,管控规则在不断迭代,历史原因导致平台有部分作业的访问方式跳过数据表直接访问底层 HDFS 文件,或者绕过平台的推数工具,直接在 MapReduce 或 Spark 里面写入数据,导致审计和血缘追踪困难,给治理带来了很大风险。此外,平台用户较多,成本意识很难拉齐,且大家工作繁忙,主动治理的意愿较低。而且人工治理不仅成本高,风险也高,如果人工判断不准,就会造成生产事故。

图片

为了解决这些问题,我们首先设计了健康分和货币化账单,用来量化治理的收益,帮助用户直观感受治理的变化。再就是打造自动化治理平台,自动发现问题,及时通知用户,一键执行,并通过量化指标来判断收益,提高治理人效。

具体治理从以下几个角度一起考虑:

  • 多种数据源相互印证。联合 HDFS 和 Hive 的审计日志、HDFS 的元数据以及数据血缘等数据一起校验,避免因单一数据源引发的误判。

  • 设置多环节校验。判断会综合连续多日的诊断结果,避免特殊异常波动导致误诊。

  • 作业提交会进行实时校验。当前数据作业是通过 t+1 离线模型进行计算,存在时间差,为避免时间差导致误诊,在执行时针对选择的治理做二次校验。

  • 操作可逆。对于治理数据做自动备份,即使有误操作,也可以一键回滚。

  • 数据治理落地的机制保障。增加数据管理专员小组、组织机构治理负责人等角色,并明确各自职责。

  • 明确目标。每年采购前,会达成年度治理目标的共识及预计的治理量。将目标拆解到每个事业部、每个部门,以及每个季度、每个月的指标,并通过周期性例行会议不断跟进和校准。

  • 完善奖惩机制,做得好会有激励,做得不好,会在其他产品上限制其使用。

当前整个治理系统已经涵盖了成本、稳定性、安全、质量等四个方向一共几十个治理项。例如成本治理中表的生命周期,不仅仅按照人工设定时间定期删除数据,还可以根据数据实际被访问的周期推荐更合理的生命周期数值。在稳定性中的“依赖缺失”治理,防止任务执行时,上游数据还未产出,导致任务失败。在安全方面,平台能及时发现对安全等级打标不准,质量方向的元数据缺失,元数据标注不准以及数据质量异常等治理项,及时发现,及时处理。

02关键技术

接下来介绍一下治理平台使用的关键技术。

图片

1. 审计日志

审计日志记录了用户在何时何地因何原因访问了哪些数据及访问方式,这是安全治理的基础。

以无效任务为例(有产出,但是产出的数据没有下游访问),自身作业还在运行,一定有日志产生,那如何来判断有没有下游呢,就需要排除掉自身任务的访问,审计当中就必须要有“任务 ID”这个属性。另外,治理需要明确的责任人,单单靠大家主动去维护表的负责人,一定会存在错漏的问题,所以审计一定要能识别到具体哪个人在操作,再加上数据的反算策略,来补充和校准负责人信息,确保数据一定有人负责。

原生的大数据系统,并没有这么丰富的信息,所以需要定制化改造:

  • 改造 API 协议。通过对底层 HDFS,以及上层计算引擎的适配性改造,附加了任务来源以及任务 ID 等上下文信息。

  • 内容反算。原始 metastore 日志记录存储的是原子 API 的使用记录(如 get_table ,get_partition),但具体操作(读、写、改表)没办法区分。平台通过对命令的访问序列,总结规律,生成自动识别规则进行反算。

  • 数据联合使用。Hive 审计日志只记录表级,具体访问的分区是看不到的。而结合 HDFS 审计来反推分区访问的活跃程度,从而推荐合理的生命周期,避免生命周期设置的偏大或偏小。

2. 全链路血缘

图片

首先介绍一下图中的一些术语,JDQ:是京东基于 kafka 进行二开的消息队列;JRC:京东实时数据加工平台,主要是用的 FLink 技术;DTS:数据集成工具;Plumber in、out:数据的导入导出。

上图展示的是正常的数据流转过程。从生产到数仓,再到数据应用或服务的全过程来看,已经不单单在大数据平台,要进行数据治理,如果不能掌握上下游关系,很容易出现问题。比如数仓将数据推到了应用系统,后续访问都在大数据平台外,如果把表的加工任务当成无效任务禁用后,就会影响业务正常运行。

除治理外,还可以利用血缘对全链路进行影响分析,链路优化等(比如一个表在任务加工链路上属于第 10 层,而他所依赖的所有数据都在第 3 层,那中间的几层依赖即为无效的,直接依赖第 3 层的加工任务来缩短链路,就可以更快完成数据加工)。

在不同阶段会用到不同的技术,比如生产侧主要用到的是调用链,在大数据侧主要使用审计和执行计划的解析,在数据应用与服务侧主要是运用审计的能力。将各阶段的数据进行整合,就可以得到全链路的血缘。

血缘的粒度如果只到表一级,还是存在一些局限性,在分析的时候,影响容易被放大。比如下游的表仅仅使用上游表做关联查询条件,他的结果当中就不会保存上游表的数据内容,在前面提到的影响分析场景,就应该排除掉。要做到这一点,就需要实现算子级血缘。

图片

算子级血缘描述的是字段间存在的具体关系,比如是直接引用的原字段,还是做了加减乘除等转换,是结果存储还是仅作为关联条件,为精细化数据治理提供支撑。比如相似表计算和重复存储识别就需要算子级血缘来帮助判断。我们的算子血缘实现的方案集成在了逻辑执行计划优化的阶段,和优化之后的 Hive Hook 的方式相比,可以拿到更原汁原味的血缘关系,对用户来说更容易理解。下面就是利用血缘关系,进行主动元数据治理的一个案例。

图片

用户开发时,经常要去找依赖的数据在哪里,有的是直接找表,而更多的时候是找字段,比如我想要知道订单优惠后的金额在哪,他的加工口径是什么,这样单纯的按表来检索就非常低效。所以我们设计了标准字段的概念,他是字段的抽象,在标准字段上可以维护更多的元数据信息,比如加工口径,使用说明等。当标准字段和表的实体字段关联上之后,就可以通过它来寻找字段和表。

但是如果需要大家一个个的维护关联关系,也是个巨大的成本,在这里就可以通过算子血缘来进行提效,用户仅需要将字段的源头做好关联,那么根据算子血缘关系,就可以直接算出有哪些直接引用的下游。

当然,我们这个标准字段也不仅仅是用于找数的提效,在字段元数据上维护好枚举值、取值范围、格式规范等信息,我们在后台会自动检测真实数据是否和定义匹配,异常及时触达用户,让用户做治理。这个检测不需要提前配置,完全是系统自动行为。

03从“节流”到“开源”

前面介绍的内容更多是如何推动业务主动治理,其目的主要是“节流”,减少不必要的占用。另一方面,我们也在寻求“开源”的手段,在不增加成本的情况下,使资源得到更充分的利用。这里主要列举三种手段:资源混部、任务错峰,以及跨机房的任务编排。

图片

京东有两大消耗大户,分别是大数据和在线服务,基数大,而且资源缺口也大。拿在线服务来说,在双十一、618 等促销节点,资源非常紧缺。而离线是常年高负荷运行,利用率都达百分之七八十。当在线服务在大促峰值过后,需求就会降得很低,就可以借给离线使用。离线虽然常年是高负载的情况,但每天晚上八点后相对比较空,在大促时就可以进行在线的支援。因此资源混部的价值是很大的。

资源池化,可以根据业务特点和等级进行资源分配,进行统一调度。此外也可以进行按需分配,当大促时,离线只需要借用几个小时不会对整体造成影响,离线可借用的空间就会很大。

资源池化落地有几个关键点。

  • 存算分离是基础,计算需要做到无状态才行。

  • 容器化技术,尤其是离线计算服务的容器化。

  • 资源隔离,包括各种层面的隔离(比如 CPU 网络)。

前面讲的是空间的挪移,而任务错峰则是时间上的挪移。平台上跑的上百万的作业,涉及很多开发人员,靠人工设定的运行规则,不是很合理。从数据表现来看,在凌晨 3-5 点集中了 30% 的任务,导致资源抢占和高峰拥堵。还有就是父任务的结束时间和当前任务的开始时间存在大量的 gap,如果父任务结束之后的空档期,资源负载较低的话,可以把任务做提前的编排,不光可以提高资源的利用率,也可以提升运行的时效。对整个过程中每个队列的资源使用情况,以及任务的运行时长进行预测,并根据这个预测结果结合任务的重要度来去动态调整任务的可执行时间,即可实现削峰填谷。

第三个手段就是跨机房的任务搬迁。对于大公司来说,单个机房很难完全满足需求,因为很少有机房能放数十万台服务器。另外也很难做到高可用,从安全角度来讲,一般是要做到两地三中心的架构,不同机房间的系统负载就很难相同,一定有的机房相对繁忙,另外一边相对空闲。如果能对任务进行动态调整,把任务尽量分在空闲的一边,就一定能跑得更快。这里比前面两个手段要多出一项对存储的考量,因为计算和存储是跨机房的访问,势必就会带来两机房之间专线的额外占用。如果调度不当,就会导致专线堵塞。而且跨机房的存储调拨,也会带来一些更高的存储需求。这个过程需要平衡存储和计算的成本。

以上三个方面如果能够做到极致,利用率就会接近一条直线,仅在均线上下小幅波动,采购就会大幅减少,甚至零采购,从而降低成本。

04未来展望

图片

未来的治理将在以下几个方向继续推进:

  • 实时发现和治理。当前的数据治理主要是依托于离线模型测算,后面会做更实时的诊断与治理,尽量是在业务上线之前就做到拦截,减少事后治理的场景。

  • 智能化。系统从规则化向智能化演变,让问题的识别变得更精准、更智能。

  • 自动化。现在治理需要人工参与一小部分,未来的目标是落地托管模式,实现无人化的治理。

相关文章:

京东大数据治理探索与实践 | 京东零售技术实践

01背景和方案 在当今的数据驱动时代,数据作为关键生产要素之一,其在商业活动中的战略价值愈加凸显,京东也不例外。 作为国内领先的电商平台,京东在数据基础设施上的投入极为巨大,涵盖数万台服务器、数 EB 级存储、数百…...

应该连续学一个科目,还是多学科切换?

https://www.zhihu.com/question/333420829https://www.zhihu.com/question/333420829...

游戏何如防抓包

游戏抓包是指在游戏中,通过抓包工具捕获和分析游戏客户端与服务器之间传输的封包数据的过程。抓包工具可实现拦截、篡改、重发、丢弃游戏的上下行数据包,市面上常见的抓包工具有WPE、Fiddler和Charles Proxy等。 抓包工具有两种实现方式,一类…...

asp.net core发布配置端口号,支持linux

方式一,修改配置文件 appsettings.json 找到文件 appsettings.json, 添加如下节点配置,在linux环境需要设置0.0.0.0才可以正常代表本机,然后被其他机器访问,此处设置端口8000, "Kestrel": {&quo…...

基于linux下实现的ping程序(C语言)

linux下实现的ping程序 一、设计目的 PING程序是我们使用的比较多的用于测试网络连通性的程序。PING程序基于ICMP,使用ICMP的回送请求和回送应答来工作。由计算机网络课程知道,ICMP是基于IP的一个协议,ICMP包通过IP的封装之后传递。 课程设…...

109.【C语言】数据结构之求二叉树的高度

目录 1.知识回顾:高度(也称深度) 2.分析 设计代码框架 返回左右子树高度较大的那个的写法一:if语句 返回左右子树高度较大的那个的写法二:三目操作符 3.代码 4.反思 问题 出问题的代码 改进后的代码 执行结果 1.知识回顾&#xf…...

线段覆盖(c++)

题目描述 在一条数轴上,有 N 条线段,第 i 条线段的左端点是 si​,右端点是 ei​。如果线段有重叠(即使是端点重叠也算是重叠),则输出 “impossible”, 如果没有重叠则输出 “possible” 。 输入格式 多组…...

SSM 仓库管理系统

🥂(❁◡❁)您的点赞👍➕评论📝➕收藏⭐是作者创作的最大动力🤞 💖📕🎉🔥 支持我:点赞👍收藏⭐️留言📝欢迎留言讨论 🔥🔥&…...

基于Python3编写的Golang程序多平台交叉编译自动化脚本

import argparse import os import shutil import sys from shutil import copy2from loguru import loggerclass GoBuild:"""一个用于构建跨平台执行文件的类。初始化函数,设置构建的主文件、生成的执行文件名称以及目标平台。:param f: 需要构建的…...

SqlSugar查询达梦数据库遇到的异常情况(续)

之前的文章提到在SqlSugar的Where函数中使用!string.IsNullOrEmpty函数查询达梦数据库时,明明数据库中有数据但就是查不出来,但相同的代码在另一台电脑上就可以正常返回数据。   以下图中的两张表数据为例,执行下面的SQL语句无法查询到数据…...

企业电子投票系统 【源码+文档】

目 录 第1部分 概 述 第2部分 分析部分 2.1.功能需求 第3部分 系统设计 3.1.功能模块设计 3.2.数据库的设计 第4部分 系统开发 4.1.数据库 4.1&a…...

如何正确地安装和设置魔方财务软件?

安装和设置魔方财务软件需要按照以下步骤进行操作: 下载安装程序:首先,到魔方财务软件的官方网站或认可的软件下载网站下载安装程序。确保选择与您的操作系统兼容的版本。 运行安装程序:双击安装程序,按照提示进行安装…...

在Ubuntu 22.04 LTS中使用PyTorch深度学习框架并调用多GPU时遇到indexSelectLargeIndex相关的断言失败【笔记】

在Ubuntu 22.04 LTS系统中,已安装配置好CUDA 12.4、cuDNN 9.1.1以及PyTorch环境 export CUDA_VISIBLE_DEVICES0,1,2,3,4,5,6,7 在PyTorch深度学习框架训练调用多GPU时,提示 indexSelectLargeIndex: block: [x, 0, 0], thread: [x, 0, 0] Assertion src…...

[网络安全]XSS之Cookie外带攻击姿势详析

概念 XSS 的 Cookie 外带攻击就是一种针对 Web 应用程序中的 XSS(跨站脚本攻击)漏洞进行的攻击,攻击者通过在 XSS 攻击中注入恶意脚本,从而窃取用户的 Cookie 信息。 攻击者通常会利用已经存在的 XSS 漏洞,在受害者的…...

springmvc的拦截器,全局异常处理和文件上传

拦截器: 拦截不符合规则的,放行符合规则的。 等价于过滤器。 拦截器只拦截controller层API接口。 如何定义拦截器。 定义一个类并实现拦截器接口 public class MyInterceptor implements HandlerInterceptor {public boolean preHandle(HttpServletRequest reque…...

TypeScript进阶实战:构建可维护的企业级应用

"这代码太难维护了!"接手一个海外客户的项目后,我不禁感叹道。虽然项目用了 TypeScript,但类型定义混乱,代码提示基本失效,测试写起来也很痛苦。作为一个有着多年 TypeScript 开发经验的工程师,我…...

请求go web后端接口 java安卓端播放视频

前端代码 添加gradle依赖 implementation com.squareup.retrofit2:retrofit:2.9.0 implementation com.squareup.retrofit2:converter-gson:2.9.0 添加访问网络权限 <uses-permission android:name"android.permission.INTERNET" />允许http 请求请求 andro…...

Java 学习(四)集合框架与异常处理

在 Java 编程中&#xff0c;集合框架和异常处理机制是开发高效、健壮程序的两个关键部分。掌握这两个方面的知识&#xff0c;能够大大提高代码的质量和可维护性。本篇博客将深入探讨 Java 集合框架和异常处理机制的核心概念&#xff0c;并结合实际案例&#xff0c;帮助你更好地…...

如何调用yolov8的模型(restful和c++)

文章目录 方法一、通过RESTful API调用(推荐)第一步:部署yolo8服务端第二步:java中调用api方法二、JNI调用(本地调用)第一步:编写c/c++封装代码第二步:生成jni头文件和动态库第三步:在java中调用jni函数参考: 1.window系统下从0开始搭建yolov8环境 2.pycharm下载 3.y…...

Avalonia 开发环境准备

总目录 前言 介绍如何搭建 Avalonia 开发环境。 一、在线开发环境搭建 请先安装您选择的受支持的IDE。Avalonia 支持 Visual Studio、Rider 和 Visual Studio Code。 详见&#xff1a;https://docs.avaloniaui.net/zh-Hans/docs/get-started/install 1. 使用 Visual Studio 20…...

工信部人工智能专业技术人员证书介绍

一、证书介绍 图中展示的是由工业和信息化部电子工业标准化研究院颁发的人工智能专业技术人员证书。该证书封面为深蓝色&#xff0c;带有纹理&#xff0c;显得专业且庄重。封面上有“ESI”标志&#xff0c;以及“人工智能专业技术人员证书”和“工业和信息化部电子工业标准化研…...

11篇--图像边缘检测

图像梯度 要学习图像边缘检测&#xff0c;要先了解图像梯度的概念&#xff0c;我们正是通过梯度值来区分边缘像素点的 处于边缘附近的像素点与周围像素点的差距很大&#xff08;不然不会有边缘呈现&#xff09;&#xff0c;所以给边缘附近的的梯度之变化很快&#xff0c;通过…...

【数值特性库】入口文件

数值特性库入口文件为lib.rs。该文件定义一系列数字特性的trait&#xff08;特征&#xff09;&#xff0c;这些特性可以被不同的数字类型实现&#xff0c;从而提供一套通用的数值操作方法。下面是对代码中关键部分的解释&#xff1a; 一、基础设置 #![doc(html_root_url “h…...

企业微信客户管理工具

软件下载 点击这里下载软件 使用指南 查看操作演示视频 点击这里观看视频教程 安装与注意事项 排除防病毒程序干扰(本程序无病毒&#xff0c;请放心使用).避免快捷键冲突(确保 CtrlA 等快捷键无其他程序占用). 操作流程 手动启动企业微信&#xff0c;打开“添加客户”界面…...

Unity 碎片化空间的产生和优化

文章目录 产生1. 动态内存分配2. 磁盘文件操作3. 内存池和对象池4. 数据结构导致的碎片5. 操作系统的内存管理6. 应用程序设计不当 碎片化空间的优化方案 产生 碎片化空间通常指内存或磁盘中的一种分配不连续、难以利用的现象&#xff0c;主要由以下原因产生&#xff1a; 1. …...

音视频学习(二十七):SRT协议

SRT&#xff08;Secure Reliable Transport&#xff09;是一种开源的网络传输协议&#xff0c;专为实时音视频数据传输设计&#xff0c;具有低延迟、高可靠性和安全性等特点。 核心功能 SRT协议旨在解决实时音视频传输中的网络抖动、丢包、延迟和安全问题&#xff0c;提供以下…...

【Canvas与艺术】红色3号桌球

【注】 此图立体感还差点&#xff0c;以后改进吧。 【成图】 120*120的png图标&#xff1a; 大小图&#xff1a; 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8&q…...

2024-12-20 iframe嵌套与postMessage传值

iframe嵌套与postMessage传值 在Web开发中&#xff0c;iframe嵌套和postMessage传值是两个常用的技术&#xff0c;它们各自具有独特的用途和优势。本文将对这两项技术进行详细解析&#xff0c;并通过实例展示其使用方法。 一、iframe嵌套 什么是iframe嵌套&#xff1f; ifram…...

MFC 应用程序语言切换

在开发多语言支持的 MFC 应用程序时&#xff0c;如何实现动态语言切换是一个常见的问题。在本文中&#xff0c;我们将介绍两种实现语言切换的方式&#xff0c;并讨论其优缺点。同时&#xff0c;我们还会介绍如何通过保存配置文件来记住用户的语言选择&#xff0c;以及如何在程序…...

与您的数据对话: 用人工智能驱动的对象存储变革医疗保健

MinIO 的提示 API 现在是 AIStor 的一部分。MinIO 的创建是为了支持海量数据集&#xff0c;包括超过 EB 级的工作负载&#xff0c;解决内存、网络、复制和负载均衡方面的挑战&#xff0c;而 AIStor 的创建是为了建立在这些功能之上并解决我们客户的 AI 使用案例。作为 AIStor 的…...

WIN10拖入文件到桌面,文件自动移动到左上角,导致桌面文件错乱

1.先打开文件管理器。 2.点击如下图所示的“选项”。 3.我用红笔标记的这个框&#xff0c;把勾去掉...

JavaSE——绘图入门

一、Java绘图坐标体系 下图说明了Java坐标系&#xff0c;坐标原地位于左上角&#xff0c;以像素为单位。在Java坐标系中&#xff0c;第一个是x坐标&#xff0c;表示当前位置为水平方向&#xff0c;距离坐标原点x个像素&#xff1b;第二个是y坐标&#xff0c;表示当前位置为垂直…...

electron-vite打包后图标不生效问题

在electron-builder.yml中&#xff0c;通过icon配置自己的图标&#xff0c;以下是正确代码 win:executableName: 名称icon: build/icon.ico nsis:artifactName: ${name}-${version}.${ext}shortcutName: ${productName}uninstallDisplayName: ${productName}createDesktopShor…...

【MySQL】Linux使用C语言连接安装

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…...

Linux计算时间差

Linux计算时间差 1、Linux计算时间差2、时间差的应用 1、Linux计算时间差 在Linux中&#xff0c;计算时间差通常是为了统计、监控或调试。时间差可以用来衡量任务执行的时间&#xff0c;或者两个事件之间的间隔。例如&#xff0c;响应时间、执行时间、定时任务与延时处理等 以…...

onlyoffice连接器 二次开发 合同等制式模板化技术开发方案【三】

一、期望效果 目前曹瑞版本onlyoffice已经实现&#xff1a;书签模式 和 控件模式&#xff0c;用以支持该方案。 【图1】字段绑定 【图2】模板发起 【图3】接入表单 思路讲解&#xff1a; 业务系统开发中通常希望能够通过绑定form字段给word&#xff0c;从而达到双向同步效果&am…...

【论文研读】U-DiTs:在U型扩散Transformer中引入下采样Token,以更低计算成本超越DiT-XL/2

推荐理由 这篇论文提出了一种新的U型扩散Transformer模型&#xff08;U-DiT&#xff09;&#xff0c;该模型通过对自注意力机制中的查询、键和值进行下采样&#xff0c;有效减少了计算冗余&#xff0c;同时提高了性能。论文中的研究不仅包含理论分析和实验验证&#xff0c;还展…...

2009 ~ 2019 年 408【计算机网络】大题解析

2009 年 路由算法&#xff08;9’&#xff09; 讲解视频推荐&#xff1a;【BOK408真题讲解-2009年&#xff08;催更就退网版&#xff09;】 某网络拓扑如下图所示&#xff0c;路由器 R1 通过接口 E1 、E2 分别连接局域网 1 、局域网 2 &#xff0c;通过接口 L0 连接路由器 R2 &…...

.net core在linux导出excel,System.Drawing.Common is not supported on this platform

使用框架 .NET7 导出组件 Aspose.Cells for .NET 5.3.1 asp.net core mvc 如果使用Aspose.Cells导出excel时&#xff0c;报错 &#xff1a; System.Drawing.Common is not supported on this platform 平台特定实现&#xff1a; 对于Windows平台&#xff0c;System.Drawing.C…...

ExcelVBA编程输出ColorIndex与对应颜色色谱

标题 ExcelVBA编程输出ColorIndex与对应颜色色谱 正文 解决问题编程输出ColorIndex与对应色谱共56&#xff0c;打算分4纵列输出&#xff0c;标题是ColorIndex,Color,Name 1. 解释VBA中的ColorIndex属性 在VBA&#xff08;Visual Basic for Applications&#xff09;中&#xff…...

3.使用SD卡挂载petalinux根文件系统

前言 说明为什么使用SD卡挂载petalinux根文件系统如何使用SD卡挂载根文件系统 配置根文件写入类型制作SD分区格式化SD卡将工程目录下的rootfs.tar.gz解压到SD EXT4分区 为什么使用SD卡挂载petalinux根文件系统 Petalinux 默认的根文件系统类型是 INITRAMFS&#xff0c;不能…...

Java反射学习(1)(Java的“反射“机制、Class类对象的实例化方式)

目录 一、Java的"反射"机制。 &#xff08;1&#xff09;生活中的"反射"例子。 &#xff08;2&#xff09;Java的"反射"机制。 1、Java程序中"反射"的基本介绍。 2、"反射"机制图解介绍。 3、"反射"常见的应用场景…...

paimon中的Tag

TAG 在传统数仓场景中&#xff0c;从传统数据库中导入的事实表数据一般是全量导入&#xff0c;按天分区每天都存储一份全量数据&#xff0c;paimon对此提供了Tag机制&#xff0c;创建TAG时&#xff0c;会对当前数据做一份全量快照&#xff0c;在之后对表的数据进行更新也不会影…...

使用Vue创建前后端分离项目的过程(前端部分)

前端使用Vue.js作为前端开发框架&#xff0c;使用Vue CLI3脚手架搭建项目&#xff0c;使用axios作为HTTP库与后端API交互&#xff0c;使用Vue-router实现前端路由的定义、跳转以及参数的传递等&#xff0c;使用vuex进行数据状态管理&#xff0c;后端使用Node.jsexpress&#xf…...

4、交换机IP接口功能

这一篇是讲端口的功能的&#xff0c;应该放在路由前面的&#xff0c;不过关联不大&#xff0c;就这个顺序也行 1、DHCP功能 作用&#xff1a;交换机端口的DHCP功能可以使网络中的设备&#xff08;计算机、打印机等等&#xff09;能够自动的获取IP地址或其它网络参数&#xff0…...

java 选择排序,涵盖工作原理、算法分析、实现细节、优缺点以及一些实际应用场景

选择排序的详细解析 更深入地探讨选择排序的各个方面&#xff0c;包括其工作原理、算法分析、实现细节、优缺点以及一些实际应用场景。 动画演示 1. 基本概念 选择排序是一种简单的比较排序算法。它的核心思想是将数组分为两个部分&#xff1a;已排序部分和未排序部分。每…...

基于springboot+vue实现的医院急诊(病房)管理系统 (源码+L文+ppt)4-122

摘要 医院急诊&#xff08;病房&#xff09;管理系统旨在优化患者的就诊流程&#xff0c;提高医疗效率和服务质量。该系统通过电子化患者信息、实时床位监控和智能调度等功能&#xff0c;确保急诊患者能够快速得到必要治疗&#xff0c;同时协助医护人员高效管理病房资源。系统…...

前端模块化

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言1.概述1.1什么是模块化1.2为什么要使用模块化 2.有哪些模块化规范3.CommonJS3.1导入3.1.1正常导入3.1.2解构导入 3.2导出3.2.1exports导出3.2.2module.exports导…...

​在VMware虚拟机上设置Ubuntu与主机共享文件夹​

‌在VMware虚拟机上设置Ubuntu与主机共享文件夹的步骤如下‌&#xff1a; ‌主机共享文件夹的设置‌&#xff1a;首先&#xff0c;在主机上选择一个磁盘分区创建一个文件夹&#xff0c;并设置其共享属性。右键点击该文件夹&#xff0c;选择“属性”&#xff0c;然后在“共享”选…...

无线信道常识(符号与多径、窄带与宽带)

符号长度与时延扩展 符号长度&#xff1a; 符号长度是指一个符号&#xff08;即一个信息单元&#xff09;在传输过程中所占用的时间。符号长度通常与系统的带宽和调制方式有关。例如&#xff0c;在GSM系统中&#xff0c;符号长度大约为 5μs。 时延扩展&#xff1a; 时延扩展是…...