ClickHouse安装与下载22.3.2.2

ClickHouse安装与下载


目录

1. ClickHouse简介

1.1 ClickHouse优点:

1.2 ClickHouse缺点:

1.3 ClickHouse引擎:

1.3.1 数据库引擎

1.3.2 表引擎

2. ClickHouse下载安装

2.1 ClickHouse下载安装

2.2 ClickHouse使用

1. ClickHouse简介
        ClickHouse是俄罗斯的Yandex于2016年开源的一个用于联机分析(OLAP:Online Analytical Processing)的列式数据库管理系统(DBMS:Database Management System) , 主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 ClickHouse的全称是Click Stream,Data WareHouse,简称ClickHouse

​ ClickHouse是一个完全的列式分布式数据库管理系统(DBMS),允许在运行时创建表和数据库,加载数据和运行查询,而无需重新配置和重新启动服务器,支持线性扩展,简单方便,高可靠性,容错。它在大数据领域没有走 Hadoop 生态,而是采用 Local attached storage 作为存储,这样整个 IO 可能就没有 Hadoop 那一套的局限。它的系统在生产环境中可以应用到比较大的规模,因为它的线性扩展能力和可靠性保障能够原生支持 shard + replication 这种解决方案。它还提供了一些 SQL 直接接口,有比较丰富的原生 client。

1.1 ClickHouse优点:
1.灵活的MPP架构,支持线性扩展,简单方便,高可靠性

2.多服务器分布式处理数据 ,完备的DBMS系统

3.底层数据列式存储,支持压缩,优化数据存储,优化索引数据 优化底层存储

4.容错跑分快:比Vertica快5倍,比Hive快279倍,比MySQL快800倍,其可处理的数据级别已达到10亿级别

5.功能多:支持数据统计分析各种场景,支持类SQL查询,异地复制部署

6.海量数据存储,分布式运算,快速闪电的性能,几乎实时的数据分析 ,友好的SQL语法,出色的函数支持。

1.2 ClickHouse缺点:
1.不支持事务,不支持真正的删除/更新;

2.不支持高并发,官方建议qps为100,可以通过修改配置文件增加连接数,但是在服务器足够好的情况下;

3.SQL满足日常使用80%以上的语法,join写法比较特殊;最新版已支持类似SQL的join,但性能不好;

4.尽量做1000条以上批量的写入,避免逐行insert或小批量的insert,update,delete操作,因为ClickHouse底层会不断的做异步的数据合并,会影响查询性能,这个在做实时数据写入的时候要尽量避开;

5.Clickhouse快是因为采用了并行处理机制,即使一个查询,也会用服务器一半的CPU去执行,所以ClickHouse不能支持高并发的使用场景,默认单查询使用CPU核数为服务器核数的一半,安装时会自动识别服务器核数,可以通过配置文件修改该参数。

1.3 ClickHouse引擎:
表引擎是 ClickHouse 的一大特色。可以说, 表引擎决定了如何存储表的数据。包括:

数据的存储方式和位置
支持哪些查询以及如何支持
并发数据访问
索引的使用
是否可以执行多线性请求
数据复制参数
引擎决定了数据的存储位置、存储结构、表的特征(是否修改操作DDL、DDL、是否支持并发操作)

1.3.1 数据库引擎
目前支持的数据库引擎有5种:

Ordinary:默认引擎,在绝大多数情况下我们都会使用默认引擎,使用时无须刻意声明。在此数据库下可以使用任意类型的表引擎。
Dictionary:字典引擎,此类数据库会自动为所有数据字典创建它们的数据表
Memory:内存引擎,用于存放临时数据。此类数据库下的数据表只会停留在内存中,不会涉及任何磁盘操作,当服务重启后数据会被清除
Lazy:日志引擎,此类数据库下只能使用Log系列的表引擎
MySQL:MySQL引擎,将远程的MySQL服务器中的表映射到ClickHouse中,常用语数据的合并。
MaterializeMySQL:MySQL数据同步;将MySQL数据全量或增量方式同步到clickhouse中,解决mysql服务并发访问压力过大的问题。

1.3.2 表引擎


2. ClickHouse下载安装
2.1 ClickHouse下载安装
官方下载地址:https://packages.clickhouse.com/tgz/stable
阿里云下载地址:https://mirrors.aliyun.com/clickhouse/tgz/stable

一共需要下载4个文件:
clickhouse-client-22.2.2.1.tgz
clickhouse-common-static-22.2.2.1.tgz
clickhouse-common-static-dbg-22.2.2.1.tgz
clickhouse-server-22.2.2.1.tgz

将下载后的四个安装文件上传到服务器,这里是上传到linux的/opt/software/下。

依次将这四个安装包解压,并且每解压一个,执行一下解压文件夹下的install下的doinst.sh脚本。

1. clickhouse-common-static-22.2.2.1.tgz

tar -zxvf /opt/software/clickhouse-common-static-22.2.2.1.tgz
 
./clickhouse-common-static-22.2.2.1/install/doinst.sh
2. clickhouse-common-static-dbg-22.2.2.1.tgz

tar -zxvf /opt/software/clickhouse-common-static-dbg-22.2.2.1.tgz
 
./clickhouse-common-static-dbg-22.2.2.1/install/doinst.sh
3. clickhouse-server-22.2.2.1.tgz

注意:在运行doinst.sh时,clickhouse会默认创建一个default的用户,让你设置密码,不设置密码可以按回车。

tar -zxvf /opt/software/clickhouse-server-22.2.2.1.tgz
 
./clickhouse-server-22.2.2.1/install/doinst.sh
4. clickhouse-client-22.2.2.1.tgz

tar -zxvf /opt/software/clickhouse-client-22.2.2.1.tgz
 
./clickhouse-client-22.2.2.1/install/doinst.sh
#查看 clickhouse 命令 

clickhouse --help
#启动clickhouse服务

clickhouse start
启动结果:


2.2 ClickHouse使用
连接clickhouse

clickhouse-client -u default --password 199511
连接成功结果

 clickhouse相关目录

#  命令目录
/usr/bin
ll |grep clickhouse
-------------------------------------------
# 配置文件目录
cd /etc/clickhouse-server/
-------------------------------------------
# 日志目录
cd /var/log/clickhouse-server/
-------------------------------------------
# 数据文件目录
cd /var/lib/clickhouse/
允许远程访问

clickhouse 默认不允许远程访问,需要修改配置文件:

cd /etc/clickhouse-server/
 
vi config.xml
注意:只需要把 <listen_host>::</listen_host> 这一个的注释放开即可。

重启clickhouse服务:

clickhouse restart
在浏览器输入服务器ip:8123验证一下,显示OK即代表可远程连接。

使用客户端连接clickhouse

 第一次连接需要安装驱动,根据提示操作即可安装成功。


————————————————

clickhouse 安装

clickhouse中文文档地址:
https://clickhouse.com/docs/zh/getting-started/tutorial/

1、centos安装部署

采用tgz的方式安装

官网上安装部署有比较详细的说明,具体文档地址如下,支持deb、rpm、tgz、docker等安装部署方式
https://clickhouse.com/docs/zh/getting-started/install/


tgz包下载地址:
https://packages.clickhouse.com/tgz/
https://github.com/ClickHouse/ClickHouse/releases
 

下载的版本是22.3.2.2,以此版本为例,tgz包上传到同一个目录下,执行以下操作

1

2

3

4

5

6

7

8

9

10

11

tar -xzvf "clickhouse-common-static-22.3.2.2.tgz"

sudo "clickhouse-common-static-22.3.2.2/install/doinst.sh"

tar -xzvf "clickhouse-common-static-dbg-22.3.2.2.tgz"

sudo "clickhouse-common-static-dbg-22.3.2.2/install/doinst.sh"

tar -xzvf "clickhouse-server-22.3.2.2.tgz"

sudo "clickhouse-server-22.3.2.2/install/doinst.sh"

tar -xzvf "clickhouse-client-22.3.2.2.tgz"

sudo "clickhouse-client-22.3.2.2/install/doinst.sh"

 tar -xzvf clickhouse-common-static-22.3.2.2.tgz

 tar -xzvf clickhouse-common-static-dbg-22.3.2.2.tgz

 tar -xzvf clickhouse-server-22.3.2.2.tgz

 tar -xzvf clickhouse-client-22.3.2.2.tgz

./clickhouse-common-static-22.3.2.2/install/doinst.sh

./clickhouse-common-static-dbg-22.3.2.2/install/doinst.sh

./clickhouse-server-22.3.2.2/install/doinst.sh

[root@clickhouse2 opt]# ./clickhouse-server-22.3.2.2/install/doinst.sh
ClickHouse binary is already located at /usr/bin/clickhouse
Symlink /usr/bin/clickhouse-server already exists but it points to /opt/clickhouse. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-server to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-client to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-local to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-benchmark to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-copier already exists but it points to /opt/clickhouse. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-copier to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-obfuscator to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-git-import to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-compressor to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-format to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-extract-from-config already exists but it points to /opt/clickhouse. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-extract-from-config to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-keeper to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-keeper-converter to /usr/bin/clickhouse.
Creating clickhouse group if it does not exist.
 groupadd -r clickhouse
Creating clickhouse user if it does not exist.
 useradd -r --shell /bin/false --home-dir /nonexistent -g clickhouse clickhouse
Will set ulimits for clickhouse user in /etc/security/limits.d/clickhouse.conf.
Creating config directory /etc/clickhouse-server/config.d that is used for tweaks of main server configuration.
Creating config directory /etc/clickhouse-server/users.d that is used for tweaks of users configuration.
Config file /etc/clickhouse-server/config.xml already exists, will keep it and extract path info from it.
/etc/clickhouse-server/config.xml has /var/lib/clickhouse/ as data path.
/etc/clickhouse-server/config.xml has /var/log/clickhouse-server/ as log path.
Users config file /etc/clickhouse-server/users.xml already exists, will keep it and extract users info from it.
Creating log directory /var/log/clickhouse-server/.
Creating data directory /var/lib/clickhouse/.
Creating pid directory /var/run/clickhouse-server.
 chown -R clickhouse:clickhouse '/var/log/clickhouse-server/'
 chown -R clickhouse:clickhouse '/var/run/clickhouse-server'
 chown  clickhouse:clickhouse '/var/lib/clickhouse/'
 groupadd -r clickhouse-bridge
 useradd -r --shell /bin/false --home-dir /nonexistent -g clickhouse-bridge clickhouse-bridge
 chown -R clickhouse-bridge:clickhouse-bridge '/usr/bin/clickhouse-odbc-bridge'
 chown -R clickhouse-bridge:clickhouse-bridge '/usr/bin/clickhouse-library-bridge'
Enter password for default user: 
Password for default user is saved in file /etc/clickhouse-server/users.d/default-password.xml.
Setting capabilities for clickhouse binary. This is optional.
Cannot set 'net_admin' or 'ipc_lock' or 'sys_nice' capability for clickhouse binary. This is optional. Taskstats accounting will be disabled. To enable taskstats accounting you may add the required capability later manually.
Allow server to accept connections from the network (default is localhost only), [y/N]: y
The choice is saved in file /etc/clickhouse-server/config.d/listen.xml.
 chown -R clickhouse:clickhouse '/etc/clickhouse-server'

ClickHouse has been successfully installed.

Start clickhouse-server with:
 sudo clickhouse start

Start clickhouse-client with:
 clickhouse-client --password

Created symlink from /etc/systemd/system/multi-user.target.wants/clickhouse-server.service to /etc/systemd/system/clickhouse-server.service.

./clickhouse-client-22.3.2.2/install/doinst.sh

2、启动server

关于tgz安装的时候这条命令

sudo /etc/init.d/clickhouse-server start
或:
sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml
下面这个会有执行日志,如果遇到权限问题,执行相关的权限命令:
如:sudo chown -R clickhouse:clickhouse /usr/lib

查看是否启动成功

ps -ef|grep clickhouse

命令行登录(默认没有密码)

$ clickhouse-client

3、修改密码

1

vim /etc/clickhouse-server/users.xml

  注:只读文件,退出时命令: wq!

重启服务:
systemctl restart clickhouse-server
密码登录:
clickhouse-client --password xxxx

clickhouse-client --password ecs****

登录:

默认端口 9000

4、远程访问

vim /etc/clickhouse-server/config.xml

之后重启clickhouse-server

systemctl restart clickhouse-server
防火墙:
开放 22端口:
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --zone=public --add-port=8123/tcp --permanent
重新载入一下: firewall-cmd --reload

5、修改default 用户权限:

修改default 为管理员用户:users.xml   (/etc/clickhouse-server/users.xml)下面:  vim /etc/clickhouse-server/users.xml 

里面 将<access_management>1</access_management>注释去掉,改为管理员权限,重启

systemctl restart clickhouse-server

6、修改数据目录

配置文件 

vim /etc/clickhouse-server/config.xml

 后期修改方法:

clickhouse默认数据目录在 /var/lib/clickhouse, 一般分区空间有限,需要修改。
只要停止数据库之后移走该目录再软连接回原地址,即可不修改config.xml实现对数据目录的修改。

复制代码

#先停库
sudo clickhouse stop
sudo mkdir -p /data01/ch/
#权限一定要修改否则没权限就启动不了
sudo chown -R clickhouse:clickhouse /data01/ch
sudo mv /var/lib/clickhouse /data01/ch/
#建立软连接
sudo ln -s /data01/ch/clickhouse /var/lib/clickhouse
sudo chown -R clickhouse:clickhouse /var/lib/clickhouse
sudo ls -l /var/lib/clickhouse
#启动
sudo clickhouse start

复制代码

如果启动不了,一般都是目录的权限问题,可以根据具体的报错日志来判断是哪个目录。

重启生效
systemctl restart clickhouse-server

6.3,启动服务

启动服务之前,修改config.xml,修改数据的保存地址

<!-- <path>/var/lib/clickhouse/</path> -->

<path>/u01/chbase/data/</path>

<!-- <tmp_path>/var/lib/clickhouse/tmp/</tmp_path> -->

<tmp_path>/u01/chbase/data/tmp/</tmp_path>

<!-- <user_files_path>/var/lib/clickhouse/user_files/</user_files_path> --> 

<user_files_path>/u01/chbase/data/user_files/</user_files_path>

正是由于修改了路径,所以这个目录的 OWNER 设为 clickhouse 用户

 mkdir -p /u01/chbase/data/

 mkdir -p /u01/chbase/data/tmp

 mkdir -p /u01/chbase/data/user_files

chmod -R 775 /u01/

chown -R clickhouse:clickhouse /u01/chbase/data/

clickhouse用户由安装 程序自动创建,启动脚本会基于此用户启动服务

启动有两种方式:首先是基于默认配置的启动,命令如下

cd /usr/bin

service clickhouse-server start 

7、创建用户和角色

创建角色及用户

登录client:

clickhouse-client -m --user test--password xxxxx(密码)

创建角色

复制代码

创建一个角色acaidb_rw, 该角色针对数据库acaidb具备读写权限。
CREATE ROLE acaidb_rw;
GRANT SELECT, INSERT, ALTER UPDATE, ALTER DELETE ON acaidb.* TO acaidb_rw;
如果让一个角色只允许select,不允许修改数据,下面的语句就可以。
CREATE ROLE acaidb_read;
GRANT SELECT ON acaidb.* TO acaidb_read;
创建普通账户并赋权
我们分别创建账户reader和writer,然后把只读角色ro分配给reader,把读写角色分配给writer。这样,reader拥有只读权限,writer拥有读写权限。 新建一个数据库用户acai,并设置密码(将下文的<你的密码>替换)。并给用户acai赋予读写权限角色acaidb_rw 。
CREATE USER IF NOT EXISTS acai IDENTIFIED WITH sha256_password BY '<你的密码>';
如:
CREATE USER IF NOT EXISTS testuser IDENTIFIED WITH PLAINTEXT_PASSWORD BY '12222'
GRANT acaidb_rw TO acai;
使用下列命令访问clickhouse数据,show databases得到acaidb,说明我们成功了。因为acai用户只能访问acaidb。
# clickhouse-client -m -u acai --password '<你的密码>' --query 'show databases;'

复制代码

创建记录如下:

CREATE ROLE ehrdsrw;
CREATE USER IF NOT EXISTS ehrds IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'u_2024'
GRANT ehrdsrw TO ehrds ;
create database if not exists ehrdsdb;
GRANT SELECT, INSERT, ALTER UPDATE, ALTER DELETE ON ehrdsdb.* TO ehrdsrw;
GRANT ALL ON ehrdsdb.* TO ehrds;

  8、web浏览器访问:

 前面两步做完后,可以通过 ip:8123/play 访问到clickhouse界面,然后再password处输入密码即可

1、密码问题解决:

users.xml 里面的password 不生效,删除配置文件   rm -f /etc/clickhouse-server/users.d/default-password.xml    重启

2、更全面的部署方式:

 https://zhuanlan.zhihu.com/p/522431332

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

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

相关文章

中国剩余定理——AcWing 204. 表达整数的奇怪方式

中国剩余定理 定义 中国剩余定理最早出自我国古代的《孙子算经》&#xff0c;是数论中的一个重要定理。它描述了这样一种情况&#xff1a;在模运算下&#xff0c;对于一组线性同余方程组&#xff0c;存在唯一解的条件和求解方法。 运用情况 常用于在一些涉及到按不同模的余…

安全宣传咨询日活动向媒体投稿记住这个投稿好方法

在信息爆炸的时代,作为单位的信息宣传员,我肩负着将每一次重要活动,特别是像“安全宣传咨询日”这样的公益活动,有效传达给公众的重任。这份工作看似简单,实则充满了挑战,尤其是在我初涉此领域时,那段曲折而又难忘的投稿经历,至今记忆犹新。 初探投稿之海,遭遇重重困难 起初,我…

注册安全分析报告:PingPong

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …

vscode-关闭ts与js语义校验

1.ts与js语义校验 TypeScript&#xff08;TS&#xff09;和JavaScript&#xff08;JS&#xff09;在语义校验方面有很大的不同。TypeScript是一种静态类型检查的编程语言&#xff0c;它是JavaScript的一个超集&#xff0c;为JavaScript添加了类型系统和其他一些特性。而JavaScr…

12.爬虫---PyMysql安装与使用

12.PyMysql安装与使用 1.安装 PyMySQL2.使用PyMySQL2.1创建数据表2.2连接数据库2.3增加数据2.4修改数据2.5查询数据2.6删除数据2.7关闭连接 3.总结 1.安装 PyMySQL PyMySQL是Python中用于连接MySQL数据库的库&#xff0c;安装起来非常简单。通常情况下&#xff0c;只需要在命令…

从零开始:精通基于大型语言模型(LLM)的Agent应用开发

一、引言 随着人工智能技术的飞速发展&#xff0c;大型语言模型&#xff08;Large Language Model&#xff0c;简称LLM&#xff09;已经成为自然语言处理&#xff08;NLP&#xff09;领域的核心技术之一。这些模型&#xff0c;如GPT、BERT等&#xff0c;通过大量的文本数据训练…

八个精品ETL工具,总有一款适合您的业务需求!

在数字经济高速发展的今天&#xff0c;数据的价值愈发凸显。ETL&#xff08;Extract, Transform, Load&#xff09;工具作为数据集成的关键一环&#xff0c;不仅帮助企业高效管理海量数据&#xff0c;还能为商业决策提供实时洞察。本文将深入探讨目前市场上的8款领先ETL工具&am…

Java—装饰器模式

介绍 装饰器模式 装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你动态地将行为添加到现有的对象中&#xff0c;而无需修改其代码。装饰器模式提供了比继承更灵活的功能扩展方式。 主要角色 Component&#xff1a;定义一个对…

变量不自动初始化

代码&#xff1a; /*《AVR专题精选》随书例程2.编程技巧项目&#xff1a;不对变量进行初始化文件&#xff1a;main.c说明&#xff1a;演示不对变量进行默认初始化的方法。在proteus仿真例程中&#xff0c;按下按键&#xff0c;就可以看到两个变量输出结果的变化。作者&#xf…

Python的print,input与注释的使用

1.print的使用 2.input的使用 3.如何注释 1.print的使用 1.1建立俩个变量a&#xff0c;b&#xff0c;直接把变量放在print的括号里面就会打印其的值。 1.2print可以同时打印多个&#xff0c;打印ab的值与字符串‘11’。 1.3先用chr&#xff08;&#xff09;函数去获取对应97…

剖析 Kafka 消息丢失的原因

文章目录 前言一、生产者导致的消息丢失的场景场景1&#xff1a;消息太大解决方案 &#xff1a;1、减少生产者发送消息体体积2、调整参数max.request.size 场景2&#xff1a;异步发送机制解决方案 &#xff1a;1、使用带回调函数的发送方法 场景3&#xff1a;网络问题和配置不当…

Python爬虫实战案例之——MySql数据入库

Hello大家好&#xff0c;我是你们的南枫学长&#xff0c;咱们今天来学——爬虫之MySql数据入库。 话不多说&#xff0c;导入咱们的老朋友&#xff1a; Pymysql就是我们Python里面的mysql库&#xff0c;主要功能就是用来连接MySql数据库&#xff0c;那么下载还是一样的操作去进…

自动驾驶规划-RTT* 算法 【免费获取Matlab代码】

目录 1.算法原理3.结果展示4.参考文献5.代码获取 1.算法原理 RRT(Rapidly-Exploring Random Trees) 快速随机扩展树&#xff0c;是一种单一查询路径规划算法。RRT 将根节点作为搜索的起点&#xff0c;然后通过随机撒点采样增加叶子节点的方式&#xff0c;生成一个随机扩展树&a…

STM32开发过程中碰到的问题总结 - 3

文章目录 前言1. keil5升级到最新版本使用armV6编译工具链编译不通过2. 最新的keil用Jlink调试失败3. 移动了目录后跑不起来了4. 串口兼容了GNU 和arm只会&#xff0c;编译出来的成果物&#xff0c;串口输出不正常5.STM32下哪些IO口可以作为中断触发去使用6. 触发GPIO10的外部中…

【Go语言】面向对象编程(二):通过组合实现类的继承和方法重写

通过组合实现类的继承和方法重写 要实现面向对象的编程&#xff0c;就必须实现面向对象编程的三大特性&#xff1a;封装、继承和多态。 1 封装 类的定义及其内部数据的定义可以看作是类的属性&#xff0c;基于类定义的函数方法则是类的成员方法。 2 继承 Go 语言中&#x…

数据库系统概述选择简答概念复习

目录 一、组成数据库的三要素 二、关系数据库特点 三、三级模式、二级映像 四、视图和审计提供的安全性 审计(Auditing) 视图(Views) 五、grant、revoke GRANT REVOKE 六、三种完整性 实体完整性 参照完整性 自定义完整性 七、事务的特性ACDI 原子性(Atomicity)…

大模型系列:提示词管理

既然大模型应用的编程范式是面向提示词的编程&#xff0c;需要建立一个全面且结构化的提示词库&#xff0c; 对提示词进行持续优化也是必不可少的&#xff0c;那么如何在大模型应用中更好的管理提示词呢&#xff1f; 1. 提示词回顾 提示词在本质上是向大型语言模型&#xff08;…

基于Spring Boot的工具迭代

1. 申请git权限 2. git项目中点击我的-Settings-SSH Keys添加公钥 3. 公钥生成步骤 ssh-keygen -o -t rsa -b 4096 -C "your email" cd ~/.ssh/ cat id_rsa.pub 把公钥内容粘贴到SSH Keys 4. 创建本地分支git checkout -b branchname git远程仓库创建远程分支 …

stm32f103 HAL库 HC-SR04测距

目录 一、实现测距二、添加TIM3控制LED根据距离以不同频率闪烁三、观察时序Modebus协议12路超声波雷达设计方案1. 系统架构设计2. 硬件设计3. 软件设计4. 通信协议设计5. 用户接口6. 安全和冗余7. 测试和验证8. 电源和物理封装9. 文档和支持 一、实现测距 配置时钟 配置定时器…

vue部署宝塔nginx配置(获取用户ip地址、反代理访问api接口、websocket转发)

以下配置为我自己的需求&#xff0c;因人而异&#xff0c;如果只是单纯的前端非交互页面&#xff0c;可以不用修改配置。 代码及注释&#xff0c;如下&#xff1a; #解决vue-router设置mode为history&#xff0c;去掉路由地址上的/#/后nginx显示404的问题location / {proxy_htt…