apache doris数据库搭建(一)

news2024/11/17 15:30:26

1.Doris 介绍

Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris 能够较好的满足报表分析、即席查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。

Apache Doris 最早是诞生于百度广告报表业务的 Palo 项目,2017 年正式对外开源,2018 年 7 月由百度捐赠给 Apache 基金会进行孵化,之后在 Apache 导师的指导下由孵化器项目管理委员会成员进行孵化和运营。目前 Apache Doris 社区已经聚集了来自不同行业数百家企业的 400 余位贡献者,并且每月活跃贡献者人数也超过 100 位。 2022 年 6 月,Apache Doris 成功从 Apache 孵化器毕业,正式成为 Apache 顶级项目(Top-Level Project,TLP)

Apache Doris 如今在中国乃至全球范围内都拥有着广泛的用户群体,截止目前, Apache Doris 已经在全球超过 2000 家企业的生产环境中得到应用,在中国市值或估值排行前 50 的互联网公司中,有超过 80% 长期使用 Apache Doris,包括百度、美团、小米、京东、字节跳动、腾讯、网易、快手、微博、贝壳等。同时在一些传统行业如金融、能源、制造、电信等领域也有着丰富的应用。

2.使用场景

如下图所示,数据源经过各种数据集成和加工处理后,通常会入库到实时数仓 Doris 和离线湖仓(Hive, Iceberg, Hudi 中),Apache Doris 被广泛应用在以下场景中。
在这里插入图片描述

  • 报表分析

  • 实时看板 (Dashboards)

  • 面向企业内部分析师和管理者的报表

  • 面向用户或者客户的高并发报表分析(Customer Facing
    Analytics)。比如面向网站主的站点分析、面向广告主的广告报表,并发通常要求成千上万的 QPS
    ,查询延时要求毫秒级响应。著名的电商公司京东在广告报表中使用 Apache Doris ,每天写入 100 亿行数据,查询并发QPS 上万,99 分位的查询延时 150ms。

  • 即席查询(Ad-hoc Query):面向分析师的自助分析,查询模式不固定,要求较高的吞吐。小米公司基于 Doris构建了增长分析平台(Growing Analytics,GA),利用用户行为数据对业务进行增长分析,平均查询延时 10s,95分位的查询延时 30s 以内,每天的 SQL 查询量为数万条。

  • 统一数仓构建 :一个平台满足统一的数据仓库建设需求,简化繁琐的大数据软件栈。海底捞基于 Doris 构建的统一数仓,替换了原来由
    Spark、Hive、Kudu、Hbase、Phoenix 组成的旧架构,架构大大简化。

  • 数据湖联邦查询:通过外表的方式联邦分析位于 Hive、Iceberg、Hudi 中的数据,在避免数据拷贝的前提下,查询性能大幅提升。

3.技术概述

Doris整体架构如下图所示,Doris 架构非常简单,只有两类进程

  • Frontend(FE),主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。
  • Backend(BE),主要负责数据存储、查询计划的执行。

这两类进程都是可以横向扩展的,单集群可以支持到数百台机器,数十 PB 的存储容量。并且这两类进程通过一致性协议来保证服务的高可用和数据的高可靠。这种高度集成的架构设计极大的降低了一款分布式系统的运维成本。
在这里插入图片描述在使用接口方面,Doris 采用 MySQL 协议,高度兼容 MySQL 语法,支持标准 SQL,用户可以通过各类客户端工具来访问 Doris,并支持与 BI 工具的无缝对接。

在存储引擎方面,Doris 采用列式存储,按列进行数据的编码压缩和读取,能够实现极高的压缩比,同时减少大量非相关数据的扫描,从而更加有效利用 IO 和 CPU 资源。

Doris 也支持比较丰富的索引结构,来减少数据的扫描:

  • Sorted Compound Key Index,可以最多指定三个列组成复合排序键,通过该索引,能够有效进行数据裁剪,从而能够更好支持高并发的报表场景
  • Z-order Index :使用 Z-order 索引,可以高效对数据模型中的任意字段组合进行范围查询
  • Min/Max :有效过滤数值类型的等值和范围查询
  • Bloom Filter :对高基数列的等值过滤裁剪非常有效
  • Invert Index :能够对任意字段实现快速检索

在存储模型方面,Doris 支持多种存储模型,针对不同的场景做了针对性的优化:

  • Aggregate Key 模型:相同 Key 的 Value 列合并,通过提前聚合大幅提升性能
  • Unique Key 模型:Key 唯一,相同 Key 的数据覆盖,实现行级别数据更新
  • Duplicate Key 模型:明细数据模型,满足事实表的明细存储

Doris 也支持强一致的物化视图,物化视图的更新和选择都在系统内自动进行,不需要用户手动选择,从而大幅减少了物化视图维护的代价。

在查询引擎方面,Doris 采用 MPP 的模型,节点间和节点内都并行执行,也支持多个大表的分布式 Shuffle Join,从而能够更好应对复杂查询。
在这里插入图片描述Doris 查询引擎是向量化的查询引擎,所有的内存结构能够按照列式布局,能够达到大幅减少虚函数调用、提升 Cache 命中率,高效利用 SIMD 指令的效果。在宽表聚合场景下性能是非向量化引擎的 5-10 倍。
在这里插入图片描述Doris 采用了 Adaptive Query Execution 技术, 可以根据 Runtime Statistics 来动态调整执行计划,比如通过 Runtime Filter 技术能够在运行时生成 Filter 推到 Probe 侧,并且能够将 Filter 自动穿透到 Probe 侧最底层的 Scan 节点,从而大幅减少 Probe 的数据量,加速 Join 性能。Doris 的 Runtime Filter 支持 In/Min/Max/Bloom Filter。

在优化器方面 Doris 使用 CBO 和 RBO 结合的优化策略,RBO 支持常量折叠、子查询改写、谓词下推等,CBO 支持 Join Reorder。目前 CBO 还在持续优化中,主要集中在更加精准的统计信息收集和推导,更加精准的代价模型预估等方面。

4.下载 Doris

Doris 运行在 Linux 环境中,推荐 CentOS 7.x 或者 Ubuntu 16.04 以上版本,同时你需要安装 Java 运行环境(JDK最低版本要求是8),要检查你所安装的 Java 版本,请运行以下命令:

java -version

接下来,下载 Doris 稳定版本1.2.5二进制版本,然后解压。

wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-1.2.5-bin-x86_64.tar.xz

操作如下图
在这里插入图片描述 使用如下命令进行解压

tar xvf apache-doris-1.2.5-bin-x86_64.tar.xz

操作如下图
在这里插入图片描述

5.配置 Doris

配置 FE

我们进入到 apache-doris-1.2.5-bin-x86_64/fe 目录

cd apache-doris-1.2.5-bin-x86_64/fe/

操作如下图
在这里插入图片描述
修改 FE 配置文件 conf/fe.conf ,这里我们主要修改两个参数:priority_networks 及 meta_dir ,如果你需要更多优化配置,请参考 FE 参数配置说明,进行调整。

  1. 添加 priority_networks 参数
priority_networks= 192.168.50.186/24

使用如下命令进行添加:

 vim conf/fe.conf #编辑
 :wq #保存退出

在这里插入图片描述

注意:

这个参数我们在安装的时候是必须要配置的,特别是当一台机器拥有多个IP地址的时候,我们要为 FE 指定唯一的IP地址。

这里本机节点 IP 是 192.168.50.186,那么我们可以通过掩码的方式配置为 192.168.50.186/24。

  1. 添加元数据目录
meta_dir=/data/doris-meta

首先本机选择在data目录下进行创建,使用如下命令:

mkdir -p /data/doris-meta #创建元数据目录
cd /data/doris-meta #进入已经创建好目录进行验证
pwd #查看目录结构

操作如下图所示:
在这里插入图片描述
然后进入fe目录并且在对应fe.conf文件中添加meta_dir= /data/doris-meta,具体操作命令如下:

cd /data/apache-doris-1.2.5-bin-x86_64/fe/
vim conf/fe.conf #编辑
:wq #保存退出

操作如下图所示:
在这里插入图片描述
注意:
这里你可以不配置,默认是在你的Doris FE 安装目录下的 doris-meta,

单独配置元数据目录,需要你提前创建好你指定的目录

启动 FE

在 FE 安装目录下执行下面的命令,来完成 FE 的启动。

./bin/start_fe.sh --daemon

查看 FE 运行状态

你可以通过下面的命令来检查 Doris 是否启动成功

curl http://192.168.50.186:8030/api/bootstrap

这里 IP 和 端口分别是 FE 的 IP 和 http_port(默认8030),如果是你在 FE 节点执行,直接运行上面的命令即可。

如果返回结果中带有 “msg”:“success” 字样,则说明启动成功。

你也可以通过 Doris FE 提供的Web UI 来检查,在浏览器里输入地址

http:// fe_ip:8030

可以看到下面的界面,说明 FE 启动成功
在这里插入图片描述
注意:

这里我们使用 Doris 内置的默认用户 root 进行登录,密码是空
这是一个 Doris 的管理界面,只能拥有管理权限的用户才能登录,普通用户不能登录。

连接 FE

我们下面通过 MySQL 客户端来连接 Doris FE,下载免安装的 MySQL 客户端

解压刚才下载的 MySQL 客户端,在 bin/ 目录下可以找到 mysql 命令行工具。然后执行下面的命令连接 Doris。

mysql -uroot -P9030 -h192.168.50.186

操作如下图所示:
在这里插入图片描述
注意:

  1. 这里使用的 root 用户是 doris 内置的默认用户,也是超级管理员用户,具体的用户权限查看 权限管理
  2. -P :这里是我们连接 Doris 的查询端口,默认端口是 9030,对应的是fe.conf里的 query_port
  3. -h : 这里是我们连接的 FE IP地址,如果你的客户端和 FE 安装在同一个节点可以使用127.0.0.1。

执行下面的命令查看 FE 运行状态

show frontends\G;

然后你可以看到类似下面的结果:
在这里插入图片描述 如果 IsMaster、Join 和 Alive 三列均为true,则表示节点正常。

加密连接 FE

Doris支持基于SSL的加密连接,当前支持TLS1.2,TLS1.3协议,可以通过以下配置开启Doris的SSL模式: 修改FE配置文件conf/fe.conf,添加enable_ssl = true即可。

接下来通过mysql客户端连接Doris,mysql支持五种SSL模式:

1.mysql -uroot -P9030 -h127.0.0.1与mysql --ssl-mode=PREFERRED -uroot -P9030 -h127.0.0.1一样,都是一开始试图建立SSL加密连接,如果失败,则尝试使用普通连接。

2.mysql --ssl-mode=DISABLE -uroot -P9030 -h127.0.0.1,不使用SSL加密连接,直接使用普通连接。

3.mysql --ssl-mode=REQUIRED -uroot -P9030 -h127.0.0.1,强制使用SSL加密连接。

4.mysql --ssl-mode=VERIFY_CA --ssl-ca=ca.pem -uroot -P9030 -h127.0.0.1,强制使用SSL加密连接,并且通过指定CA证书验证服务端身份是否有效。

5.mysql --ssl-mode=VERIFY_CA --ssl-ca=ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem -uroot -P9030 -h127.0.0.1,强制使用SSL加密连接,双向验证。

注意: --ssl-mode参数是mysql5.7.11版本引入的,低于此版本的mysql客户端请参考这里。

Doris开启SSL加密连接需要密钥证书文件验证,默认的密钥证书文件位于Doris/fe/mysql_ssl_default_certificate/下。密钥证书文件的生成请参考密钥证书配置。

停止 FE 节点

Doris FE 的停止可以通过下面的命令完成

./bin/stop_fe.sh

配置 BE

我们进入到 apache-doris-1.2.5-bin-x86_64/be 目录

cd /data/apache-doris-1.2.5-bin-x86_64/be

修改 BE 配置文件 conf/be.conf ,这里我们主要修改两个参数:priority_networks 及 storage_root ,如果你需要更多优化配置,请参考 BE 参数配置说明,进行调整。

  1. 添加 priority_networks 参数
priority_networks=192.168.50.186/24

使用如下命令:

 vim conf/be.conf #编辑
 :wq #保存退出

操作如下图所示
在这里插入图片描述在这里插入图片描述
注意:

这个参数我们在安装的时候是必须要配置的,特别是当一台机器拥有多个IP地址的时候,我们要为 BE 指定唯一的IP地址。

  1. 配置 BE 数据存储目录
storage_root_path=/data/data_dir

使用如下命令:

 mkdir -p /data/data_dir
 vim conf/be.conf #编辑
 :wq #保存退出

操作如下图所示
在这里插入图片描述在这里插入图片描述

注意:

默认目录在 BE安装目录的 storage 目录下。
BE 配置的存储目录必须先创建好

  1. 配置 JAVA_HOME 环境变量
    注意: 本服务器已经配置,如果需要配置教程,请查看笔者的JDK安装文章
    由于从 1.2 版本开始支持 Java UDF 函数,BE 依赖于 Java 环境。所以要预先配置 JAVA_HOME 环境变量,也可以在 start_be.sh 启动脚本第一行添加 export JAVA_HOME=your_java_home_path 来添加环境变量。
  2. 安装 Java UDF 函数
    安装Java UDF 函数因为从1.2 版本开始支持Java UDF 函数,需要从官网下载 Java UDF 函数的 JAR 包放到 BE 的 lib 目录下,否则可能会启动失败。

启动 BE

在 BE 安装目录下执行下面的命令,来完成 BE 的启动。

./bin/start_be.sh --daemon

注意: 启动如果提示Please set vm.max_map_count to be 2000000 under root using ‘sysctl -w vm.max_map_count=2000000’.Please set the maximum number of open file descriptors to be 65536 using ‘ulimit -n 65536’. 请执行如下命令:

sysctl -w vm.max_map_count=2000000
ulimit -n 65536

For example, if your CPU does not support AVX2, you need to rebuild the Doris BE with: USE_AVX2=0 sh 请执行命令下载:wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-1.2.5-bin-x86_64-noavx2.tar.xz 下载 noavx2 版本,切记提前查看自己的cpu是否支持 AVX2 指令
操作如下图所示:
在这里插入图片描述
注意: 在没有添加BE节点采用navicat、datagrip等工具进行链接会报 [HY000][1105] errCode = 2, detailMessage = There is no scanNode Backend available… and 1 duplicate reports 错误。这时候需要添加BE节点到集群;切记这时候命令行是可正常操作和连接的。

添加 BE 节点到集群

通过MySQL 客户端连接到 FE 之后执行下面的 SQL,将 BE 添加到集群中

ALTER SYSTEM ADD BACKEND "192.168.50.186:9050";

命令解释

ALTER SYSTEM ADD BACKEND "be_host_ip:heartbeat_service_port";

be_host_ip:这里是你 BE 的 IP 地址,和你在 be.conf 里的 priority_networks 匹配
heartbeat_service_port:这里是你 BE 的心跳上报端口,和你在 be.conf 里的 heartbeat_service_port 匹配,默认是 9050。

查看 BE 运行状态

你可以在 MySQL 命令行下执行下面的命令查看 BE 的运行状态。

SHOW BACKENDS\G

结果如下:

*************************** 1. row ***************************
              BackendId: 10003
                Cluster: default_cluster
                     IP: 192.168.50.186
          HeartbeatPort: 9050
                 BePort: 9060
               HttpPort: 8040
               BrpcPort: 8060
          LastStartTime: 2023-06-26 15:58:19
          LastHeartbeat: 2023-06-26 15:58:38
                  Alive: true
   SystemDecommissioned: false
  ClusterDecommissioned: false
              TabletNum: 0
       DataUsedCapacity: 0.000
          AvailCapacity: 458.121 GB
          TotalCapacity: 491.151 GB
                UsedPct: 6.73 %
         MaxDiskUsedPct: 6.73 %
     RemoteUsedCapacity: 0.000
                    Tag: {"location" : "default"}
                 ErrMsg:
                Version: doris-1.2.5-rc01-Unknown
                 Status: {"lastSuccessReportTabletsTime":"2023-06-26 15:58:27","lastStreamLoadTime":-1,"isQueryDisabled"
:false,"isLoadDisabled":false}
HeartbeatFailureCounter: 0
               NodeRole: mix
1 row in set (0.10 sec)

1 row in set (0.10 sec)

注意: 这时候可以用navicat选择mysql等工具连接进行管理操作了

  1. Alive : true表示节点运行正常

停止 BE 节点

Doris BE 的停止可以通过下面的命令完成

./bin/stop_be.sh

创建数据表

  1. 创建一个数据库
create database demo;
  1. 创建数据表
use demo;

CREATE TABLE IF NOT EXISTS demo.example_tbl
(
    `user_id` LARGEINT NOT NULL COMMENT "用户id",
    `date` DATE NOT NULL COMMENT "数据灌入日期时间",
    `city` VARCHAR(20) COMMENT "用户所在城市",
    `age` SMALLINT COMMENT "用户年龄",
    `sex` TINYINT COMMENT "用户性别",
    `last_visit_date` DATETIME REPLACE DEFAULT "1970-01-01 00:00:00" COMMENT "用户最后一次访问时间",
    `cost` BIGINT SUM DEFAULT "0" COMMENT "用户总消费",
    `max_dwell_time` INT MAX DEFAULT "0" COMMENT "用户最大停留时间",
    `min_dwell_time` INT MIN DEFAULT "99999" COMMENT "用户最小停留时间"
)
AGGREGATE KEY(`user_id`, `date`, `city`, `age`, `sex`)
DISTRIBUTED BY HASH(`user_id`) BUCKETS 1
PROPERTIES (
    "replication_allocation" = "tag.location.default: 1"
);

这时候可以给表中添加对应的数据,navicat连接如下图所示:
在这里插入图片描述

修改数据库密码

使用如下命令进行修改数据库密码:

ALTER USER root IDENTIFIED BY "12345";

已经修改无法登陆,密码为12345,输入密码登录成功
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
本片搭建到此结束,下篇在此基础上进行搭建集群模式,其实很简单的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/687614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

活动打卡报名小程序开源版开发

活动打卡报名小程序开源版开发 活动打卡报名小程序开源版的功能可以包括以下几个方面: 活动列表展示:展示所有的活动信息,包括活动名称、时间、地点、报名人数等。活动详情展示:点击活动列表中的某个活动,可以查看该…

Unity3D 连接MySQL数据库

1、MySQL下载安装运行 详见:MySQL下载安装运行 2、使用mysql-connector-net (1)官方下载地址:https://downloads.mysql.com/archives/c-net/,下载后直接双击安装即可。 提示:不要使用版本过高的connect…

【FAQ】关于华为地图服务定位存在偏差的原因及解决办法(二)——仅适用于Location 6.7.0.300及之后的版本

一、 问题描述: 华为地图服务“我的位置”能力,在中国大陆地区,向用户展示他们在地图上的当前位置与用户的实际位置存在较大的偏差。 具体差别可以查看下方的图片: 二、 偏差较大的原因: 华为Map SDK在中国大陆使用的…

【YOLO系列】YOLOX(含代码解析)

文章目录 环境配置demo测试转换成onnx YOLOX数据增广decoupled headAnchor-free标签分配get_geometry_constraintSimOTA 总结参考 【YOLO系列】YOLO v3(网络结构图代码) 【YOLO 系列】YOLO v4-v5先验知识 【YOLO系列】YOLO v4(网络结构图代码…

2023年MathorCup 高校数学建模挑战赛-A 题 量子计算机在信用评分卡组合优化中的应用-思路详解(模型代码答案)

一、题目简析 运筹优化类题目,不同于目标规划,该题限制了必须使用量子退火算法QUBO来进行建模与求解。本身题目并不难,但是该模型较生僻,给出的参考文献需要耗费大量时间去钻研。建议擅长运筹类题目且建模能力强的队伍选择。 二…

用C语言进行学生成绩排序(插入排序算法)

一.排序算法 1.排序 从今天开始我们就要开始学习排序算法啦! 排序,就是重新排列表中的元素,使表中的元素满足按关键字有序的过程。为了查找方便,通常希望计算机中的表是按关键字有序的。 2.稳定性 除了我们之前了解的时间复杂度和空间复…

基于springboot+Redis的前后端分离项目之分布式锁(四)-【黑马点评】

🎁🎁资源文件分享 链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwdeh11 提取码:eh11 分布式锁 分布式锁1 、基本原理和实现方式对比2 、Redis分布式锁的实现核心思路3 、实现分布式锁版本一4 、Redis分布式锁误删情况…

S3版本控制,复制和生命周期配置

Hello大家好。 在本课时我们将讨论S3的三个功能特性,这三个特性有一些相关性,即版本控制,复制和生命周期配置。 S3版本控制 首先版本控制,是将对象的多个版本保存在同一存储桶的方法。换句话说,您上传一个对…

数据结构--顺序表的查找

数据结构–顺序表的查找 顺序表的按位查找 目标: GetElem(L,i):按位查找操作。获取表L中第i个位置的元素的值。 代码实现 #define MaxSize 10 typedef struct {ElemType data[MaxSize];int len; }Sqlist;ElemType GetElem(Sqlist L, int i) {return L.data[i-1]…

海外问卷调查项目可靠吗?是违法的吗?

可靠。 最近,一个备受瞩目的创业项目在社会上引起了广泛关注,这个项目集创业、全职和兼职于一体,被称为"海外问卷调查项目",成为了无数人追逐的新选择。 然而,自中美贸易摩擦以来,中国人对&quo…

使用CloudOS快速实现K8S容器化部署

关于容器技术 容器技术(以docker和Kubernetes为代表)呱呱坠地到如今,在国内经历了如下3个阶段: 婴儿期:2014-2016年的技术探索期; 少儿期:2017-2018年的行业试水期; 少年期&…

1.设计模式之七大原则和介绍

0.为什么我要学习设计模式呢? 我发现mysql的jdbc有factory有工厂模式(编程思想,不指定语言都可以用) mq有一个QueueBuilder().setArg().xxx().build建造者模式,单例模式貌似也遇到过,前端也遇到了好几个设计模式的问题,比如prototype深拷贝和浅拷贝 所以我决定系统的学习一下设…

TC8:SOMEIP_ETS_004-005

SOMEIP_ETS_004: Burst_Test 目的 检查DUT是否可以在短时间内处理突发请求并返回所有请求的响应 测试步骤 Tester:新建有效SOME/IP消息Tester:使用method echoUINT8发送突发SOME/IP Request消息DUT:返回每个请求消息的响应消息期望结果 3、DUT:返回每个请求消息的响应消息…

学redis这一篇就够了

目录 1.下载安装启动 1.1 临时启动服务 2.2 默认服务安装 2.常用五大基本数据类型 2.1 key操作 2.2 字符串(String) 2.3 列表(List) 2.4 Set(集合) 2.5 Hash(哈希) 2.6 Zs…

分离表示学习:通用图像融合框架

IFSepR: A General Framework for Image Fusion Based on Separate Representation Learning (IFSepR:一种基于分离表示学习的通用图像融合框架) 提出了一种基于分离表示学习的图像融合框架IFSepR。我们认为,基于先验知识的共模…

Fast Segment Anything Model(FastSAM)

Fast Segment Anything Model(FastSAM) Fast Segment Anything Model(FastSAM)是一个仅使用SAM作者发布的SA-1B数据集的2%进行训练的CNN Segment Anything模型。FastSAM在50倍的运行速度下实现了与SAM方法相当的性能。 SAM代码&a…

pubg 依赖安装

一、安装python 1、进入官网 https://www.python.org/ 2、勾选Add python.exe to PTHA 3、自定义下载 测试和文档不需要勾选,然后next 4、自定义安装路径 点击install安装 安装成功,点击close。 5、测试 windr键,输入cmd 输入python回…

基于SSM的餐厅点餐系统设计与实现(Java+MySQL)

目 录 第一章 绪论 1 1.1系统研究背景和意义 1 1.2研究现状 1 1.3论文结构 2 第二章 相关技术说明 3 2.1 JSP(Java Server Page)简介 3 2.2 Spring框架简介 4 2.3 Spring MVC框架简介 5 2.4 MyBatis 框架简介 5 2.4 MySql数据库简介 5 2.6 Tomcat简介 6 2.7 jQuery简介 7 2.8系…

计算机毕业论文内容参考|基于大数据的信息物理融合系统的分析与设计方法

文章目录 导文摘要前言绪论课题背景国内外现状与趋势:课题内容:相关技术与方法介绍:系统架构设计:数据采集与处理:数据存储与管理:数据分析与挖掘:系统优化与调试:应用场景:挑战与机遇:研究方向:系统分析:系统设计:系统实现:系统测试:总结与展望:

SpringBoot原理(1)--@SpringBootApplication注解使用和原理/SpringBoot的自动配置原理详解

文章目录 前言主启动类的配置SpringBootConfiguration注解验证启动类是否被注入到spring容器中 ComponentScan 注解ComponentScan 注解解析与路径扫描 EnableAutoConfiguration注解 问题解答1.AutoConfigurationPackage和ComponentScan的作用是否冲突起因回答 2.为什么能实现自…