数据仓库 Hive(内含大数据镜像下载)

文章目录

    • 1. 特点
    • 2. Hive 体系架构
    • 3. 安装 Hive
      • 3.1 安装 MySQL
      • 3.2 安装 Hive
      • 3.3 配置 Hive
    • 4. 实践
      • 4.1 函数
      • 4.2 Hive Shell

安装没成功:直接用现成的镜像
大数据Linux实验环境虚拟机镜像文件 http://dblab.xmu.edu.cn/blog/1645-2/
cloudera-quickstart-vm-集成了大数据平台的虚拟机镜像

1. 特点

  • 查询语言与 SQL 接近
  • 并行执行
  • 使用 HDFS 存储
  • 支持多种数据格式
  • 不支持数据更新
  • 不支持索引
  • 执行延迟高(不适合在线数据查询)
  • 可扩展性高
  • 数据规模大

2. Hive 体系架构

3. 安装 Hive

  • 先安装 hadoop:hadoop 多机全分布式安装步骤(虚拟机1master+2slave)

3.1 安装 MySQL

  • 在 master 上安装
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
或者
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
  • 查看可选版本
yum repolist all | grep mysql
yum install -y mysql-community-server
  • 启动 MySQL
[root@master opt]# systemctl start mysqld
[root@master opt]# systemctl status mysqld
● mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: active (running) since 一 2021-03-29 06:25:16 CST; 22h agoDocs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlProcess: 49287 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)Process: 49266 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)Main PID: 49291 (mysqld)Tasks: 28CGroup: /system.slice/mysqld.service└─49291 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/my...3月 29 06:25:13 master systemd[1]: Starting MySQL Server...
3月 29 06:25:16 master systemd[1]: Started MySQL Server.
  • 测试 MySQL
mysql -u root -p

enter 空密码,报错

报错参考https://blog.csdn.net/vv19910825/article/details/82979563
(操作:vim /etc/my.cnf, 添加 skip-grant-tables跳过密码 systemctl restart mysqld,下面改过密码了,在删除)

修改密码,注意满足密码强度

mysql> flush privileges; -> alter user 'root'@'localhost' identified by '!@#123qwe';-> flush privileges;

vim /etc/my.cnf, 删除 skip-grant-tables
systemctl restart mysqld

mysql -u root -p 使用新密码,再次登录

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)
  • 在 MySQL 中创建 Hive 所需用户和数据库,并授权
mysql> create user 'dnn' identified by '!@#123Qwe';
mysql> create database hive;
Query OK, 1 row affected (0.02 sec)
mysql> grant all privileges on hive.* to 'dnn'@'localhost' identified by '!@#123Qwe';
mysql> flush privileges;

hive 表创建成功

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hive               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

3.2 安装 Hive

下载地址 : https://hive.apache.org/downloads.html

我下载的是 apache-hive-3.1.2-bin.tar.gz

tar -zxvf apache-hive-3.1.2-bin.tar.gz 

- 赋权限给普通用户 dnn

[root@master opt]# chown -R dnn /opt/hive3.1.2/
  • 复制 MySQL 的 JDBC 驱动包到 Hive 的 /lib 下
下载地址 https://dev.mysql.com/downloads/connector/j/

解压

tar -zxvf mysql-connector-java-5.1.49.tar.gz 

移动

[dnn@master Downloads]$ mv mysql-connector-java-5.1.49/mysql-connector-java-5.1.49-bin.jar /opt/hive3.1.2/lib
[dnn@master Downloads]$ rm -rf mysql-connector-java-5.1.49

3.3 配置 Hive

  • 配置 hive-env.sh
[dnn@master opt]$ cd /opt/hive3.1.2/conf/
[dnn@master conf]$ cp hive-env.sh.template  hive-env.sh
[dnn@master conf]$ vim hive-env.sh

第48行改为自己的路径 HADOOP_HOME=/opt/hadoop-3.3.0
第51行 export HIVE_CONF_DIR=/opt/hive3.1.2/conf
第54行 export HIVE_AUX_JARS_PATH=/opt/hive3.1.2/lib

  • 配置 hive-default.xml,直接复制模板
cp hive-default.xml.template hive-default.xml
  • 配置 vim hive-site.xml
<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBC metastore.
ql.jdbc.Driver     To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.</description></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value><description>Driver class name for a JDBC metastore,com.mysql.jdbc.Driver is depricated</description></property><property><name>javax.jdo.option.ConnectionUserName</name><value>dnn</value><description>Username to use against metastore database</description></property><property><name>javax.jdo.option.ConnectionPassword</name><value>!@#123Qwe</value><description>password to use against metastore database</description></property>
</configuration>
  • 初始化 Hive Metastore
    在 hive 的 bin 目录下 ./schematool -initSchema -dbType mysql

配置环境变量

vim ~/.bashrc

添加

export HIVE_HOME=/opt/hive3.1.2
export PATH=${HIVE_HOME}/bin:$PATH

使之生效

source ~/.bashrc 

4. 实践

启动 hadoop 命令:

start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
# 第三条可以用下面的命令,上面的显示过期了,以后弃用
mapred --daemon start historyserver

4.1 函数

显示函数 show functions;

hive> show functions;
OK
!
!=
$sum0
%
(省略。。。)

显示函数帮助信息:describe function upper(函数名);

hive> > describe function upper;
OK
upper(str) - Returns str with all characters changed to uppercase
Time taken: 0.007 seconds, Fetched: 1 row(s)
  • 自定义函数,重写 UDF 中的 evaluate()
package michael_package;import org.apache.hadoop.hive.ql.exec.UDF;public class Sub extends UDF{public Integer evaluate(Integer a, Integer b) {if(a==null || b==null)return null;return a-b;}public Double evaluate(Double a, Double b) {if(a==null || b==null)return null;return a-b;}public Integer evaluate(Integer a, Integer[] b) {if(a==null || b==null)return null;int ans = a;for(int i = 0; i < b.length; ++i) {if(b[i] != null)ans -= b[i];}return ans;}
}
  • 表生成自定义函数 UDTF
  • 聚集自定义函数 UDAF

4.2 Hive Shell

  • create tableshow tablesdescribe 表name
hive> create table student(> id string,> name string,> sex string,> age tinyint,> dept string)> row format delimited fields terminated by '\t';
OK
Time taken: 0.464 seconds
hive> show tables;
OK
student
Time taken: 0.085 seconds, Fetched: 1 row(s)
hive> describe student;
OK
id                  	string              	                    
name                	string              	                    
sex                 	string              	                    
age                 	tinyint             	                    
dept                	string              	                    
Time taken: 0.069 seconds, Fetched: 5 row(s)
  • 编写个数据文件
hadoop@dblab-VirtualBox:/usr/local/eclipse$ vim /home/hadoop/workspace/student.txt
hadoop@dblab-VirtualBox:/usr/local/eclipse$ cat /home/hadoop/workspace/student.txt
1	michael	male	18	bigdata
2	ming	male	19	AI
3	lili	female	18	math
4	huahua	female	20	AI
  • 加载数据到表格
hive> load data local inpath '/home/hadoop/workspace/student.txt' into table student;
Loading data to table default.student
OK
Time taken: 1.158 seconds
  • select 操作表
hive> select * from student;
OK
1	michael	male	18	bigdata
2	ming	male	19	AI
3	lili	female	18	math
4	huahua	female	20	AI
Time taken: 0.789 seconds, Fetched: 4 row(s)
hive> select * from student where sex='male';
OK
1	michael	male	18	bigdata
2	ming	male	19	AI
Time taken: 1.565 seconds, Fetched: 2 row(s)

HiveQL 将命令转换为 MapReduce 操作

hive> select sex, count(*) from student group by sex;
WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
Query ID = hadoop_20210331231151_0e76f173-ac54-46e0-8886-f018f8a7f480
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks not specified. Estimated from input data size: 1
In order to change the average load for a reducer (in bytes):set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:set mapreduce.job.reduces=<number>
Job running in-process (local Hadoop)
2021-03-31 23:11:52,943 Stage-1 map = 100%,  reduce = 100%
Ended Job = job_local236806530_0001
MapReduce Jobs Launched: 
Stage-Stage-1:  HDFS Read: 352 HDFS Write: 0 SUCCESS
Total MapReduce CPU Time Spent: 0 msec
OK
female	2
male	2
Time taken: 1.55 seconds, Fetched: 2 row(s)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hive               |
| mysql              |
| performance_schema |
| spark              |
| sys                |
+--------------------+
6 rows in set (0.00 sec)mysql> use hive;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> show tables;
+---------------------------+
| Tables_in_hive            |
+---------------------------+
| AUX_TABLE                 |
| BUCKETING_COLS            |
| CDS                       |
| COLUMNS_V2                |
| COMPACTION_QUEUE          |
| COMPLETED_COMPACTIONS     |
| COMPLETED_TXN_COMPONENTS  |
| DATABASE_PARAMS           |
| DBS                       |
| DB_PRIVS                  |
| DELEGATION_TOKENS         |
| FUNCS                     |
| FUNC_RU                   |
| GLOBAL_PRIVS              |
| HIVE_LOCKS                |
| IDXS                      |
| INDEX_PARAMS              |
| KEY_CONSTRAINTS           |
| MASTER_KEYS               |
| NEXT_COMPACTION_QUEUE_ID  |
| NEXT_LOCK_ID              |
| NEXT_TXN_ID               |
| NOTIFICATION_LOG          |
| NOTIFICATION_SEQUENCE     |
| NUCLEUS_TABLES            |
| PARTITIONS                |
| PARTITION_EVENTS          |
| PARTITION_KEYS            |
| PARTITION_KEY_VALS        |
| PARTITION_PARAMS          |
| PART_COL_PRIVS            |
| PART_COL_STATS            |
| PART_PRIVS                |
| ROLES                     |
| ROLE_MAP                  |
| SDS                       |
| SD_PARAMS                 |
| SEQUENCE_TABLE            |
| SERDES                    |
| SERDE_PARAMS              |
| SKEWED_COL_NAMES          |
| SKEWED_COL_VALUE_LOC_MAP  |
| SKEWED_STRING_LIST        |
| SKEWED_STRING_LIST_VALUES |
| SKEWED_VALUES             |
| SORT_COLS                 |
| TABLE_PARAMS              |
| TAB_COL_STATS             |
| TBLS                      |
| TBL_COL_PRIVS             |
| TBL_PRIVS                 |
| TXNS                      |
| TXN_COMPONENTS            |
| TYPES                     |
| TYPE_FIELDS               |
| VERSION                   |
| WRITE_SET                 |
+---------------------------+
57 rows in set (0.00 sec)
  • 非交互式,加载查询脚本
hadoop@dblab-VirtualBox:~/workspace$ vim script.q
hadoop@dblab-VirtualBox:~/workspace$ cat script.q 
select * from student;hadoop@dblab-VirtualBox:~/workspace$ hive -f script.q 
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]Logging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-2.1.0.jar!/hive-log4j2.properties Async: true
Wed Mar 31 23:36:09 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Wed Mar 31 23:36:09 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Wed Mar 31 23:36:09 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Wed Mar 31 23:36:09 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Wed Mar 31 23:36:10 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Wed Mar 31 23:36:10 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Wed Mar 31 23:36:10 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Wed Mar 31 23:36:10 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
OK
1	michael	male	18	bigdata
2	ming	male	19	AI
3	lili	female	18	math
4	huahua	female	20	AI
Time taken: 1.376 seconds, Fetched: 4 row(s)
  • -e 选项内嵌语句
    hadoop@dblab-VirtualBox:~/workspace$ hive -e 'select * from student'

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

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

相关文章

一台机器起多个filebeat_全自动多色丝印机一台多少钱?

全自动多色丝印机运用在于几种领域当中&#xff0c;其中比较常见的应该就是包装行业了。比如我们日常生活中&#xff0c;经常看到的洗发水外壳上&#xff0c;化妆品外壳上&#xff0c;膏霜瓶瓶身上等地方的图文&#xff0c;都是使用全自动多丝印机印刷来的。全自动多色丝印机是…

C语言做线性分析,C语言版的线性回归分析函数

前几天&#xff0c;清理出一些十年以前DOS下的程序及代码&#xff0c;看来目前也没什么用了&#xff0c;想打个包刻在光碟上&#xff0c;却发现有些代码现在可能还能起作用&#xff0c;其中就有计算一元回归和多元回归的代码&#xff0c;一看代码文件时间&#xff0c;居然是199…

python里str什么意思_Python 3 字符串中的 STR 和 Bytes 究竟有什么区别?

原标题&#xff1a;Python 3 字符串中的 STR 和 Bytes 究竟有什么区别&#xff1f; Python2的字符串有两种&#xff1a;str和Unicode&#xff0c;Python3的字符串也有两种&#xff1a;str和Bytes。Python2的str相当于Python3的Bytes&#xff0c;而Unicode相当于Python3的Bytes。…

word 插入代码_突破Word页码困境,这招简单又实用的自动更新法,90%的人还不会!...

微信扫码观看全套Excel、Word、PPT视频在工作和学习中&#xff0c;常会遇到这样的情况&#xff0c;对于一篇既含有封面&#xff0c;又含有目录的文档&#xff0c;要求对它的页码进行如下设置&#xff1a;在文档底部靠右位置插入页码&#xff0c;页码形式为“第几页&#xff0c;…

接口 vs 抽象类 的区别

文章目录1. 抽象类2. 接口类3. 如何选择学习自 极客时间《设计模式之美》 1. 抽象类 2. 接口类 3. 如何选择 表示 is - a 关系&#xff0c;解决代码复用&#xff1a;抽象类&#xff08;自下而上&#xff0c;子类的代码重复&#xff0c;抽象成上层父类&#xff09; 表示 has - …

数据结构与算法 pdf_整理一个月完成的数据结构与算法PDF和测试代码免费拿

点击上方「10分钟编程」关注我呦让我们每天「博学」一点点数据结构与算法作为一名2021届的学生&#xff0c;今年7月份就要面临秋招了&#xff0c;那么对于应届生来说&#xff0c;要想脱颖而出&#xff0c;笔试就显得太重要了&#xff0c;算法题是笔试环节的最重要组成部分&…

天池 在线编程 部门统计(哈希)

文章目录1. 题目2. 解题1. 题目 描述 公司给你提供了所有员工的信息&#xff0c;包括其ID&#xff0c;姓名和所属部门。 以及他们之间的朋友关系&#xff0c;每个关系中由2个ID组成&#xff0c;如 “1, 2” 代表1号员工和2号员工是朋友。 朋友关系不具有传递性&#xff0c;即B…

android 过滤emoji表情符号,android怎样过滤字符串中的emoji表情

满意答案jdubysct2016.03.15采纳率&#xff1a;43% 等级&#xff1a;8已帮助&#xff1a;863人解决方案对于字符串处理,首选就是正则表达式去处理,而在android系统中可以自定义InputFilter去过滤需要处理掉的字符串,代码如下InputFilter emojiFilter new InputFilter ( ) {…

c++exe程序在别人电脑上双击无法打开_Windows10电脑磁盘占用率过高,用这二招轻松解决...

在操作计算机时&#xff0c;可能会看到类似“Srtasks.Exe”的信息&#xff0c;这个Srtasks.Exe表明Windows10电脑磁盘占用率过高。这是被称为“Microsoft系统保护后台任务”的可信Microsoft进程的可执行文件&#xff0c;Windows 10的“任务计划程序”经常使用该进程自动创建还原…

链接聚合是将一组物理接口_500字描述华为VLAN聚合工作原理 你看懂了吗?

VLAN聚合的工作过程和通行情况是如何的呢&#xff1f;工作原理如下&#xff1a;和普通VLAN都有一个三层逻辑接口和若干物理接口&#xff0c;VLAN聚合定义的Super-VLAN和Sub-VLAN比较特殊&#xff1a;Sub-VLAN&#xff1a;只包含物理接口&#xff0c;不能建立三层VLANIF接口&…

天池 在线编程 区分用户名(哈希)

文章目录1. 题目2. 解题1. 题目 描述 给出一组用户名&#xff0c;如果有重复的用户名&#xff0c;则在用户名后添加数字区别&#xff0c;并返回修改后的数组。 样例 1: 输入&#xff1a;["aa", "bb", "cc", "bb", "aa", &…

蓝桥杯 之 基础练习10:十进制转十六进制

【循环 整除 求余 判断】 /*问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号&#xff0c;分别表示十进制数的0至15。十六进制的计数方法是满16进1&#xff0c;所以十进制数16在十六进制中是10&#xff0c;…

天池 在线编程 区间合并(字符串)

文章目录1. 题目2. 解题1. 题目 描述 现在给你两个字符串区间(按字典顺序), 请你判断两个区间是否可以合并。 字符串区间[a, b)&#xff0c;包括所有以a开头的字符串。 例如&#xff0c;区间[a, b)和区间[ab,c)是可以合并的&#xff0c; 区间[a,b)和区间[b, c]也是可以合并的…

LeetCode 1812. 判断国际象棋棋盘中一个格子的颜色

文章目录1. 题目2. 解题1. 题目 给你一个坐标 coordinates &#xff0c;它是一个字符串&#xff0c;表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。 如果所给格子的颜色是白色&#xff0c;请你返回 true&#xff0c;如果是黑色&#xff0c;请返回 false 。 给…

dev c++ 代码补全_zsh配置与代码自动补全+tmux配置

先上链接ohmyzsh​github.comzsh-autosuggestions​github.comgpakosz/.tmux​github.com问题描述代码需要&#xff0c;更换了服务器&#xff0c;发现新服务器上zsh没有自动补全&#xff0c;难受得不行&#xff0c;并且没有个性化的配置&#xff0c;强迫症顶不住&#xff0c;tm…

京东抢购助手_[Windows] 京东极速抢购助手V2.0,支持京东健康+扫货抢购

本软件仅供学习交流&#xff0c;完全免费&#xff0c;同时也为帮助有缘人能买到自用的口罩&#xff0c;度过这段特殊时期&#xff01;请勿用于其它用途&#xff0c;谢谢&#xff01;如有违规&#xff0c;请删帖&#xff01;下载地址&#xff1a;https://www.lanzous.com/ia3bfl…

SQL Server 和 Oracle 以及 MySQL 有哪些区别?

SQL&#xff0c;在这里我理解成SQL Server。三者是目前市场占有率最高&#xff08;依安装量而非收入&#xff09;的关系数据库&#xff0c;而且很有代表性。排行第四的DB2&#xff08;属IBM公司&#xff09;&#xff0c;与Oracle的定位和架构非常相似&#xff0c;就不赘述了。 …

LeetCode 1813. 句子相似性 III

文章目录1. 题目2. 解题1. 题目 一个句子是由一些单词与它们之间的单个空格组成&#xff0c;且句子的开头和结尾没有多余空格。 比方说&#xff0c;"Hello World" &#xff0c;"HELLO" &#xff0c;"hello world hello world" 都是句子。 每个单…

vim配置python开发环境_GitHub - TTWShell/legolas-vim: Vim配置,为python、go开发者打造的IDE。...

legolas-vim个人vim配置。支持python、go等自动提示&#xff0c;支持python、go的函数跳转&#xff08;python支持虚拟环境&#xff09;。 最终效果图&#xff08;函数列表的feature已移除&#xff0c;因为大项目会导致性能问题&#xff09;&#xff1a;支持Python自动补全的最…

平面设计中的网格系统pdf_平面设计基础知识

导语&#xff1a;“ 给大家推荐优质书籍&#xff0c;包含平面设计基础入门知识的书籍分享”。平面设计基础知识分享书籍名称&#xff1a;《写给大家看的设计书》作者&#xff1a;[美]罗宾威廉姆斯著平面设计的四个原则&#xff1a;复杂的设计原理在《写给大家看的设计书》中凝炼…