Apache-Hive数据库使用学习

news2024/11/24 0:03:18

前期准备

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.coloradmin.cn/o/2234837.html

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

相关文章

【极客兔兔-Web框架Gee详解】Day2 上下文Context

文章目录 一、框架结构二、设计上下文(Context):day2-context/gee/context.go1. 设计Context必要性1.1 接口粒度过细:1.2 缺乏扩展性:2. 代码3. 优势三、路由(Router): day2-context/gee/router.go四、框架入口:day2-context/gee/gee.go1. 代码五、框架使用: day2-context/m…

LeetCode17. 电话号码的字母组合(2024秋季每日一题 59)

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits “23” 输出:[“…

DApp开发定制:合约设计与源码搭建支持快速上线

随着区块链技术的飞速发展,去中心化应用(DApp)已经成为区块链生态中不可或缺的一部分。DApp不仅改变了传统互联网应用的运作方式,还通过去中心化的理念和智能合约的支持,赋能了用户和开发者。无论是金融、游戏、社交、…

【C++】手动实现C++ vector容器:深入理解动态数组的工作原理

💯个人主页: 起名字真南 💯个人专栏:【数据结构初阶】 【C语言】 【C】 【OJ题解】 目录 1. 引言2. 实现思路3. vector 容器的代码实现4. 代码详解4.1 构造与析构函数4.2 容量管理4.3 迭代器与访问操作4.4 增删操作 5.测试代码6. 时间和空间复杂度分析7.…

深入探讨钉钉与金蝶云星空的数据集成技术

钉钉报销数据集成到金蝶云星空的技术案例分享 在企业日常运营中,行政报销流程的高效管理至关重要。为了实现这一目标,我们采用了轻易云数据集成平台,将钉钉的行政报销数据无缝对接到金蝶云星空的付款单系统。本次案例将重点介绍如何通过API接…

Appium环境搭建/使用教程(图文超详细)

一,环境依赖JDK和Android SDK搭建 (1) JDK: 下载安装(推荐java8版本,其他版本不兼容,会导致appiumServer启动不了) 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html根据自己的系…

大数据-209 数据挖掘 机器学习理论 - 梯度下降 梯度下降算法调优

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

模拟实现strcat函数

1.strcat的作用 char * strcat ( char * destination, const char * source ); 作用:将源字符串的附加到目标字符串中。目标字符串中的终止空字符将被源字符串的第一个字符替换,并且在将两个字符串连接形成的新字符串的末尾将包含一个空字符。 destina…

c++多线程QThreadpool调用Python脚本时崩溃报错的解决方案二

问题 还是c Qt多线程调用Python脚本时的问题。使用QthreadPool的方式调用,按照上次的解决方案也可以实现,虽然可能不出现崩溃问题。但是仍然有很大可能会出现死锁。即调入函数后,再无输出,变成一个黑洞… 解决方案 因为我使用的…

知从科技受邀出席ARM日产技术日

10月29日,上海知从科技有限公司受 ARM 之邀,参与了由其主办的日产技术日活动。此次活动在日本神奈川县厚木市的日产技术中心盛大举行,这一活动汇聚了行业内的前沿技术与精英人才,成为科技创新技术交流的重要平台。 知从科技积极参…

设计模式讲解02—责任链模式(Chain)

1. 概述 定义:责任链模式是一种行为型模式,在这个模式中,通常创建了一个接收者对象的链来处理请求,该请求沿着链的顺序传递。直到有对象处理该请求为止,从而达到解耦请求发送者和请求处理者的目的。 解释:责…

Vue项目引入侧边导航栏

Vue项目引入侧边导航栏 侧边导航栏能够非常方便进行信息检索,这一款不错的侧边导航栏:vue-side-catalog,基本上能满足快速检索的需求 安装 官网 首先需要进入** vue-side-catalog**的官网,然后下载对应的源码,下载…

【大数据学习 | kafka】kafka的偏移量管理

1. 偏移量的概念 消费者在消费数据的时候需要将消费的记录存储到一个位置,防止因为消费者程序宕机而引起断点消费数据丢失问题,下一次可以按照相应的位置从kafka中找寻数据,这个消费位置记录称之为偏移量offset。 kafka0.9以前版本将偏移量信…

专业 UI 设计公司:为您开启交互设计新征程

在当今数字化时代,UI设计不仅是产品外观的呈现,更是用户体验的核心组成部分。专业的UI设计公司凭借其深厚的设计底蕴、前沿的设计理念以及丰富的项目经验,能够为企业开启全新的交互设计征程,提升产品的市场竞争力。以下是对一家专…

【神经科学学习笔记】基于分层嵌套谱分割(Nested Spectral Partition)模型分析大脑网络整合与分离的学习总结

一、前言 1.学习背景 最近在学习脑网络分析方法时,笔者偶然读到了一篇发表在Physical Review Letters上的文章,文章介绍了一种名为嵌套谱分割(Nested-Spectral Partition, NSP)的方法,用于研究大脑功能网络的分离和整合特性。 传统的脑网络分…

初识C++(上) -- C++的关键字、命名空间、缺省参数以及函数的重载

目录 一、C的关键字(C98) 二、命名空间 1、命名冲突 2、命名空间 2.1 命名空间的定义 (1). 命名空间定义的例子以及命名空间的嵌套: (2). 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中: 2…

计算机网络socket编程(1)_UDP网络编程实现echo server

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 计算机网络socket编程(1)_UDP网络编程实现echo server 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交…

[安洵杯 2019]easy_web 详细题解

知识点: 编码转换 命令执行 linux空格_关键字绕过 打开页面 发现url 是 /index.php?imgTXpVek5UTTFNbVUzTURabE5qYz0&cmd 有img参数和cmd参数 cmd参数是没赋值的,随便赋值为123456 页面没有反应 鼠标移动到图片下面时发现有东西,当然直接查看页面源代码也可以发现 尝…

免费,基于React + ECharts 国产开源 IoT 物联网 Web 可视化数据大屏

文末查看开源项目地址 Light Chaser 是一款国产开源免费的基于 React18、Vite5、TypeScript5 技术栈实现的 Web 可视化大屏设计工具,支持Docker方式部署,支持MySQL、PostgreSQL、SQL Server、Oracle 数据源。 你可以简单快速地搭建数据可视化展示、数据报…

Linux服务管理-DHCP

DHCP DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,它允许服务器自动地将IP地址和其他网络配置参数分配给网络中的计算机。DHCP极大地简化了网络管理,尤其是当大量设备需要接入…