Apache-Hive数据库使用学习

前期准备

Hadoop-分布式部署(服务全部在线)

Mysql-node1节点部署(确认安装正常)

apache-hive -node1节点部署(需要与MySQL元数据联动存储)

参考博客:

Hadoop

Hadoop集群搭建-完全分布式_hadoop完全分布式搭建-CSDN博客

2024海南省大数据应用技术高校教师培训-Hadoop集群部署_hadoop师资培训-CSDN博客

Mysql

MySQL安装配置-5.7.25版本_mysql5.7.25-CSDN博客

Centos7-rpm包管理器方式安装MySQL 5.7.25及开启root用户远程连接-弱密码登录-CSDN博客

rpm安装MySQL包出现的文件冲突解决_rpm版本冲突-CSDN博客

Apache-Hive

大数据Hive组件安装-元数据库联动Mysql_hadoop hive 安装-CSDN博客

大数据Hive安装与配置_hadoop的hive怎么登陆-CSDN博客

其他组件

Flume安装配置-CSDN博客

Centos7安装sqoop1.4.7超详细教程-CSDN博客

ZooKeeper安装配置--集群模式-CSDN博客


一,基础操作

1,查看/创建/删除hive中的数据库

(1)查看hive中有多少个数据库

SHOW DATABASES;

(2)在hive中创建一个数据库

CREATE DATABASE IF NOT EXISTS test6;

IF NOT EXISTS 可以避免在数据库已存在时报错。
test6  是库名

查看是否创建数据库成功

SHOW DATABASES;

创建成功。

(3)删除数据库

DROP DATABASE IF EXISTS test6;


 2,查看/创建/删除数据库中的表

(1)进入/使用test数据库

USE test;

(2)查看test数据库中所有的表

SHOW TABLES;

之前测试过创建表,所以OK值下面会有一个表,如果是新的数据库,是没有这个表的,只会返回OK值,如新创建一个test3数据库,进入查看:

(3)创建测试表test_table2

假设给定几个字段,要求在创建表时增加进去:

表名:test_table

字段:时间,国家,省份,性别,联网设备,是否成年

假设数据类型如下:

  • 时间STRING(也可以根据具体需求设置为 TIMESTAMP 类型)
  • 国家STRING
  • 省份STRING
  • 性别STRING
  • 联网设备INT(假设该字段记录设备数量)
  • 是否成年BOOLEAN
  • 假设表的存储格式为 ORC,示例如下:
CREATE TABLE IF NOT EXISTS test_table2 (`time` STRING,country STRING,province STRING,gender STRING,devices INT,is_adult BOOLEAN
)
STORED AS ORC;
  • ROW FORMAT DELIMITED FIELDS TERMINATED BY ',':指定以逗号作为字段分隔符。
  • STORED AS ORC:指定使用 ORC 格式存储数据。

如果需要其他格式或者分隔符,可以进行相应调整。

查看是否创建成功

SHOW TABLES;

(4)删除测试表test_table2

DROP TABLE IF EXISTS test_table2;

查看是否删除完成

SHOW TABLES;

完成。


3,查看/增加/删除表中字段

(1)查看表结构

DESCRIBE test_table;

可以看到表中有一个字段time_column,类型为string 

查看详细结构信息

DESCRIBE FORMATTD test_table;

(2)增加表中数据

举例:

在test_table表中增加邮箱字段。

ALTER TABLE test_table ADD COLUMNS (email STRING COMMENT 'Email Address');

查看

DESCRIBE FORMATTD test_table;

增加成功。

(3)修改表中字段。

示例:

把test_table表中的email字段改为email_table2,类型string不变。

ALTER TABLE test_table CHANGE email email_table2 STRING;

(4)删除表中字段

Hive 不支持直接删除字段,可以通过以下方式实现:

  1. 创建一个新的表,不包括需要删除的字段。
  2. 将原表中的数据插入到新的表中。
  3. 删除原表,并将新表重命名为原表名。

示例:

1. 创建新表,保留所需字段:time_column, email_table2

CREATE TABLE test3_table AS
SELECT time_column, email_table2
FROM test_table;

查看是否执行完成:

SHOW TABLES;

执行日志:

hive> CREATE TABLE test3_table AS> SELECT time_column, email_table2> FROM test_table;
2024-11-05T23:08:44,344 INFO [main] org.apache.hadoop.hive.conf.HiveConf - Using the default value passed in for log id: a0e610d6-9cab-473f-b04f-f539de818377
2024-11-05T23:08:44,344 INFO [main] org.apache.hadoop.hive.ql.session.SessionState - Updating thread name to a0e610d6-9cab-473f-b04f-f539de818377 main
2024-11-05T23:08:44,520 INFO [a0e610d6-9cab-473f-b04f-f539de818377 main] org.apache.hadoop.hive.common.FileUtils - Creating directory if it doesn't exist: hdfs://node1:8020/user/hive/warehouse/test.db/.hive-staging_hive_2024-11-05_23-08-44_402_1029558810549486972-1
Query ID = root_20241105230844_1f4afcb5-d5fb-4057-a42a-c36597c03a35
Total jobs = 3
Launching Job 1 out of 3
Number of reduce tasks is set to 0 since there's no reduce operator
2024-11-05T23:08:47,405 INFO [a0e610d6-9cab-473f-b04f-f539de818377 main] org.apache.hadoop.conf.Configuration.deprecation - mapred.submit.replication is deprecated. Instead, use mapreduce.client.submit.file.replication
2024-11-05T23:09:38,078 INFO [a0e610d6-9cab-473f-b04f-f539de818377 main] org.apache.hadoop.conf.Configuration.deprecation - yarn.resourcemanager.system-metrics-publisher.enabled is deprecated. Instead, use yarn.system-metrics-publisher.enabled
2024-11-05T23:09:40,426 INFO [a0e610d6-9cab-473f-b04f-f539de818377 main] org.apache.hadoop.conf.Configuration - resource-types.xml not found
Starting Job = job_1730818870875_0001, Tracking URL = http://node1:8088/proxy/application_1730818870875_0001/
Kill Command = /export/server/hadoop-3.3.0/bin/mapred job  -kill job_1730818870875_0001
Hadoop job information for Stage-1: number of mappers: 0; number of reducers: 0
2024-11-05 23:10:24,063 Stage-1 map = 0%,  reduce = 0%
Ended Job = job_1730818870875_0001
Stage-4 is selected by condition resolver.
Stage-3 is filtered out by condition resolver.
Stage-5 is filtered out by condition resolver.
Moving data to directory hdfs://node1:8020/user/hive/warehouse/test.db/.hive-staging_hive_2024-11-05_23-08-44_402_1029558810549486972-1/-ext-10002
Moving data to directory hdfs://node1:8020/user/hive/warehouse/test.db/test3_table
MapReduce Jobs Launched: 
Stage-Stage-1:  HDFS Read: 0 HDFS Write: 0 SUCCESS
Total MapReduce CPU Time Spent: 0 msec
OK
Time taken: 109.25 seconds
2024-11-05T23:10:33,809 INFO [a0e610d6-9cab-473f-b04f-f539de818377 main] org.apache.hadoop.hive.conf.HiveConf - Using the default value passed in for log id: a0e610d6-9cab-473f-b04f-f539de818377
2024-11-05T23:10:33,809 INFO [a0e610d6-9cab-473f-b04f-f539de818377 main] org.apache.hadoop.hive.ql.session.SessionState - Resetting thread name to  main
hive> 

2,删除原表

DROP TABLE test_table;

3. 将新表test3_table重命名为原表名test5_table

ALTER TABLE test3_table RENAME TO test5_table;

增删改的注意事项

  • 如果表中的数据量非常大,重建表的方式可能会花费较多的资源和时间。
  • 执行删除操作前,最好备份数据,确保数据安全。

(5)查看表中字段下的数据

以随机一个数据文件做演示

列出全部字段及记录

语句会返回hyxx_table表的全部记录,包含所有字段的信息

hive> SELECT *> FROM hyxx_table> LIMIT ;

列出表中所有字段和前10条记录

以下语句会返回hyxx_table表的前10条记录,包含所有字段的信息

SELECT *
FROM hyxx_table
LIMIT 10;

列出特定字段的前10条记录

        在Hive中,可以使用SELECT语句来查看特定字段的数据。假设要查看hyxx_table表中某些字段的内容,例如查看会员卡号、会员等级和注册时间,可以使用以下SQL语句:

SELECT member_card_number, member_level, registration_time
FROM hyxx_table
LIMIT 10;


二,进阶操作

1. 分区(Partition)管理

       分区是Hive提高查询效率的重要机制。它将数据按指定列(如日期)划分到不同的目录中,从而加速数据查询。

创建分区表

示例:

创建一个分区表,字段为id INT,name STRING ,year INT,month INT

CREATE TABLE partitioned_table (id INT,name STRING
) PARTITIONED BY (year INT, month INT);

查看

添加分区

ALTER TABLE partitioned_table ADD PARTITION (year=2024,month=10);

查询分区

SELECT * FROM partitioned_table WHERE year = 2024 AND month = 10;

删除分区

ALTER TABLE partitioned_table DROP PARTITION (year=2024, month=10);

2. 桶(Bucketing)管理

       桶将数据分散到多个文件中,以提高查询性能,尤其是当你需要按某个列进行散列分布时。桶可以配合分区使用。

创建桶表

CREATE TABLE bucketed_table (id INT,name STRING
) CLUSTERED BY (id) INTO 4 BUCKETS;

查看

查询桶表

SELECT * FROM bucketed_table;

3. 视图(View)

       视图是一个虚拟的表,它并不存储数据,而是存储查询定义。通过视图,可以简化复杂查询的执行。

创建视图

CREATE VIEW view_name AS
SELECT id, name FROM partitioned_table  WHERE year = 2024;

查询视图

SELECT *FROM view_name;

 查看

删除视图

DROP VIEW view_name;

4. 外部表(External Table)

       外部表指的是数据存储在外部文件系统中(如HDFS、S3等),Hive不会管理数据的生命周期。它适用于数据频繁更新的场景。

创建外部表

示例,这里的外部表存储在hdfs的tmp目录下,数据接口:hdfs://node1:8020/tmp/

CREATE EXTERNAL TABLE external_table (
id INT,
name STRING
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION 'hdfs://node1:8020/tmp/';

查看外部表

SHOW TABLES;

查看表结构/细节

DESCRIBE FORMATTED external_table;

删除外部表

DROP TABLE external_table;

5. 窗口函数(Window Functions)

       窗口函数允许你在查询结果的某些行之间执行计算,而无需使用GROUP BY。常见的窗口函数有ROW_NUMBER()RANK()LEAD()LAG()等。

示例:使用ROW_NUMBER()对每个分组进行排序
SELECT id, name, ROW_NUMBER() OVER (PARTITION BY year ORDER BY id) AS row_num
FROM partitioned_table;

6. JOIN操作

     Hive支持各种类型的JOIN操作,包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)、全连接(FULL OUTER JOIN)等。

示例:内连接(INNER JOIN)

SELECT a.id, a.name, b.department
FROM employees a
JOIN departments b
ON a.department_id = b.id;

示例:左连接(LEFT JOIN)

SELECT a.id, a.name, b.department
FROM employees a
LEFT JOIN departments b
ON a.department_id = b.id;

7. 子查询(Subqueries)

Hive也支持在SELECTWHEREFROM等子句中使用子查询。

示例:在SELECT中使用子查询

SELECT id, name,(SELECT MAX(salary) FROM salary_table WHERE employee_id = employees.id) AS max_salary
FROM employees;

示例:在WHERE中使用子查询

SELECT * FROM employees
WHERE department_id IN (SELECT id FROM departments WHERE name = 'Engineering');

8. 用户定义函数(UDF)

       Hive支持用户定义函数(UDF),允许你使用自定义的Java代码扩展Hive的功能。通过UDF可以处理一些标准SQL不支持的操作。

注册UDF

ADD JAR /path/to/udf.jar;
CREATE TEMPORARY FUNCTION my_udf AS 'com.example.MyUDF';

使用UDF

SELECT my_udf(column_name) FROM table_name;

9. 事务支持

      Hive从0.13版本开始支持ACID(原子性、一致性、隔离性和持久性)事务,但仅适用于支持ORC格式的表。

创建支持事务的表

CREATE TABLE transaction_table (id INT,name STRING
) STORED AS ORC TBLPROPERTIES ('transactional'='true');

启用事务

SET hive.support.concurrency=true;
SET hive.enforce.bucketing=true;
SET hive.exec.dynamic.partition.mode=nonstrict;

10. 数据导入与导出

      Hive支持将数据导入和导出到各种存储系统中,例如HDFS、Local File System、Amazon S3等。

从本地文件系统导入数据

hyxx.txt数据集为随机生成,内容为:

会员卡号	                        会员等级	会员来源	  注册时间	    所属店铺编码                      性别	      生日        年齡	生命级别
BL6099033963550303769	黄金会员	线下扫码	2019-03-31	DPXX07				女	1975-04-04	43	活跃
BL6099033963450303763	黄金会员	线下扫码	2019-03-31	DPXX07				女	1982-04-02	36	活跃
BL6099033963464003767	白银会员	电商入口	2019-03-31	DPS00X				女	1988-08-13	30	沉睡
BL6099033963460503766	黄金会员	线下扫码	2019-03-31	DPXX07				女	1993-11-24	25	活跃
BL6099033963660603765	白银会员	电商入口	2019-03-31	DPS00X				女	1993-03-20	26	沉睡
BL6099033963659903764	白银会员	电商入口	2019-03-31	DPS00X				女	1985-04-19	33	沉睡
BL6099033963636603763	黄金会员	线下扫码	2019-03-31	DPXX07				女	1976-02-26	43	活跃
BL6099033963696903766	白银会员	电商入口	2019-03-31	DPS00X				女	2000-02-18	19	沉睡
BL6099033963970603760	白银会员	电商入口	2019-03-31	DPS00X				女	1992-10-20	26	沉睡
BL6099033963950603759	白银会员	电商入口	2019-03-31	DPS00X				男	1984-10-30	34	沉睡
BL6099033963039603755	黄金会员	线下扫码	2019-03-31	DPXX07				女	2000-02-07	19	活跃
BL6099033963040903756	白银会员	线下扫码	2019-03-31	DPX780	        	女	1984-05-09	34	沉睡
BL6099033963034603759	白银会员	线下扫码	2019-03-31	DPXX07				女	1978-11-25	40	活跃
BL6099033963033403750	白银会员	线下扫码	2019-03-31	DPJ0X3				女	1970-01-01	49	沉睡
BL6099033963099603743	黄金会员	线下扫码	2019-03-31	DPXX07				女	1984-08-10	34	活跃
BL6099033966590603746	白银会员	线下扫码	2019-03-31	DPXX07				女	1978-04-22	40	活跃
BL6099033966569403743	白银会员	电商入口	2019-03-31	DPS00X				女	1983-11-29	35	沉睡
BL6099033966555303746	白银会员	线下扫码	2019-03-31	DPXX07				女	1980-04-06	38	活跃
BL6099033966534503739	黄金会员	线下扫码	2019-03-31	DPXX07				女	1979-09-06	39	活跃
BL6099033966599303735	白银会员	电商入口	2019-03-31	DPS00X				女	1983-03-07	36	沉睡
BL6099033966470003736	白银会员	线下扫码	2019-03-31	DPXX07				女	1990-09-22	28	活跃
BL6099033966456903739	白银会员	电商入口	2019-03-31	DPS00X				女	1985-04-04	33	沉睡
BL6099033966459903730	白银会员	电商入口	2019-03-31	DPS00X				女	1991-08-24	27	沉睡
BL6099033966459503769	白银会员	电商入口	2019-03-31	DPS00X				女	1969-03-09	50	沉睡
BL6099033966445003763	白银会员	电商入口	2019-03-31	DPS00X				女	1995-04-06	23	沉睡
BL6099033966444503767	白银会员	线下扫码	2019-03-31	DPXX07				女	1979-09-02	39	活跃
BL6099033966466903766	黄金会员	线下扫码	2019-03-31	DPXX07				女	1974-01-01	45	活跃

 将txt数据文件上传到root目录

如果没有对应的表,需要创建对应的hyxx_table表

CREATE TABLE hyxx_table (member_card_number STRING,      -- 会员卡号member_level STRING,            -- 会员等级member_source STRING,           -- 会员来源registration_time TIMESTAMP,    -- 注册时间store_code STRING,              -- 所属店铺编码gender STRING,                  -- 性别 (建议使用 'M' 或 'F' 表示性别)birthday DATE,                  -- 生日age INT,                        -- 年龄life_level STRING               -- 生命级别
) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '\t'           -- 假设字段使用制表符分隔
STORED AS TEXTFILE;

字段说明

  • member_card_number: 会员卡号,使用STRING类型,可以存储各种字符组合。
  • member_level: 会员等级,使用STRING类型,可存储如"普通会员"、"VIP"等。
  • member_source: 会员来源,STRING类型,例如"线上"、"线下"等。
  • registration_time: 注册时间,TIMESTAMP类型,存储年-月-日 时:分:秒。
  • store_code: 所属店铺编码,STRING类型,用于存储各店铺的唯一标识。
  • gender: 性别,使用STRING类型,通常用"M"或"F"标识。
  • birthday: 生日,使用DATE类型。
  • age: 年龄,使用INT类型。
  • life_level: 生命级别,使用STRING类型。

创建完成后,可以使用LOAD DATA命令将数据加载到表中。

查看表中字段

然后从本地文件系统/root目录下导入数据 

LOAD DATA LOCAL INPATH '/root/hyxx.txt' INTO TABLE hyxx_table;

查看字段下的数据

        在Hive中,可以使用SELECT语句来查看特定字段的数据。假设要查看hyxx_table表中某些字段的内容,例如查看会员卡号、会员等级和注册时间,可以使用以下SQL语句:

SELECT member_card_number, member_level, registration_time
FROM hyxx_table
LIMIT 10;

解释

  • SELECT: 用于选择指定的字段。
  • member_card_number, member_level, registration_time: 这些是要查看的字段名称。
  • LIMIT 10: 限制返回的记录数为10条,以避免查询过多数据(可以根据需要调整或去掉此部分)。

示例

如果需要查看全部字段的数据,可以用*表示:

SELECT *
FROM hyxx_table
LIMIT 10;

以上语句会返回hyxx_table表的前10条记录,包含所有字段的信息。

如果需要列出全部记录,不用加上数值即可。

SELECT *
FROM hyxx_table
LIMIT ;

从HDFS导入数据

先上传hyxx.txt文件到hdfs中。

hadoop fs -put hyxx.txt /hive_tables/

 上传完成,查看

hyxx_table2表跟hyxx_table表中的字段内容相同,仅更名

LOAD DATA INPATH '/hive_tables/hyxx.txt' INTO TABLE hyxx_table2;

导入hive后hdfs中的数据文件会消失,属于正常现象,查看导入的表的字段下的数据,存在即可

查看表下字段中的数据

查看表中字段

查看字段下的数据

正常

导出数据到本地文件系统

INSERT OVERWRITE LOCAL DIRECTORY '/root/hive_data'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 
SELECT * FROM hyxx_table2;

执行日志:

hive> INSERT OVERWRITE LOCAL DIRECTORY '/root/hive_data'> ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' > SELECT * FROM hyxx_table2;
2024-11-06T01:41:59,210 INFO [main] org.apache.hadoop.hive.conf.HiveConf - Using the default value passed in for log id: dba1e2f5-60c0-4488-8b37-57d7d6c1c38c
2024-11-06T01:41:59,211 INFO [main] org.apache.hadoop.hive.ql.session.SessionState - Updating thread name to dba1e2f5-60c0-4488-8b37-57d7d6c1c38c main
2024-11-06T01:42:02,734 INFO [dba1e2f5-60c0-4488-8b37-57d7d6c1c38c main] org.apache.hadoop.hive.common.FileUtils - Creating directory if it doesn't exist: hdfs://node1:8020/root/hive_data/.hive-staging_hive_2024-11-06_01-41-59_264_4655809944502720066-1
Query ID = root_20241106014159_a28aceb5-a14f-433a-9fe6-b79120211fd2
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
2024-11-06T01:42:05,017 INFO [dba1e2f5-60c0-4488-8b37-57d7d6c1c38c main] org.apache.hadoop.conf.Configuration.deprecation - mapred.submit.replication is deprecated. Instead, use mapreduce.client.submit.file.replication
2024-11-06T01:42:50,376 INFO [dba1e2f5-60c0-4488-8b37-57d7d6c1c38c main] org.apache.hadoop.conf.Configuration.deprecation - yarn.resourcemanager.system-metrics-publisher.enabled is deprecated. Instead, use yarn.system-metrics-publisher.enabled
2024-11-06T01:42:52,378 INFO [dba1e2f5-60c0-4488-8b37-57d7d6c1c38c main] org.apache.hadoop.conf.Configuration - resource-types.xml not found
Starting Job = job_1730818870875_0002, Tracking URL = http://node1:8088/proxy/application_1730818870875_0002/
Kill Command = /export/server/hadoop-3.3.0/bin/mapred job  -kill job_1730818870875_0002
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0
2024-11-06 01:43:33,360 Stage-1 map = 0%,  reduce = 0%
2024-11-06 01:44:32,141 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 19.91 sec
MapReduce Total cumulative CPU time: 19 seconds 910 msec
Ended Job = job_1730818870875_0002
Moving data to local directory /root/hive_data
MapReduce Jobs Launched: 
Stage-Stage-1: Map: 1   Cumulative CPU: 19.91 sec   HDFS Read: 8770 HDFS Write: 2035 SUCCESS
Total MapReduce CPU Time Spent: 19 seconds 910 msec
OK
Time taken: 155.654 seconds
2024-11-06T01:44:34,888 INFO [dba1e2f5-60c0-4488-8b37-57d7d6c1c38c main] org.apache.hadoop.hive.conf.HiveConf - Using the default value passed in for log id: dba1e2f5-60c0-4488-8b37-57d7d6c1c38c
2024-11-06T01:44:34,889 INFO [dba1e2f5-60c0-4488-8b37-57d7d6c1c38c main] org.apache.hadoop.hive.ql.session.SessionState - Resetting thread name to  main
hive> 

查看本地目录

导出数据到本地文件系统完成。


       Hive的进阶操作包括分区、桶、视图、外部表、窗口函数、JOIN、子查询、UDF、事务支持以及数据导入导出等。这些操作可以帮助你在大数据环境中高效处理复杂的数据分析任务。通过灵活运用这些功能,你可以显著提高查询性能并简化数据处理工作。

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

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

相关文章

Webserver(3.2)锁

目录 互斥量死锁未解锁重复加锁多个锁 读写锁案例 互斥量 接上一章&#xff0c;卖票存在线程安全问题。 #include<stdio.h> #include<pthread.h> #include<unistd.h> int tickets1000;//局部变量就是每个人卖100张&#xff0c;全局变量就是一起卖100张&…

105. UE5 GAS RPG 搭建主菜单

在这一篇&#xff0c;我们将实现对打开游戏显示的主菜单进行搭建&#xff0c;主菜单将显示游戏主角&#xff0c;游戏名称和进入游戏和退出游戏两个按钮。 搭建菜单场景 我们将主菜单设置为一个单独的场景&#xff0c;前面可以显示对应的UI控件&#xff0c;用于玩家操作&#…

语义分割——U-Net

U-Net是继FCN之后又一个经典的语义分割网络模型&#xff0c;并且也是很多后续语义分割模型的“祖宗”。这个网络模型是2015年提出来的&#xff0c;它具有一个非常对称的结构&#xff0c;很像字母“U”&#xff0c;所以被称作U-Net。U-Net被广泛应用于医学影像领域&#xff0c;如…

AI之硬件对比:据传英伟达Nvidia2025年将推出RTX 5090-32GB/RTX 5080-24GB、华为2025年推出910C/910D

AI之硬件对比&#xff1a;据传英伟达Nvidia2025年将推出RTX 5090-32GB/RTX 5080-24GB、华为2025年推出910C/910D 目录 Nvidia的显卡 Nvidia的5090/5080/4090/4080&#xff1a;据传传英伟达Nvidia RTX 5090后续推出32GB版且RTX 5080后续或推出24GB版 RTX 5090相较于RTX 4090&…

Android无限层扩展多级recyclerview列表+实时搜索弹窗

业务逻辑&#xff1a; 点击选择&#xff0c;弹出弹窗&#xff0c;列表数据由后台提供&#xff0c;不限层级&#xff0c;可叠加无限层子级&#xff1b; 点击item展开收起&#xff0c;点击尾部icon单选选中&#xff0c;点击[确定]为最终选中&#xff0c;收起弹窗&#xff1b; 搜索…

SpringBoot+ClickHouse集成

前面已经完成ClickHouse的搭建&#xff0c;创建账号&#xff0c;创建数据库&#xff0c;保存数据库等&#xff0c;接下来就是在SpringBoot项目中集成ClickHouse。 一&#xff0c;引入依赖 <!-- SpringBoot集成ClickHouse --> <dependency><groupId>com.baom…

【基于轻量型架构的WEB开发】课程 12.5 数据回写 Java EE企业级应用开发教程 Spring+SpringMVC+MyBatis

12.5 数据回写 12.5.1 普通字符串的回写 接下来通过HttpServletResponse输出数据的案例&#xff0c;演示普通字符串的回写&#xff0c;案例具体实现步骤如下。 1 创建一个数据回写类DataController&#xff0c;在DataController类中定义 showDataByResponse()方法&#xff…

Java实现JWT登录认证

文章目录 什么是JWT?为什么需要令牌?如何实现?添加依赖&#xff1a;JwtUtils.java&#xff08;生成、解析Token的工具类&#xff09;jwt配置&#xff1a;登录业务逻辑&#xff1a;其他关联代码&#xff1a;测试&#xff1a; 什么是JWT? JWT&#xff08;Json Web Token&…

光伏无人机踏勘,照亮光伏未来!

光伏电站选址地分散在各地&#xff0c;想要精准获取该地的地形特点与屋顶面积等信息&#xff0c;传统的人工踏勘耗时耗力且精度无法保证&#xff0c;难以满足现代光伏项目的规模快发发展需求。光伏无人机踏勘&#xff0c;照亮光伏未来&#xff01; 在光伏无人机智能踏勘设计系统…

Vue全栈开发旅游网项目(7)-搜索界面开发及其接口联调

1.搜索界面开发 1.1 模糊查询 文件地址&#xff1a;pycharm- class SightListView(ListView):paginate_by 5def get_queryset(self):#is_validTrue&#xff1a;表中is_valid列&#xff0c;有值则被查询出来query Q(is_validTrue)#1.获得热门景点is_hot self.request.GET.…

『 Linux 』网络传输层 - TCP(二)

文章目录 TCP六个标志位TCP的连接三次握手 四次挥手为什么是三次握手和四次挥手 重传机制 TCP六个标志位 在TCP协议报文的报头中存在一个用于标志TCP报文类型的标志位(不考虑保留标志位),这些标志位以比特位选项的方式存在,即对应标志位为0则表示为假,对应标志位为1则为真; SYN…

Django学习-项目部署

WSGI定义&#xff1a; uWSGI定义&#xff1a; 安装uWSGI&#xff1a; 配置uWSGI&#xff1a; uWSGI常见问题汇总&#xff1a; 安装nginx&#xff1a; 配置&#xff1a; 启动/停止dnginx 修改uWSGI配置&#xff1a; 常见问题解决方法&#xff1a; nginx静态文件配置&#xff…

迅为RK3588开发板Android多屏显示之多屏同显和多屏异显

迅为RK3588开发板是一款低功耗、高性能的处理器&#xff0c;适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用&#xff0c;RK3588支持8K视频编解码&#xff0c;内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像…

QML项目实战:自定义Button

目录 一.添加模块 ​1.QtQuick.Controls 2.1 2.QtGraphicalEffects 1.12 二.自定义Button 1.颜色背景设置 2.设置渐变色背景 3.文本设置 4.点击设置 5.阴影设置 三.效果 1.当enabled为true 2.按钮被点击时 3.当enabled为false 四.代码 一.添加模块 1.QtQuick.Con…

基于C#实现Windows后台窗口操作与图像处理技术分析

在Windows编程中&#xff0c;操作后台窗口是一项复杂而有用的技术。它可以用来自动化用户界面测试、应用程序机器人等场景。本文将深入探讨如何在C#中绑定后台窗口、获取后台窗口界面图片&#xff0c;以及在图片中寻找指定图标并获取坐标。本技术文章结合最先进的资料与实践经验…

数据库基础(1) . 关系型数据库

1.数据库 database 1.1.数据持久化 数据持久化&#xff08;Data Persistence&#xff09;指的是将程序中的数据保存到某种持久化的存储介质&#xff08;如硬盘、SSD、磁带等&#xff09;上的过程&#xff0c;使得即使在程序终止后&#xff0c;数据依然可以被保留下来并在下次…

Python学习的自我理解和想法(27)

学的是b站的课程&#xff08;千锋教育&#xff09;&#xff0c;跟老师写程序&#xff0c;不是自创的代码&#xff01; 今天是学Python的第27天&#xff0c;学的内容是python操作pptx和pdf&#xff0c;但是这节博客只会介绍如何新建pptx和加密pdf。开学了&#xff0c;时间不多&…

鸿蒙移动应用开发-------初始arkts

一. 什么是arkts ArkTS是HarmonyOS优选的主力应用开发语言。 ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;保持了TS的基本风格&#xff0c;同时通过规范定义强化开发期静态检查和分析&#xff0c;提升程序执行稳定性和…

Linux(CentOS)安装 JDK

1、下载 JDK 官网&#xff1a;https://www.oracle.com/ 2、上传 JDK 文件到 CentOS&#xff0c;使用FinalShell远程登录工具&#xff0c;并且使用 root 用户登录 3、解压 JDK 创建目录 /export/server mkdir -p /export/server 解压到目录 /export/server tar -zxvf jdk-17…