开放表格式和对象存储架构指南
比较 Apache Iceberg、Delta Lake 和 Apache Hudi,并了解如何为您的数据湖仓一体选择合适的开放表格式。开放表格式和对象存储正在重新定义组织构建其数据系统的方式,为可扩展、高效且面向未来的数据湖仓一体奠定了基础。通过利用对象存储的独特优势(可扩展性、灵活性和成本效益)以及 Apache Iceberg、Delta Lake 和 Apache Hudi 等开放表格式的高级元数据管理功能,组织可以创建满足现代数据工作负载需求的模块化架构。这种架构转变的核心是计算和存储的分解。对象存储作为基础,提供对结构化、半结构化和非结构化数据的无缝管理,而开放表格式充当元数据抽象层,支持类似数据库的功能,例如架构、分区和原子性、一致性、隔离和持久性 (ACID) 事务。Spark、Presto、Trino 和 Dremio 等计算引擎与这些表格格式交互,从而提供了大规模处理和分析数据的灵活性,而不会受制于供应商。本指南将深入探讨开放表格式和对象存储在构建现代数据湖仓一体中的作用。我将探讨它们的演变,比较领先的表格格式,并重点介绍针对高级分析和 AI 工作负载优化架构的性能注意事项。通过了解这些组件,您将有能力设计不仅高效且可扩展,而且能够适应数据驱动时代快速变化的需求的数据系统。
Open Table Formats 的适用范围
现代数据湖仓一体架构建立在三个关键组件之上:存储层、开放表格式和计算引擎。这种模块化设计经过优化,可充分利用对象存储的可扩展性和成本效益,同时利用开放式表格式实现无缝元数据管理和跨不同计算引擎的互作性。
其基础是对象存储的存储层,它为结构化、半结构化和非结构化数据提供可扩展且灵活的存储。存储层中是开放的表格式,可以是 Apache Iceberg、Delta Lake 或 Apache Hudi。这些开放的表格式充当元数据抽象层,提供类似数据库的功能,包括 Schema、分区和版本控制,以及 ACID 事务、Schema 演变和时间旅行等高级功能。最后,Spark、Presto、Trino 和 Dremio 等计算引擎与开放表格式交互,以大规模处理和分析数据,使用户能够灵活地选择最适合其工作负载的工具。
数据架构的演变
数据湖仓一体的兴起可以理解为数据架构更广泛演变的一部分。在线事务处理 (OTLP) 数据库等早期系统优先考虑事务完整性,但缺乏分析功能。在线分析处理 (OLAP) 系统的出现引入了数据仓库,该数据仓库针对查询结构化数据进行了优化,但代价是无法有效处理半结构化和非结构化数据。数据湖的出现是为了解决这些限制,为各种数据类型提供可扩展的存储和 Schema-on-Read 功能。然而,数据湖中缺乏事务保证刺激了数据湖仓一体的发展,它将数据湖和数据仓库的优势集成到一个统一的架构中。Lakehouse 基于开放表格式和对象存储构建,并且完全解耦,这意味着它们由模块化组件构成。这种分解式架构既提供了数据库的事务一致性,又提供了对象存储的可扩展性。
为什么 Open Table 格式是对象存储的理想选择
数据湖仓一体架构经过专门设计,旨在利用对象存储系统的可扩展性和成本效益,例如 Amazon Web Services (AWS) S3、Google Cloud Storage 和 Azure Blob Storage。这种集成支持在一个统一的平台中无缝管理各种数据类型(结构化、半结构化和非结构化)。
对象存储上的数据湖仓一体架构的主要功能包括:
-
统一存储层:通过利用对象存储,数据湖仓一体可以以其原生格式存储大量数据,无需在存储前进行复杂的数据转换。这种方法简化了数据摄取,并实现了与各种数据源的兼容性。
-
可扩展性:对象存储系统本质上具有可扩展性,使数据湖仓一体能够容纳不断增长的数据量,而无需对基础设施进行重大更改。这种可扩展性使组织能够有效地管理不断扩大的数据集和不断变化的分析要求。
-
灵活性:一流的对象存储可以部署在任何地方 - 本地、私有云、公共云、主机托管设施、数据中心和边缘。这种灵活性使组织能够根据特定的运营和地理需求定制其数据基础设施。
通过集成这些元素,数据湖仓一体架构提供了一个全面的解决方案,结合了数据湖和数据仓库的优势。这种设计有助于高效的数据存储、管理和分析,所有这些都建立在可扩展且灵活的对象存储系统的基础上。
定义的 Open Table Formats
开放表格式是一种标准化的开源框架,旨在高效管理大规模分析数据集。它作为数据文件之上的元数据层运行,促进跨各种处理引擎的无缝数据管理和访问。
以下是三种开放表格式的概述:
Apache Iceberg
Apache Iceberg 是一种高性能的表格格式,专为海量数据集而设计。其架构优先考虑高效的读取作和可扩展性,使其成为现代分析工作负载的基石。其定义功能之一是元数据与数据的分离,从而允许基于快照的高效隔离和规划。这种设计消除了成本高昂的元数据作,从而支持跨大型数据集的并行查询规划。Iceberg 生态系统的最新进展凸显了它在整个行业的日益普及。S3 表使查询引擎能够直接访问存储在 S3 兼容系统中的表元数据和数据文件,从而减少延迟并提高互作性,从而简化数据管理。与此同时,Databricks 对 Tabular 的收购凸显了 Iceberg 在开放式湖仓一体平台中的首要作用,并强调了其对性能和治理的关注。此外,Snowflake 将 Polaris 开源的决定表明了该行业对开放性和互作性的承诺,进一步巩固了 Iceberg 作为领先表格格式的地位。
Delta Lake
Delta Lake 最初由 Databricks 开发,与 Apache Spark 密切相关。它与 Spark API 完全兼容,并与 Spark 的结构化流式处理集成,允许批处理和流式处理作。Delta Lake 的一个关键功能是它使用事务日志来记录对数据所做的所有更改,从而确保一致的视图和写入隔离。此设计支持并发数据作,使其适用于高吞吐量环境。
Apache Hudi
Apache Hudi 旨在应对实时数据摄取和分析的挑战,尤其是在需要频繁更新的环境中。其架构支持用于高效数据摄取的写入优化存储 (WOS) 和用于查询的读取优化存储 (ROS),从而实现数据集的最新视图。通过逐步处理数据流中的更改,Hudi 促进了大规模实时分析。Bloom 筛选条件和全局索引等功能可优化 I/O作,从而提高查询和写入性能。此外,Hudi 还包括用于集群、压缩和清理的工具,这些工具有助于维护表的组织和性能。它处理记录级更新和删除的能力使其成为高速数据流和需要合规性和严格数据管理的场景的实用选择。
比较 Open Table 格式
Apache Iceberg、Delta Lake 和 Apache Hudi 都为数据湖仓一体架构带来了独特的优势。以下是基于主要特征的这些格式的比较概述:
-
ACID 事务:所有三种格式都符合 ACID 要求,确保可靠的数据作。Iceberg 采用快照隔离来实现事务完整性,Delta Lake 利用事务日志实现一致的视图和写入隔离,Hudi 为高并发场景提供文件级并发控制。
-
架构演变:每种格式都支持架构更改,允许添加、删除或修改列。Iceberg 提供灵活的架构演变,而无需重写现有数据,Delta Lake 在运行时强制执行架构以保持数据质量,Hudi 提供预提交转换以提高灵活性。
-
分区演变:Iceberg 支持分区演变,无需重写现有数据即可无缝更新分区方案。Delta Lake 允许分区更改,但可能需要手动干预才能获得最佳性能,而 Hudi 提供精细集群作为传统分区的替代方案。
-
时间旅行:这三种格式都提供时间旅行功能,允许用户查询历史数据状态。此功能对于审计和调试目的非常有用。
-
广泛采用:Iceberg 是数据社区最广泛采用的开放表格式。从 Databricks 到 Snowflake 再到 AWS,许多大型平台都投资了 Iceberg。如果您已经是这些生态系统的一部分或正在考虑加入它们,那么 Iceberg 可能会自然而然地脱颖而出。
-
索引:Hudi 提供多模式索引功能,包括 Bloom 过滤器和记录级索引,可以提高查询性能。Delta Lake 和 Iceberg 依赖于元数据优化,但无法提供相同级别的索引灵活性。
-
并发和流式处理:Hudi 专为实时分析而设计,具有高级并发控制和内置工具(如 DeltaStreamer)用于增量摄取。Delta Lake 支持通过更改数据源进行流式处理,而 Iceberg 提供基本的增量读取功能。
这些区别突出表明,虽然这三种格式都为现代数据架构提供了强大的基础,但最佳选择取决于特定的工作负载要求和组织需求。
性能预期
在数据湖仓一体架构中实现最佳性能对于充分利用开放表格式的功能至关重要。这种性能取决于存储层和计算层的效率。存储层必须提供低延迟和高吞吐量,以满足大规模分析需求。对象存储解决方案应有助于快速访问数据并支持高速传输,即使在高工作负载下也能确保平稳运行。此外,高效的每秒输入/输出作数 (IOPS) 对于处理大量并发数据请求至关重要,可实现无瓶颈的响应式数据交互。计算层性能同样重要,它直接影响数据处理和查询执行速度。Compute 引擎必须可扩展,才能在不影响性能的情况下管理不断增长的数据量和用户查询。采用优化的查询执行计划和资源管理策略可以进一步提高处理效率。此外,计算引擎需要与开放表格式无缝集成,以充分利用 ACID 事务、架构演变和时间旅行等高级功能。
开放式表格式还包含旨在提高性能的功能。这些也需要正确配置并用于完全优化的堆栈。其中一项功能是高效的元数据处理,其中元数据与数据分开管理,从而可以更快地进行查询规划和执行。数据分区将数据组织成子集,通过减少作期间扫描的数据量来提高查询性能。对架构演变的支持使表格式能够适应数据结构的变化,而无需进行大量的数据重写,从而确保灵活性,同时最大限度地减少处理开销。通过关注存储和计算层的这些性能方面,组织可以确保其数据湖仓一体环境高效、可扩展,并且能够满足现代分析和 AI 工作负载的需求。这些考虑因素使开放式表格格式能够充分发挥其潜力,提供实时洞察和决策所需的高性能。
开放数据湖仓一体和互作性
数据湖仓一体架构基于开放表格式构建,可提供统一的数据管理方法。但是,实现真正的开放性需要的不仅仅是采用开放的表格格式。开放数据湖仓一体必须集成模块化、可互作的开源组件,例如存储引擎、目录和计算引擎,以实现跨不同平台的无缝运行。开放表格式是开放标准,并且根据其设计,支持整个堆栈的互作性和开放性。然而,实际挑战仍然存在,例如确保目录互作性和避免依赖专有服务进行表管理。最近推出的 Apache XTable 等工具展示了通用兼容性的进展,为一次编写、随处查询的系统提供了一条途径。需要注意的是,XTable 不允许你以多种开放的表格格式写入,只允许读取。希望未来互作性的创新将继续建立在这些项目和其他围绕开放表格格式的项目之上。
Open Table 格式的未来
随着数据湖仓一体的不断发展,某些趋势和进步可能会塑造其未来。一个重要的增长领域可能是将 AI 和机器学习 (ML) 工作负载直接集成到湖仓一体架构中。对于存储层,这可能看起来像是与 Hugging Face 和 OpenAI 等关键 AI 平台直接集成的平台。对于计算层,AI 集成可能会导致创建针对 ML 算法优化的专用计算引擎,从而提高湖仓一体生态系统中训练和推理过程的效率。另一个显著增长的领域可能是开源社区。当 Databricks、Snowflake 和 AWS 等大型私营公司开始大展拳脚时,人们很容易忘记开放表格格式是真正的开放标准。Iceberg、Hudi 和 Delta Lake 可供任何贡献者、协作或集成到开源工具和平台中。换句话说,它们是充满活力且不断发展的开放标准数据生态系统的一部分。重要的是要记住,开源会带来开源。我们将看到开源应用程序、附加组件、目录和创新在该领域的持续激增。最后,随着企业为 AI 和其他高级用例构建大规模、高性能的数据湖仓一体,开放表格式的采用率将继续上升。一些行业专业人士将开放表格式的流行等同于 2000 年代初 Hadoop 的崛起和霸主地位。大数据已死;大数据万岁。
为今天和未来而构建
将开放表格式与高性能对象存储相结合,使架构师能够构建开放、可互作且能够满足 AI、ML 和高级分析需求的数据系统。通过采用这些技术,组织可以创建可扩展且灵活的架构,从而在数据驱动时代推动创新和效率。
相关文章:
开放表格式和对象存储架构指南
比较 Apache Iceberg、Delta Lake 和 Apache Hudi,并了解如何为您的数据湖仓一体选择合适的开放表格式。开放表格式和对象存储正在重新定义组织构建其数据系统的方式,为可扩展、高效且面向未来的数据湖仓一体奠定了基础。通过利用对象存储的独特优势&…...
Netty入门详解
引言 Netty 是一个基于 Java 的高性能、异步事件驱动的网络应用框架,用于快速开发可维护的高性能网络服务器和客户端。它提供了一组丰富的 API,使得开发人员能够轻松地处理各种网络协议,如 TCP、UDP 等,并且支持多种编解码方式&a…...
我国首条大型无人机城际低空物流航线成功首航
首航震撼开场:羊肉 “飞” 越 540 公里 在夜色的笼罩下,榆阳马合通用机场的跑道上,一架大型固定翼无人机蓄势待发,机身被灯光照亮,宛如一只即将展翅翱翔的钢铁巨鸟。它的货舱里,满满装载着新鲜的榆林羊肉&a…...
【数据挖掘】--算法
【数据挖掘】--算法 目录:1. 缺失值和数值属性处理1缺失值处理: 2. 用于文档分类的朴素贝叶斯3. 分治法:建立决策树4. 覆盖算法建立规则5. 挖掘关联规则6. 线性模型有效寻找最近邻暴力搜索(Brute-Force Search)kd树&am…...
C++初阶——简单实现vector
目录 1、前言 2、Vector.h 3、Test.cpp 1、前言 简单实现std::vector类模板。 相较于前面的string,vector要注意: 深拷贝,因为vector的元素可能是类类型,类类型元素可以通过赋值重载,自己实现深拷贝。 迭代器失效…...
三、Three.js模型对象、材质
一、三维向量Vector3与模型位置 点模型Points、线模型Line、网格网格模型Mesh等模型对象的父类都是Object3D,如果想对这些模型进行旋转、缩放、平移等操作,如何实现,可以查询Threejs文档Object3D对相关属性和方法的介绍 1、三维向量Vector3 …...
C# 背景 透明 抗锯齿 (效果完美)
主要是通过 P/Invoke 技术调用 Windows API 函数 gdi32.dll/user32.dll,同时定义了一些结构体来配合这些 API 函数的使用,常用于处理图形绘制、窗口显示等操作。 运行查看效果 局部放大,抗锯齿效果很不错,尾巴毛毛清晰可见。 using System; u…...
Ubuntu 22.04 一键部署MinerU1.1.0
MinerU MinerU是一款将PDF转化为机器可读格式的工具(如markdown、json),可以很方便地抽取为任意格式。 MinerU诞生于书生-浦语的预训练过程中,我们将会集中精力解决科技文献中的符号转化问题,希望在大模型时代为科技发…...
10、k8s对外服务之ingress
service和ingress的作用 service的作用 NodePort:会在每个节点开放一个端口,端口号30000-32767。 也是只能用于内网访问,四层转发。实现负载均衡。不能基于域名进行访问。 clusterip:service的默认类型,只能在集群…...
mysql面试题
一、基础概念 什么是主键(Primary Key)? 答案: 唯一标识表中每行数据的字段或字段组合,不允许 NULL 值,确保数据唯一性。 外键(Foreign Key)的作用是什么? 答案…...
什么是关系型数据库?什么是非关系型数据库?
关系型数据库:关系型数据库是基于关系模型的数据库,它将数据组织成二维表格的形式,每个表格称为一个表(Table),表中的每一行称为一条记录(Record)或元组(Tuple࿰…...
科技云报到:科技普惠潮流渐起,“开源”将带我们走向何方?
科技云报到原创。 开源决定软件未来,已成为全球技术和产业创新的主导模式之一。“开源”思想的诞生,可以说是计算机发展史中极具理想主义和浪漫主义色彩的一页,是科技自由与技术极客思想的延伸。 数字化浪潮奔涌,从软件开发的底…...
校园网架构设计与部署实战
一、学习目标 掌握校园网分层架构设计原则 理解多业务VLAN规划方法 学会部署认证计费系统 实现基础网络安全防护 二、典型校园网场景 需求分析:某中学需建设新型校园网络 覆盖教学楼/宿舍/图书馆三区域 区分教师/学生/访客网络权限 满足2000终端并发接入 …...
【含开题报告+文档+PPT+源码】基于Springboot的乡村老龄居民信息管理系统
开题报告 本文介绍了一个基于Spring Boot框架的乡村老龄居民信息管理系统。该系统旨在通过信息化手段,提高乡村老龄居民的生活质量,并为相关部门提供便捷的数据管理和服务支持。系统主要实现了用户注册登录、个人信息查看、健康数据录入、健康建议查询、…...
前端插件使用xlsx-populate,花样配置excel内容,根据坐添加标替换excel内容,修改颜色,合并单元格...。
需求要求:业务人员有个非常复杂得excel表格,各种表头等,但是模板是固定得。当然也可以实现在excel上搞出各种表格,但是不如直接用已有模板替换其中要动态得内容方便,这里我们用到CSDN得 xlsx-populate 插件。 实列中我…...
Mac m1 连接公司内网
1、创建VPN 1、在系统偏好设置 2、选择网络 3、进行添加 2、添加设置 1、选择VPN 2、类型选择L2TP/IPSec 3、填写服务器IP和账号 4、点击认证设置-填写密码 。然后应用 3、进行特殊配置 网上说苹果系统的问题。 1、创建命令 sudo vim /etc/ppp/options 2、添加内容-主要别…...
Jenkins 部署在 Mac 并在局域网内通过 ip 访问
Jenkins 部署在 Mac 并在局域网内通过 ip 访问 一、修改配置文件 打开文件 ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist 打开文件 /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist 两个文件目录不同,内容一样 <?xml version"1.0" e…...
臻识相机,华夏相机,芊熠车牌识别相机加密解密
臻识,华夏,芊熠这三种车牌识别相机解密我都试过了,可以正常解密成功,其它品牌我暂时没有测试。超级简单,免费的,白嫖无敌! 流程: ①:先导出配置文件,例如我以…...
【Python 专题】数据结构 树
LeetCode 题目104. 二叉树的最大深度(gif 图解)方法一:后序遍历(DFS)方法二:层序遍历(BFS)872. 叶子相似的树(DFS 遍历)1448. 统计二叉树中好节点的数目(DFS 遍历)437. 路径总和 III(前缀和 + DFS 回溯)1372. 二叉树中的最长交错路径(DFS)236. 二叉树的最近公共…...
【飞行器原理学习】——1. 机翼及机翼参数
飞行器原理学习——1.机翼 一、 概述 飞机的各种机翼是飞机的控制面 通过铰链、钢索、液压等方式连接在机身上 操纵面运动时,会改变机翼的弧度和形状,使流经的空气发生偏转,从而影响空气动力的大小。使飞机围绕着3轴运动 二、机翼的操纵面…...
css之display:grid布局改块级元素布局
1.问题: div是块级元素,一个div元素占一行,但是,今天测试样式时,总是会有两个div并占一行,很困惑,结果发现是app这个样式 在main.css里 #app样式布局在main.ts里被应用 2.原因以及样式分析 im…...
如何组织和管理JavaScript文件:最佳实践与策略
在现代Web开发中,JavaScript已经成为不可或缺的一部分。随着项目规模的扩大,JavaScript代码的复杂性也随之增加。如何有效地组织和管理这些文件,不仅影响开发效率,还直接关系到项目的可维护性和可扩展性。本文将深入探讨如何组织和…...
Vue 中组件通信的方式有哪些,如何实现父子组件和非父子组件之间的通信?
一、父子组件通信(垂直通信) 1. Props 传值(父 → 子) 实现方案: <!-- Parent.vue --> <template><Child :user"userData" /> </template><script setup> import { ref } …...
伯克利 CS61A 课堂笔记 11 —— Mutability
本系列为加州伯克利大学著名 Python 基础课程 CS61A 的课堂笔记整理,全英文内容,文末附词汇解释。 目录 01 Objects 02 Example: Strings Ⅰ Representing Strings: the ASCII Standard Ⅱ Representing Strings: the Unicode Standard 03 Mutatio…...
MacOS安装Emacs
个人博客地址:MacOS安装Emacs | 一张假钞的真实世界 在MacOS X上可以使用Homebrew 安装Emacs: $ brew install emacs --with-cocoa 或者用MacPorts: $ sudo port install emacs-app OSX Emacs 网站提供了通用的二进制包。 前两种方法安装…...
基于海思soc的智能产品开发(图像处理的几种需求)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 对于一个嵌入式设备来说,如果上面有一个camera,那么就可以有很多的用途。简单的用途就是拍照,比拍照更多一点的…...
百度智能云AI收入增3倍,2025开源引流打赢生态战
免费、开源。在DeepSeek重塑产业价值观念后,百度、OpenAI等AI时代的“领航员”纷纷采取行动。 随着开源以雷霆万钧之势袭来,百度下定决心求变。而其底气,就藏在这份财报中。根据财报,2024年,百度集团总收入为1331亿元…...
[数据结构]顺序表详解
目录 一.线性表 二.顺序表 2.1概念及结构 1. 静态顺序表:使用定长数组存储元素。 2. 动态顺序表:使用动态开辟的数组存储。 2.1按需申请 2.2 接口实现:增删查改 SeqList.h: SeqList.c: test.c 一.线性表 线性表 ( line…...
力扣hot100 ——搜索二维矩阵 || m+n复杂度优化解法
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 解题思路: 借助行和列有序特性,不断按行或者列缩小范围;途中数字表示每…...
VirtualBox 中使用 桥接网卡 并设置 MAC 地址
在 VirtualBox 中使用 桥接网卡 并设置 MAC 地址,可以按照以下步骤操作: 步骤 1:设置桥接网卡 打开 VirtualBox,选择你的虚拟机,点击 “设置” (Settings)。进入 “网络” (Network) 选项卡。在 “适配器 1” (Adapt…...
ETL工具: Kettle入门(示例从oracle到oracle的数据导入)
kettle介绍 ETL工具,用于对数据的抽取(Extract), 转换(Transform),加载 (Load) Kettle 是一种ETL工具, 现称为 Pentaho Data Integration (PDI) 特点:纯JAVA语言编写 官方学习文档 网站: https://docs.hitachivantara.com/r/en-us/pentaho-data-int…...
未来AI方向落地场景:小语言模型,super_private_agent
未来AI方向落地场景:小语言模型,super_private_agent 目录 未来AI方向落地场景:小语言模型,super_private_agent小语言模型super - private - agent(注重隐私的智能代理)碳基生命和硅基生命交互界面面向agent的专用交互协议和数据接口从web平台经济到网络平台举例说明社交…...
Oracle RAC数据库单节点轮流重启
0、sqlplus / as sysdba 备份参数文件 create pfile/home/oracle/pfile.ora from spfile; 备份控制文件 Alter database backup controlfile to trace; 1、关闭两节点的监听; 2、操作系统层面kill掉所有LOCALNO的所有进程,即:连接会话。 p…...
渲染101对Blender的支持与硬件配置详解
一、Blender版本与渲染器支持 渲染101全面支持 Blender全版本(包括Blender 4.0及早期版本),并适配其内置的 Eevee、Cycles、Workbench 三大渲染器 。此外,平台还兼容 Aces、Realflow、Anima 等40插件,覆盖建模、动画…...
安卓burp抓包,bypass ssl pinning
好久好久没有发东西了。主要是懒。。。 这几天在搞apk渗透,遇到了burp无法抓包问题,觉得可以写下来。 问题描述 1. 一台安卓手机,装了面具,可以拿到root 2. 电脑上有burp,设置代理 3.手机和电脑连同一个网段&…...
植物大战僵尸杂交版v3.2.1最新版本(附下载链接)
B站游戏作者潜艇伟伟迷于12月21日更新了植物大战僵尸杂交版3.2.1版本!!!,有b站账户的记得要给作者三连关注一下呀! 不多废话下载链接放上: 夸克网盘链接::https://pan.quark.cn/s/e5…...
【SQL】多表查询案例
📢本章节主要学习使用SQL多表查询的案例,多表查询基础概念 请点击此处。 🎄数据准备 首先我们创建一个新的表也就是薪资等级表,其余两个表(员工表和薪资表)在多表查询章节中已经创建。然后我么根据这三个表完成下面的12个需求。 create tab…...
使用Python结合`stable-baselines3`库(包含PPO和TD3算法)以及`gym`库来实现分层强化学习的示例代码
以下是一个使用Python结合stable-baselines3库(包含PPO和TD3算法)以及gym库来实现分层强化学习的示例代码。该代码将环境中的动作元组分别提供给高层处理器PPO和低层处理器TD3进行训练,并实现单独训练和共同训练的功能。 代码实现 import g…...
解锁机器学习核心算法|神经网络:AI 领域的 “超级引擎”
一、神经网络:AI 领域的 “超级引擎” 在机器学习的庞大算法体系中,有十种算法被广泛认为是最具代表性和实用性的,它们犹如机器学习领域的 “十大神器”,各自发挥着独特的作用。这十大算法包括线性回归、逻辑回归、决策树、随机森…...
一周学会Flask3 Python Web开发-redirect重定向
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 前面我们学过渲染到模板页面,这个其实是一种内部的转发,浏览器地址栏地址没有变化。如果我们想重定向…...
FFmpeg 源码编译安装
参考: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu Linux (Ubuntu) 下载 FFmpeg 源码,并将其解压,这里我将它放在 ~/ffmpeg_source 目录下; cd ~/ffmpeg_sources wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org…...
3.Docker常用命令
1.Docker启动类命令 1.启动Docker systemctl start docker 2.停止Docker systemctl stop docker 3.重启Docker systemctl restart docker 4.查看Docker状态 systemctl status docker 5.设置开机自启(执行此命令后每次Linux重启后将自启动Docker) systemctl enable do…...
vue3面试题进阶版
覆盖 Vue3 的核心知识点、高频考点及实战场景 一、基础与核心概念 MVVM 与 MVC 的区别 MVC:Model(数据)、View(视图)、Controller(控制器),视图更新需手动操作 DOM。MVVM࿱…...
深入理解指针
例题1 int main() {int a[5][5];int(*p)[4];p a;printf("%p, %d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);return 0; }由图知第二个打印的是-4 因为%p是直接将内存中的值当作地址打印 而-4在内存中存放的是其二进制的补码,打印以16进制形式…...
微信小程序实现拉卡拉支付
功能需求:拉卡拉支付(通过跳转拉卡拉平台进行支付),他人支付(通过链接进行平台跳转支付) 1.支付操作 //支付 const onCanStartPay async (obj) > {uni.showLoading({mask: true})// 支付接口获取需要传…...
conda简单命令
查看当前环境已经安装的库 conda list 查看conda已经创建的环境 conda env list切换conda环境 conda activate 环境名称删除环境 conda remove --name 环境名称 --all安装库 conda install 库名卸载库 conda remove 库名导出(导入)环境 保存某个…...
Linux应用之构建命令行解释器(bash进程)
目录 1.分析 2.打印输入提示符 3.读取并且处理输入字符串 4.创建子进程并切换 5.bash内部指令 6.完整代码 1.分析 当我们登录服务器的时候,命令行解释器就会自动加载出来。接下来我们就。在命令行中输入指令来达到我们想要的目的。 我们在命令行上输入的…...
什么是3D可视化?有哪些优势和应用领域?
3D可视化服务是一种基于大数据、物联网、云计算等技术构建的三维可视化系统服务,它提供直观的三维软件应用服务,帮助用户更好地理解和分析数据。以下是对3D可视化服务的详细介绍: 一、3D可视化服务的原理 3D可视化服务的原理主要包括数据采…...
在PyCharm中运行Jupyter Notebook的.ipynb文件及其pycharm软件的基础使用
(注意需使用PyCharm专业版,学生、教师可以申请免费使用:https://www.jetbrains.com/shop/eform/students) 1. pycharm2024版汉化 https://blog.csdn.net/m0_74103046/article/details/144560999 2. pycharm中的python控制台和J…...
解锁C#自定义属性:从0到1的深度实践指南
一、开篇:自定义属性的奇妙世界 在 C# 的编程宇宙中,自定义属性是一个强大且迷人的存在,它就像是代码世界里的魔法标记,为我们的程序赋予了丰富的元数据,让代码变得更加智能和富有表现力。 想象一下,你正…...