数据库blog4_数据库软件的设计方法与实际架构
🌿数据库的设计
由上一章可以得出数据库着重关注数据的逻辑结构和存储结构。即这是数据库设计的核心,但详细的设计结构也要研究。以下是介绍
🍂数据库架构思路
● 数据库本身
- 数据(Data)
数据:数据库中存储的实际信息,是用户存储和操作的对象。
即数据库要存储处理的数据,所以要解决数据的逻辑结构和存储结构。注意,不是现实数据,因为要整理才符合数据库的高效管理原则。(原模原样存储的话,数据库没有发挥余地)
- 数据库(Database)
数据的集合,按照特定数据结构组织
数据胡乱堆在一起当然不行,所以建立数据库来集中管理(有点中心化的思想)。
- 数据库管理系统(DBMS)
管理数据库的软件系统
有了数据库,数据确实有序存储了,但没法操作啊。我们建立数据库的目的是为了高效处理而不是为了单纯的存放的,所以,要有数据库管理系统支持我们对数据的操作
- 数据库系统(Database System)
完整的系统=数据库+DBMS+应用程序+用户
有了数据库管理系统,可以对数据操作了,但软件不会自动运行啊,要对数据进行什么操作是由人来决定的啊,同时还有数据/软件的维护,都需要人来自主管理。所以,需要人。
● 数据库与其它软件的交互
数据库并非孤立存在,它需要与多种软件进行交互,以实现数据的共享、处理和应用。
- 连接器(Connectors)
允许应用程序通过标准的接口(如JDBC、ODBC等)与数据库进行交互。
相关方法
- 中间件(Middleware)
位于客户端和服务器之间的软件层,提供了多种服务,如数据缓存、负载均衡、事务管理等。通过中间件,应用程序可以更高效地访问数据库,同时减轻数据库服务器的负担。
- 应用程序接口(API)
应用程序与数据库之间进行交互的接口。提供了一组预定义的函数和方法,应用程序可以通过这些函数和方法来访问数据库。
- 数据同步工具
数据同步工具用于在不同的数据库之间同步数据。
- 数据仓库和数据湖
数据仓库和数据湖是用于存储和分析大量数据的系统。它们通常与数据库进行交互,以获取和存储数据。
- ETL工具
ETL(Extract, Transform, Load)工具用于从不同的数据源提取数据,对其进行转换和清洗,然后加载到目标数据库中。
- 数据库监控和管理工具
数据库监控和管理工具用于监控数据库的性能、健康状况和安全状态。它们可以与数据库进行交互,以获取各种监控指标和日志信息。
- 数据备份和恢复工具
数据备份和恢复工具用于对数据库进行备份和恢复操作。它们可以与数据库进行交互,以获取数据库的备份数据,并在需要时将其恢复到数据库中。
- 数据安全工具
数据安全工具用于保护数据库中的数据安全。它们可以与数据库进行交互,以实现数据加密、访问控制、审计等功能。
🌿实际数据库设计
从概念到落地实施,把数据到数据库系统的相关内容抽象总结给出概念后,用代码实现软件的开发。
最关键的:
设计数据的 逻辑结构 与 存储结构 以及 现实数据转为逻辑结构的方法 (如,关系型数据库的范式)
🍂需要做啥
● 数据
需求
- 明确要研究的数据,设计数据逻辑结构与存储结构(以及是单一数据库还是多模数据库)
- 规定现实数据到逻辑数据的处理方法
- 明确数据库里的数据功能类型(关系、索引、视图…)
- …
举例:
**数据设计** - `明确要研究的数据`**需求分析:** 与业务部门沟通,明确业务需求和数据需求。**数据分类:** 将数据分类为不同的实体和属性。例如,一个电商系统可能有用户、订单、商品等实体。 - `设计数据逻辑结构与存储结构`**概念模型设计:**使用E-R图(实体-关系图)来描述数据的实体、属性和关系。实体:如用户、订单、商品。属性:如用户的姓名、订单的金额、商品的名称。关系:如用户下订单、订单包含商品。逻辑模型设计:将概念模型转换为数据库支持的数据模型,如关系模型。表设计:每个实体对应一个表,每个属性对应表中的列。关系设计:通过外键等关系约束来表示实体之间的关系。**存储结构设计:**文件组织:确定数据文件的存储方式,如堆文件、索引文件等。索引设计:设计索引以加速数据的查找操作,如B树索引、哈希索引等。分区设计:根据数据的访问模式和存储需求,设计数据分区策略,如水平分区、垂直分区等。 - `确定是单一数据库还是多模数据库`**单一数据库:**如果数据类型较为单一,且业务逻辑相对简单,可以使用单一数据库。**多模数据库:**如果数据类型多样,如既有结构化数据(关系型),又有半结构化数据(JSON)和非结构化数据(图片、文件等),则可以考虑使用多模数据库。 - `规定现实数据到逻辑数据的处理方法`**数据清洗:**去除重复数据、纠正错误数据、填补缺失数据等。**数据转换:**将现实数据转换为符合数据库逻辑结构的数据格式。**数据加载:**将清洗和转换后的数据加载到数据库中。 - `明确数据库里的数据功能类型`**关系:**通过表和外键来表示实体之间的关系。**索引:**用于加速数据的查找操作。**视图:**虚拟表,用于简化复杂的查询操作。**存储过程:**封装复杂的业务逻辑,提高代码复用性。**触发器:**在数据发生变化时自动执行的程序,用于实现数据的自动更新和校验。
● 数据库
需求
- 明确数据的组织形式
- …
举例
**数据库设计** - `明确数据的组织形式`**表设计:**设计表的结构,包括表名、列名、数据类型、约束等。**关系设计:**设计表之间的关系,如一对一、一对多、多对多关系。**规范化:**通过规范化(如1NF、2NF、3NF)来减少数据冗余,提高数据一致性。
● 数据库管理系统
需求
- 规定可以执行的操作以及其它管理、操作方法
- 设计相关软件模块(如,连接器)
- …
举例
**数据库管理系统设计** - `规定可以执行的操作以及其它管理、操作方法`CRUD操作:定义数据的增删改查(Create、Read、Update、Delete)操作。事务管理:支持事务的ACID特性(原子性、一致性、隔离性、持久性)。备份与恢复:设计数据备份和恢复策略,确保数据的安全性和可恢复性。性能优化:通过索引优化、查询优化、缓存机制等提高数据库的性能。安全机制:实现数据加密、访问控制、审计等安全功能。 - `设计相关软件模块(如,连接器)`连接器设计:设计连接器以支持应用程序与数据库的交互。JDBC:用于Java应用程序与数据库的连接。ODBC:用于多种编程语言与数据库的连接。API设计:设计RESTful API或GraphQL API等,供应用程序调用。
● 数据库系统
需求
- 给后续维护人员的维护文档
- …
举例
**数据库系统设计** - `人的维护文档`文档编写:编写详细的数据库设计文档,包括数据模型、表结构、索引设计、存储过程等。操作手册:编写数据库操作手册,包括数据备份、恢复、性能优化、安全配置等操作步骤。维护计划:制定数据库的维护计划,包括定期备份、性能监控、数据清理等。培训文档:编写数据库管理员和开发人员的培训文档,帮助他们快速掌握数据库的使用和维护方法。
🍂设计流程总结
- 需求分析 → 概念设计 → 逻辑设计 → 物理设计 → 实施 → 维护
- 需求分析:明确业务需求、数据类型、功能需求。
- 概念设计:E-R建模,实体、属性、关系。
- 逻辑设计:表结构、字段、主外键、规范化。
- 物理设计:存储结构、索引、分区、文件组织。
- 实施:编码、部署、数据迁移。
- 维护:备份、监控、优化、安全、文档。
- 从概念到落地实施,把数据到数据库系统的相关内容抽象总结给出概念后,用代码实现软件的开发。
相关优秀博文推荐
🌿实际中数据库的软件架构
🍂架构
分为客户端 与 服务器端两个部分,服务器端作为数据的存储、操作、管理的核心,而客户端只是连接到服务器端,由此获得相关操作数据的权限
● 客户端
客户端: 作用是连接到服务器,而不负责核心功能
- 位于本地,即你的PC上
- 要操纵数据库,就需要用客户端连接到数据库服务器或者直接操作服务器。而在一般开发中,开发者一般没有那么大的权限接触到服务器端,所以使用客户端连接(同时根据你的身份相关的数据库管理人员会给你分配不同的权限。比如,有的只能看,有的有权力看和更改…)
- 客户端只是起到的连接到服务器以及把请求发送给服务器接收服务器返回的内容等等,相当于服务器端数据的可视化显示,而数据本身一般不在本地里(即数据是在服务器上的)
- 一个客户端可以连接到多个数据库服务器端,而一个服务器端也支持多个客户端访问。
- 客户端的两种样式:命令行模式 和 图形化界面(图形化界面友好美观)。而大多数数据库两种界面都带了,但图形化界面不够美观,于是有第三方开发了更好看的界面(eg.Navicat),即第三方客户端的作用。同时,第三方客户端支持兼容多个不同类型数据库
- 界面对比
● 服务器端
服务器端:作用是存储、管理、操作以及其它。即服务器端才是数据库的核心,也是设计数据库时的重要实现对象。
- 在实际的工作上,服务器端必然要放在性能很好的服务器上来支持高速的数据处理。(个人PC没能力啊)同时,由于数据库一般用来管理重要数据,所以更不可能放在个人的PC上,一般是由专门的数据库管理人员来负责维护数据库以及权限的分配管理。
- 而,在练习中,会发现数据库包含了客户端与服务器端,即这两个软件都是运行在本地PC上,这是为了方便学习。而实际工作中,只用客户端就好。即只用下载客户端的部分就好。(开发厂商会给你不同的下载选择的)
🍂总结
- 在实际开发中,开发人员PC上一般只有客户端
- 而在数据库的学习中,客户端 和 服务器端这两个软件都在PC上
- 客户端只是为了与服务器端连接,实现本地和服务器的信息交互而已
🌿实际使用数据库
由上述内容可以知道数据库的设计流程以及软甲架构方法,由此我们可以继续学习,实现一个数据库软件的开发,然而在实际中,开发意味着时间与成本的投入,由此,衍生处理两种使用数据库软件的办法
🍂使用的两种思路
● 直接使用现成的数据库软件
我们熟知的MySQL、redis…,都是成熟的第三方商业化数据库软件,满足拿来稍微设置以下就能用的标准。
优点
- 第三方商业数据库软件即已经完成的数据库软件的逻辑设计和物理实现,是已经开发好的工具。由此,对于使用者来说,它省去了开发的过程已经后期维护的需要。
- 由此,只需要交钱就可以使用,省时省力。
缺点
- 由于是第三方开发好的软件,所以数据的逻辑结构和存储结构以及功能都是定好的,但数据库软件市场上局限的设计可能不满足自己的开发需求。由此,使用起来不表现太好。
- 同时,使用了第三方软件,就意味着这个部分的更新或者其它不是由自己控制的,这意味着如果第三方软件有什么变动,整个项目也可能需要跟进,这是一种被动的更新。同时也不适合安全性高的项目
● 自己开发一个数据库
即从头开始,根据自己的需要实现数据库从概念到实现的全过程,开发成本大,但软件变成了自己掌控的
优点
- 自主开发,意味着可以根据具体需要设计完全符合自己项目情况的数据库软件
- 同时,自主开发的安全性更高,且不用被动更新,追着第三方软件对齐
缺点
- 开发需要时间、成本以及技术人员,后期还要维护,是一项大工程。对小的公司反而低效率
🍂使用思路的选择标准
每个项目的侧重不同,同时企业的开发能力也有差距,最终要根据最重要的因素做出合理的取舍
步骤
**评估项目需求:**如果现成的数据库软件可以满足需求,优先选择现成的数据库软件。如果有特殊的业务需求,现成的数据库软件无法满足,考虑自开发数据库。 **评估时间和成本:**如果项目时间紧迫,预算有限,优先选择现成的数据库软件。如果项目时间充裕,预算充足,且需要高度定制化的功能,考虑自开发数据库。 **评估技术能力:**如果团队对现成的数据库软件有丰富的使用经验,优先选择现成的数据库软件。如果团队有深厚的技术背景和经验,能够处理数据库开发中的复杂问题,考虑自开发数据库。 **评估项目规模和复杂度:**对于小型项目和创业公司,优先选择现成的数据库软件。对于大型企业或复杂的项目,考虑自开发数据库。 **评估长期规划:**如果项目需要长期稳定运行,优先选择现成的数据库软件。如果项目需要高度定制化的功能,且团队有长期维护的能力,考虑自开发数据库。
相关文章:
数据库blog4_数据库软件的设计方法与实际架构
🌿数据库的设计 由上一章可以得出数据库着重关注数据的逻辑结构和存储结构。即这是数据库设计的核心,但详细的设计结构也要研究。以下是介绍 🍂数据库架构思路 ● 数据库本身 数据(Data) 数据:数据库中存储的实际信息,是用户存储…...
Kubernetes中runnable接口的深度解析与应用
在 Kubernetes 或其他 Go 项目中,runnable 接口定义了一个通用的运行契约,允许不同类型的组件通过统一的接口启动和管理生命周期。以下是详细解析: 1. 接口定义分析 type runnable interface {RunWithContext(ctx context.Context) error }关…...
curl: (35) Peer reports incompatible or unsupported protocol version.
这个错误信息表明在使用 curl 命令时遇到了 TLS 协议版本不兼容的问题。这通常是因为 curl 和服务器之间在协商 TLS 协议版本时出现了问题。在 CentOS 7 中,你可以尝试以下解决方案: 一、使用--tlsv1.2选项 尝试在 curl 命令中添加 --tlsv1.2 选项&…...
算法竞赛板子
算法竞赛板子 目录 1. ST表_区间最值_gcd_按位与_按位或 2. 树状数组 3. 快读 4. 带权并查集 5. 欧拉筛 6. 组合数 7. lucas定理求组合数 8. 离散化 9. 线形基 10. 主席树 11. 约瑟夫环 12. tarjan 求静态LCA 13. tarjan 求无向图割点 14. tarjan 求无向图割点后的连通块 15.…...
Vulkan 动态渲染
前言 开发环境:Vulkan 1.3.2 Vulkan SDK VS 2022。语言 C vulkan.hpp。依赖vk-bootstrap,SDL3。 很久以前学Vulkan学得不彻底,写引擎的时候才发现那么困难,于是重新回来巩固一下Vulkan基础。并发现了很多小细节大学问。 动态渲…...
【亲测有效】Ubuntu22.04安装黑屏重启进入系统卡死
一:进入U盘安装引导时黑屏 问题描述:选择 ‘try or install ubuntu’ ,开始安装,出现黑屏。 解决方案: 1.安装时,先选择" try or install ubuntu", 此时不要按enter,按"e&quo…...
wps编辑技巧
1、编辑模式 2、图片提取方法:右键保存图片 可以直接右键保存下来看看是否是原始图,如果歪着的图,可能保存下来是正的,直接保存试下 3、加批注...
磁盘分区与挂载——笔记
1.磁盘分区 磁盘分区是将物理磁盘划分为多个逻辑区域的过程。每个分区可视为独立的存储单元,拥有独立的文件系统,可安装不同操作系统或存放不同类型数据。例如,将硬盘分为系统盘(存放操作系统)、数据盘(存…...
安卓基础(代码解析)
Build.VERSION.SDK_INT > Build.VERSION_CODES.M && !Settings.canDrawOverlays(this) Build.VERSION.SDK_INT > Build.VERSION_CODES.M Build.VERSION.SDK_INT:获取当前Android系统的API版本号,每个Android版本都有一个对应的API版本号…...
基于Android的XX校园交流APP
开发语言:Java框架:ssmAndroidJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7数据库工具:Navicat12开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9 系统展示 APP登录 APP首页…...
tshark的使用技巧(wireshark的命令行,类似tcpdump):转换格式,设置filter
tshark的使用技巧(wireshark的命令行,类似tcpdump):转换格式,设置filter tshark一般在 C:\Program Files\Wireshark 使用管理员权限 打开cmd tshark -D 列出支持抓包的接口: c:\Program Files\Wiresh…...
TCP全连接和tcpdump抓包实现
1.全连接队列 listen函数的第二个参数backlog1,就是TCP全连接队列的长度。 客服端进行连接进入established状态后,服务器如果处于忙碌状态没有调用accept函数将连接取走,这个连接就会呆在TCP全连接队列中,直到上层调用函数accep…...
Windows安装Jenkins Jenkins打包部署
1、 start.cmd echo off title jenkins SET JENKINS_HOMED:\tools\Jenkins\home SET JAVA_HOMED:\developtools\jdk-11.0.8 D:\developtools\jdk-11.0.8\bin\java.exe -jar D:\tools\Jenkins\jenkins.war --httpPort8089 pause执行start.cmd 报错:是因为原来jdk8…...
目标检测:YOLO 模型详解
目录 一、YOLO(You Only Look Once)模型讲解 YOLOv1 YOLOv2 (YOLO9000) YOLOv3 YOLOv4 YOLOv5 YOLOv6 YOLOv7 YOLOv8 YOLOv9 YOLOv10 YOLOv11 YOLOv12 其他变体:PP-YOLO 二、YOLO 模型的 Backbone:Focus 结构 三、…...
85本适合AI入门的人工智能书籍合集免费资源
宝藏资源!分享85本适合AI初学者入门人工智能的书籍合集给大家下载,都是epub格式的,方便大家阅读,文末给大家提供免费下载方式,主要包括如下电子书: Julia机器学习核心编程:人人可用的高性能科学…...
Zabbix开源监控的全面详解!
一、zabbix的基本概述 zabbix,这款企业级监控软件,能全方位监控各类网络参数,确保企业服务架构的安全稳定运行。它提供了灵活多样的告警机制,帮助运维人员迅速发现并解决问题。此外,zabbix还具备分布式监控功能&#…...
[杂学笔记]浏览器多进程与多线程架构、wstring类型、哈希表、红黑树与哈希表的对比、C++标准库Random类
目录 1. 浏览器多进程与多线程架构 2. wstring类型 3. 哈希表 4. 红黑树与哈希表的对比 5. C标准库Random类 1. 浏览器多进程与多线程架构 现代的浏览器(如Chrome)采用的是多进程与多线程结合的架构设计的。 多进程机制:Browser主进程用…...
AI+MCP 自动发布小红书笔记
分享一个超赞的效率工具—小红书MCP发布器(xhs-mcp-server),让你轻松实现AI内容一键发布到小红书! Cursor配置 在 Cursor 的 Cursor Settings 中找到 MCP,点击右侧上方的 Add new global MCP server 按钮,…...
02_redis分布式锁原理
文章目录 一、redis如何实现分布式锁1. 使用 SETNX 命令2. 设置过期时间3. 释放锁4. 注意事项5. 示例代码 二、Java中分布式锁如何设置超时时间1. Redis分布式锁2. 基于Zookeeper的分布式锁3. 基于数据库的分布式锁注意事项 一、redis如何实现分布式锁 Redis 实现分布式锁是一…...
07SpringMVC底层形象解析
目录 一、基于餐厅比喻的代码示例 ,帮助你理解各组件间的协作关系 1. DispatcherServlet 配置(服务员) 2. HandlerMapping 配置(菜单索引) 3. Controller 实现(厨师) 4. Service 层&#x…...
jvm调优以及常见jvm问题解决等
1、通过top命令查询异常的进程 top 2、通过 使用top -Hp<PID>命令查看该进程内各个线程的CPU占用情况: top -Hp PID 记录下占用CPU较高的线程ID。 3、转换线程ID为十六进制 使用printf命令将线程ID 19664 转换为十六进制,结果为 0x4cd0࿱…...
深入理解万维网:URL、HTTP与HTML
深入理解万维网:URL、HTTP与HTML 统一资源定位符(URL) 1.1 什么是URL? 统一资源定位符URL(Uniform Resource Locator)是万维网上用于标识和定位各种文档的标准方法,它使每个资源在互联网范围内…...
RPC 协议详解、案例分析与应用场景
一、RPC 协议原理详解 RPC 协议的核心目标是让开发者像调用本地函数一样调用远程服务,其实现过程涉及多个关键组件与流程。 (一)核心组件 客户端(Client):发起远程过程调用的一方,它并不关心调…...
唯创安全优化纸业车间安全环境:门口盲区预警报警器的应用与成效
一、客户现场 客户主要从事于卷烟纸、成型纸、烟草制造业用纸及其他特定用途纸类制品的加工、生产与销售。在其厂区内,叉车频繁作业,车间环境复杂。经实地查看,发现几大安全隐患: 门口拐角隐患:门口拐角处因卷帘门阻…...
解决dedecms织梦系统{dede:arclist keyword=‘动态获取关键词‘}只生效一次
当我们通过{dede:arclist keyword关键词}来调用文章列表时,你会发现只在其中一个栏目里生效,在其他栏目,仍然显示上一次的关键词。 原因是由于arclist的缓存导致的。 只需修改/include/taglib/arclist.lib.php文件,大概在384行&a…...
高级学习算法(神经网络 决策树)
目录 神经网络 (Neural networks)神经网络的介绍需求预测 (Demand Prediction)例子:图像识别人脸识别(Face recognition)汽车分类(Car classification) 神经网络中的层更复杂的神经网络推理:前向传播 (Forw…...
labview硬件部分——温度测量
硬件连接: (1)温度测量的电压采集:(电压的单位为V) 温度采集程序图: 运行结果: 我们可以在显示控件中,看到温度采集的电压值 (2)温度采集的电压…...
labview——控制继电器模块
高电平——5V 超过一定的电压值,LED打开、继电器打开。(结合模拟电压采集与LED控制) 控制继电器是数字信号控制。程序与LED控制一致。 (1)我们先来看看继电器的控制 使用布尔按键,按键按下时࿰…...
ArcGIS Pro 3.4 二次开发 - 核心主机
环境:ArcGIS Pro SDK 3.4 .NET 8 文章目录 核心主机1 核心主机1.1 初始化核心主机 核心主机 1 核心主机 1.1 初始化核心主机 using ArcGIS.Core.Data; //必须引用 ArcGIS.CoreHost.dll using ArcGIS.Core.Hosting; class Program { //应用程序入口点必须包含 [S…...
IntelliJ IDEA 接入 DeepSeek帮助你更好编码
适配 IDEA 版本为了更好的使用插件,这里推荐使用一个代理插件——CodeGPT,CodeGPT是一个AI驱动的代码助手,旨在帮助开发者进行各种编程活动,它是GitHub Copilot、AI Assistant、Codiumate和其他JetBrains插件的强大替代品。安装之…...
如何使用Java生成pdf报告
文章目录 一、环境准备与Maven依赖说明二、核心代码解析1. 基础文档创建2. 中文字体处理3. 复杂表格创建4. 图片插入 三、完整代码示例四、最终效果 这篇主要说一下如何使用Java生成pdf,包括标题,文字,图片,表格的插入和调整等相关…...
Memory模块是agent的一个关键组件
Memory 2.6.1 简介 在Agent系统中,Memory模块是一个关键的组件,其主要功能是存储和检索信息,以支持agent的学习和决策过程。该模块模拟人类记忆的某些特征,能够动态地保存和更新信息,使agent能够利用过去的经验进行推…...
初级社会工作者考试难点总结
初级社会工作者考试难点总结 初级社会工作者(助理社会工作师)考试是进入社会工作行业的入门级资格认证,考试内容涵盖社会工作理论、实务技能及相关法规政策。虽然考试难度相对适中,但部分知识点和题型仍让考生感到棘手。本文总结…...
mapbox进阶,手写放大镜功能
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.1 ☘️mapboxgl.Map style属性二、🍀手写放大镜功能1. ☘️实现思路2. ☘️…...
EasyRTC嵌入式音视频通信SDK一对一音视频通信,打造远程办公/医疗/教育等场景解决方案
一、方案概述 数字技术发展促使在线教育、远程医疗等行业对一对一实时音视频通信需求激增。传统方式存在低延迟、高画质及多场景适配不足等问题,而EasyRTC凭借音视频处理、高效信令交互与智能网络适配技术,打造稳定低延迟通信,满足基础通信…...
微信小程序中,解决lottie动画在真机不显示的问题
api部分 export function getRainInfo() {return onlineRequest({url: /ball/recruit/getRainInfo,method: get}); }data存储json数据 data:{rainJson:{} }onLoad方法获取json数据 onLoad(options) {let that thisgetRainInfo().then((res)>{that.setData({r…...
基于Flink的数据中台管理平台
基于Flink做的数据中台工程项目。数据从source到clickhouse全流程的验证。集成元数据管、数据资产、数据发现功能,自主管理元数据变更,集成元数据版本管理。 同时,对整个大数据集群使用到的组件或者是工具进行管理。比如nacos、kafka、zookee…...
Flink-Yarn运行模式
Yarn的部署过程 Yarn上部署的过程是:客户端把Flink应用提交给Yarn的ResourceManager,Yarn的ResourceManager会向Yarn的NodeManager申请容器,在这些容器上,Flink会部署JobManager和TaskManager的实例,从而启动集群,Flin…...
Java---斐波那契那数列
一、斐波那契数列的定义与起源 1. 数学定义 斐波那契数列(Fibonacci Sequence)又称黄金分割数列,其定义为: 初始项: F(0)0F(1)1 递推公式: 当 n≥2 时,F(n)F(n−1)F(n−2) 前 10 项数列&…...
通过AIoTedge或ThingsKit物联网平台内置的Node-RED读取OPC-UA
《通过AIoTedge或ThingsKit物联网平台内置的Node-RED读取OPC-UA》 一、引言 随着工业物联网(IIoT)的快速发展,设备之间的互联互通变得至关重要。OPC-UA(Open Platform Communications Unified Architecture)作为一种…...
《大模型开源与闭源的深度博弈:科技新生态下的权衡与抉择》
开源智能体大模型的核心魅力,在于它构建起了一个全球开发者共同参与的超级协作网络。想象一下,来自世界各个角落的开发者、研究者,无论身处繁华都市还是偏远小镇,只要心怀对技术的热爱与追求,就能加入到这场技术狂欢中…...
genicamtl_lmi_gocator_objectmodel3d
目录 一、在halcon中找不到genicamtl_lmi_gocator_objectmodel3d例程二、在halcon中运行genicamtl_lmi_gocator_objectmodel3d,该如何配置三、代码分段详解(一)传感器连接四、代码分段详解(二)采集图像并显示五、代码分…...
Node.js 24发布:性能与安全双提升
在科技的迅速发展中,Node.js作为一个备受青睐的开源跨平台Java运行环境,近日迎来了其24.0版本的正式发布。此次更新不仅承诺提升性能和安全性,还为开发者提供了更为顺畅的开发体验,值得我们深入探讨。 Node.js 24.0的最大亮点之一…...
是德科技 | 单通道448G未来之路:PAM4? PAM6? PAM8?
内容来源:是德科技 随着数据中心规模的不断扩大以及AI大模型等技术的兴起,市场对高速、大容量数据传输的需求日益增长。例如,AI训练集群中GPU等设备之间的互联需要更高的传输速率来提升效率。在技术升级方面,SerDes技术的不断进步…...
Dify智能体开发实践
1.聊天助⼿:创建技术⽀持问答机器⼈,通过提示词约束回答范围并引导追问澄清。 1.提示词 (1)技术支持机器人提示词 你是一位专业的技术支持机器人,专门为公司的各类技术产品和服务提供支持。你的回答范围严格限制在以下…...
网络安全之APP渗透测试总结
1、脱壳 360免费版加固,frida-dexdump、blackdex都可以脱掉。这里就不演示了 GitHub - hluwa/frida-dexdump: A frida tool to dump dex in memory to support security engineers analyzing malware. 2、密码泄露 经过对app登录界面,有对密码强度进行…...
笔记:NAT
一、NAT 的基本概念 NAT(Network Address Translation,网络地址转换) 是一种在 IP 网络中重新映射 IP 地址的技术,主要用于解决 IPv4 地址短缺问题,同时提供一定的网络安全防护作用。 功能: 将内部网络&am…...
民锋视角下的多因子金融分析模型实践
在当前金融市场环境中,数据粒度与因子建模逐渐成为提升交易系统稳定性的重要方式。民锋长期专注于模型优化与策略深度挖掘,提出了一套适用于中短周期的数据判断体系,核心在于“多因子融合动态调权”。 具体而言,民锋的分析框架常…...
ThinkPHP 根据路由文件获取路由列表
定义一个路由变量 比如我们要获取admin的路由 $routeFile "admin.php"; 清除路由 调用 Route::clear() 方法,清除当前已定义的所有路由。 Route::clear();设置路由懒加载 调用 Route::lazy(false) 方法,禁用路由的懒加载功能,选择立即加…...
算法打卡第三天
10.长度最小的子数组 (力扣209题) 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子…...