【大数据技术基础】 课程 第8章 数据仓库Hive的安装和使用 大数据基础编程、实验和案例教程(第2版)
第8章 数据仓库Hive的安装和使用
8.1 Hive的安装
8.1.1 下载安装文件
访问Hive官网(http://www.apache.org/dyn/closer.cgi/hive/)下载安装文件apache-hive-3.1.2-bin.tar.gz
下载完安装文件以后,需要对文件进行解压。按照Linux系统使用的默认规范,用户安装的软件一般都是存放在“/usr/local/”目录下。请在Linux系统中打开一个终端,执行如下命令:
sudo tar -zxvf ./apache-hive-3.1.2-bin.tar.gz -C /usr/local # 解压到/usr/local中
cd /usr/local/
sudo mv apache-hive-3.1.2-bin hive # 将文件夹名改为hive
sudo chown -R hadoop:hadoop hive # 修改文件权限
8.1.2 配置环境变量
为了方便使用,可以把hive命令加入到环境变量PATH中,从而可以在任意目录下直接使用hive命令启动,请使用vim编辑器打开“~/.bashrc”文件进行编辑,命令如下:
vim ~/.bashrc
在该文件的最前面一行添加如下内容:
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
保存该文件并退出vim编辑器,然后,运行如下命令使得配置立即生效:
source ~/.bashrc
8.1.3 修改配置文件
将“/usr/local/hive/conf”目录下的hive-default.xml.template文件重命名为hive-default.xml,命令如下:
cd /usr/local/hive/conf
sudo mv hive-default.xml.template hive-default.xml
同时,使用vim编辑器新建一个文件hive-site.xml,命令如下:
cd /usr/local/hive/conf
vim hive-site.xml
在hive-site.xml中输入如下配置信息:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<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</description></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value><description>username to use against metastore database</description></property><property><name>javax.jdo.option.ConnectionPassword</name><value>hive</value><description>password to use against metastore database</description></property>
</configuration>
8.1.4 安装并配置MySQL
1. 安装MySQL
这里采用MySQL数据库保存Hive的元数据,而不是采用Hive自带的derby来存储元数据,因此,需要安装MySQL数据库。可以参照“附录B:Linux系统中的MySQL安装及常用操作”,完成MySQL数据库的安装,这里不再赘述。
2. 下载MySQL JDBC驱动程序
为了让Hive能够连接到MySQL数据库,需要下载MySQL JDBC驱动程序。可以到MySQL官网(http://www.mysql.com/downloads/connector/j/)下载mysql-connector-java-5.1.40.tar.gz。
在Linux系统中打开一个终端,在终端中执行如下命令解压缩文件:
cd ~
tar -zxvf mysql-connector-java-5.1.40.tar.gz #解压
下面将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下
cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/local/hive/lib
3. 启动MySQL
执行如下命令启动MySQL,并进入“mysql>”命令提示符状态:
service mysql start #启动MySQL服务
mysql -u root -p #登录MySQL数据库
4. 在MySQL中为Hive新建数据库
现在,需要在MySQL数据库中新建一个名称为hive的数据库,用来保存Hive的元数据。MySQL中的这个hive数据库,是与Hive的配置文件hive-site.xml中的“mysql://localhost:3306/hive”对应起来的,用来保存Hive元数据。在MySQL数据库中新建hive数据库的命令,需要在“mysql>”命令提示符下执行,具体如下:
create database hive;
5. 配置MySQL允许Hive接入
需要对MySQL进行权限配置,允许Hive连接到MySQL。
grant all on *.* to hive@localhost identified by 'hive';
flush privileges;
6. 启动Hive
Hive是基于Hadoop的数据仓库,会把用户输入的查询语句自动转换成为MapReduce任务来执行,并把结果返回给用户。因此,启动Hive之前,需要先启动Hadoop集群,命令如下:
cd /usr/local/hadoop
./sbin/start-dfs.sh
然后,再执行如下命令启动Hive:
cd /usr/local/hive
./bin/hive
8.2 Hive的数据类型
Hive的基本数据类型
类型
描述
示例
TINYINT
1个字节(8位)有符号整数
1
SMALLINT
2个字节(16位)有符号整数
1
INT
4个字节(32位)有符号整数
1
BIGINT
8个字节(64位)有符号整数
1
FLOAT
4个字节(32位)单精度浮点数
1.0
DOUBLE
8个字节(64位)双精度浮点数
1.0
BOOLEAN
布尔类型,true/false
true
STRING
字符串,可以指定字符集
“xmu”
TIMESTAMP
整数、浮点数或者字符串
1327882394(Unix新纪元秒)
BINARY
字节数组
[0,1,0,1,0,1,0,1]
Hive的集合数据类型
8.3 Hive基本操作
8.3.1 创建数据库、表、视图
1. 创建数据库
创建数据库hive
hive> create database hive;
创建数据库hive,因为hive已经存在,所以会抛出异常,加上if not exists关键字,则不会抛出异常
hive> create database if not exists hive;
2. 创建表
在hive数据库中,创建表usr,含三个属性id,name,age
hive> use hive;
hive>create table if not exists usr(id bigint,name string,age int);
在hive数据库中,创建表usr,含三个属性id,name,age,存储路径为“/usr/local/hive/warehouse/hive/usr”
hive>create table if not exists hive.usr(id bigint,name string,age int)
>location ‘/usr/local/hive/warehouse/hive/usr’;
在hive数据库中,创建外部表usr,含三个属性id,name,age,可以读取路径“/usr/local/data”下以“,”分隔的数据。
hive>create external table if not exists hive.usr(id bigint,name string,age int)
>row format delimited fields terminated by ','
location ‘/usr/local/data’;
在hive数据库中,创建分区表usr,含三个属性id,name,age,还存在分区字段sex。
hive>create table hive.usr(id bigint,name string,age int) partition by(sex boolean);
在hive数据库中,创建分区表usr1,它通过复制表usr得到。
hive> use hive;
hive>create table if not exists usr1 like usr;
3. 创建视图
创建视图little_usr,只包含usr表中id,age属性
hive>create view little_usr as select id,age from usr;
8.3.2 删除数据库、表、视图
删除数据库
删除数据库hive,如果不存在会出现警告
hive> drop database hive;
删除数据库hive,因为有if exists关键字,即使不存在也不会抛出异常
hive>drop database if not exists hive;
删除数据库hive,加上cascade关键字,可以删除当前数据库和该数据库中的表
hive> drop database if not exists hive cascade;
删除表
删除表usr,如果是内部表,元数据和实际数据都会被删除;如果是外部表,只删除元数据,不删除实际数据
hive> drop table if exists usr;
删除视图
删除视图little_usr
hive> drop view if exists little_usr;
8.3.3 修改数据库、表、视图
修改数据库
为hive数据库设置dbproperties键值对属性值来描述数据库属性信息
hive> alter database hive set dbproperties(‘edited-by’=’lily’);
修改表
重命名表usr为user
hive> alter table usr rename to user;
为表usr增加新分区
hive> alter table usr add if not exists partition(age=10);
删除表usr中分区
hive> alter table usr drop if exists partition(age=10);
把表usr中列名name修改为username,并把该列置于age列后
hive>alter table usr change name username string after age;
在对表usr分区字段之前,增加一个新列sex
hive>alter table usr add columns(sex boolean);
删除表usr中所有字段并重新指定新字段newid,newname,newage
hive>alter table usr replace columns(newid bigint,newname string,newage int);
为usr表设置tblproperties键值对属性值来描述表的属性信息
hive> alter table usr set tabproperties(‘notes’=’the columns in usr may be null except id’);
修改视图
修改little_usr视图元数据中的tblproperties属性信息
hive> alter view little_usr set tabproperties(‘create_at’=’refer to timestamp’);
8.3.4 查看数据库、表、视图
查看数据库
查看Hive中包含的所有数据库
hive> show databases;
查看Hive中以h开头的所有数据库
hive>show databases like ‘h.*’;
查看表和视图
查看数据库hive中所有表和视图
hive> use hive;
hive> show tables;
查看数据库hive中以u开头的所有表和视图
hive> show tables in hive like ‘u.*’;
8.3.5 描述数据库、表、视图
描述数据库
查看数据库hive的基本信息,包括数据库中文件位置信息等
hive> describe database hive;
查看数据库hive的详细信息,包括数据库的基本信息及属性信息等
hive>describe database extended hive;
描述表和视图
查看表usr和视图little_usr的基本信息,包括列信息等
hive> describe hive.usr/ hive.little_usr;
查看表usr和视图little_usr的详细信息,包括列信息、位置信息、属性信息等
hive> describe extended hive.usr/ hive.little_usr;
查看表usr中列id的信息
hive> describe extended hive.usr.id;
8.3.6 向表中装载数据
把目录’/usr/local/data‘下的数据文件中的数据装载进usr表并覆盖原有数据
hive> load data local inpath ‘/usr/local/data’ overwrite into table usr;
把目录’/usr/local/data‘下的数据文件中的数据装载进usr表不覆盖原有数据
hive> load data local inpath ‘/usr/local/data’ into table usr;
把分布式文件系统目录’hdfs://master_srever/usr/local/data‘下的数据文件数据装载进usr表并覆盖原有数据
hive> load data inpath ‘hdfs://master_srever/usr/local/data’
>overwrite into table usr;
8.3.7 查询表中数据
该命令和SQL语句完全相同这里不再赘述。
8.3.8 向表中插入数据或从表中导出数据
向表usr1中插入来自usr表的数据并覆盖原有数据
hive> insert overwrite table usr1
> select * from usr where age=10;
向表usr1中插入来自usr表的数据并追加在原有数据后
hive> insert into table usr1
> select * from usr
> where age=10;
8.4 Hive应用实例:WordCount
现在我们通过一个实例——词频统计,来深入学习一下Hive的具体使用。首先,需要创建一个需要分析的输入数据文件,然后编写HiveQL语句实现WordCount算法,在Unix下实现步骤如下:
(1)创建input目录,其中input为输入目录。命令如下:
cd /usr/local/hadoopmkdir input
(2)在input文件夹中创建两个测试文件file1.txt和file2.txt,命令如下:
cd /usr/local/hadoop/inputecho "hello world" > file1.txtecho "hello hadoop" > file2.txt
(3)进入hive命令行界面,编写HiveQL语句实现WordCount算法,命令如下:
hive
hive> create table docs(line string);
hive> load data inpath 'input' overwrite into table docs;
hive>create table word_count as
select word, count(1) as count from
(select explode(split(line,' '))as word from docs) w
group by word
order by word;
执行完成后,用select语句查看运行结果如下:
8.5 Hive编程的优势
词频统计算法是最能体现MapReduce思想的算法之一,接下来,我们将比较WordCount算法在MapReduce中的编程实现和Hive中编程实现的主要不同点:
1. 采用Hive实现WordCount算法需要编写较少的代码量
在MapReduce中,wordcount类由63行Java代码编写而成代码位置:%HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar;
而在Hive中只需要编写7行代码
2. 在MapReduce的实现中,需要进行编译生成jar文件来执行算法,而在Hive中不需要。
HiveQL语句的最终实现需要转换为MapReduce任务来执行,这都是由Hive框架自动完成的,用户不需要了解具体实现细节。
8.6 本章小结
Hive是一个构建于Hadoop顶层的数据仓库工具,主要用于对存储在 Hadoop 文件中的数据集进行数据整理、特殊查询和分析处理。Hive在某种程度上可以看作是用户编程接口,本身不存储和处理数据,依赖HDFS存储数据,依赖MapReduce处理数据。
本章介绍了Hive的安装方法,包括下载安装文件、配置环境变量、修改配置文件、安装并配置MySQL等。Hive支持关系数据库中的大多数基本数据类型,同时Hive还支持关系数据库中不常出现的的3种集合数据类型。Hive提供了类似SQL的语句——HiveQL,可以很方便地对Hive进行操作,包括创建、修改、删除数据库、表、视图等。Hive的一大突出优点是,可以把查询语句自动转化成相应的MapReduce任务去执行得到结果,这样就可以大大节省用户的编程工作量,本章最后通过一个WordCount应用实例,充分展示了Hive的这一优点。
相关文章:
【大数据技术基础】 课程 第8章 数据仓库Hive的安装和使用 大数据基础编程、实验和案例教程(第2版)
第8章 数据仓库Hive的安装和使用 8.1 Hive的安装 8.1.1 下载安装文件 访问Hive官网(http://www.apache.org/dyn/closer.cgi/hive/)下载安装文件apache-hive-3.1.2-bin.tar.gz 下载完安装文件以后,需要对文件进行解压。按照Linux系统使用的…...
BERT 详解
BERT简介 BERT(Bidirectional Encoder Representations from Transformers)是由 Google 在 2018 年提出的一种预训练语言模型。BERT 在自然语言处理(NLP)领域取得了重大突破,因为它能够有效地捕捉文本的上下文信息&am…...
使用 MySQL 的 REPLACE() 函数轻松替换表中字段
前言 在数据库操作中,经常需要对存储的数据进行一些处理和修改,替换字段中的部分信息。MySQL 提供了多种字符串函数来帮助开发者完成这些任务。其中一个非常实用的函数就是 REPLACE()。 REPLACE() 函数简介 REPLACE() 函数用于在字符串中查找指定的子…...
Http 响应协议
HTTP的响应协议 响应数据格式 响应行 响应数据的第一行,包括协议、状态码、描述 响应头 从响应数据格式的第二行开始,也是以key:value的格式 响应体 和响应头之间有一个空行,是响应数据格式的最后一部分,用于存放响应的数据 常见响…...
TCP/IP 协议:网络世界的基石(2/10)
一、引言 在当今数字化时代,互联网已经成为人们生活中不可或缺的一部分。而在互联网的背后,TCP/IP 协议扮演着至关重要的角色,堪称互联网的基石。 TCP/IP 协议是一组用于数据通信的协议集合,它的名字来源于其中最重要的两个协议…...
Lua--1.基础知识
Lua基础知识 变量简单的4种变量类型复杂的4种变量类型type函数 字符串操作长度获取--#多行打印字符串拼接别的类型转字符串-- tostring()字符串提供的公共方法 运算符算术运算符-- - * / % ^条件运算符-- > < > < ~(不等于 是 ~)逻辑运算符-- and or not位运算、…...
【GPT】力量训练的底层原理?
详细解读力量训练的每一个底层原理 力量训练之所以有效,是因为它利用了肌肉、神经系统和生物化学反应的基本机制。以下逐一详细解析,并解释相关概念。 1. 应力-恢复-适应理论 概念解析 应力(Stress):指训练带来的负…...
各种排序算法
前置知识 排序: 按照递增或者递减的顺序把数据排列好 稳定性: 值相等的元素在排序之后前后顺序是否发生了改变 内部排序: 数据放在内存上 外部排序: 数据放在磁盘上 内部排序 基于比较的排序 几大排序算法 1. 堆排序 特点: 思想: 1. 创建大根堆,把所有元素放在大根堆里…...
源码解读笔记:协程的 ViewModel.viewModelScope和LifecycleOwner.lifecycleScope
分析下ViewModel.viewModelScope public val ViewModel.viewModelScope: CoroutineScopeget() {val scope: CoroutineScope? this.getTag(JOB_KEY)if (scope ! null) {return scope}return setTagIfAbsent(JOB_KEY,CloseableCoroutineScope(SupervisorJob() Dispatchers.Ma…...
11.27周三F34-Day8打卡
文章目录 1. 学习让我感觉很棒。(什么关系?动作 or 描述?主语部分是?)解析答案:【解析答案分析】【对比分析】【拓展内容】2. 她忽然想起来钥匙放另一个包里了。解析答案:【拓展内容】3. 她来不来都没关系。(该由什么引导?这句话又属于什么关系,动作 or 描述?)解析答案…...
XG(S)-PON原理
前言 近年来,随着全球范围内接入市场的飞快发展以及全业务运营的快速开展,已有的PON技术标准在带宽需求、业务支撑能力以及接入节点设备和配套设备的性能提升等方面都面临新的升级需求XG(S)-PON(10G GPON)是在已有GPON技术标准上演进的增强下一代GPON技…...
C语言实例之9斐波那契数列实现
1. 斐波那契数列简介 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多・斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为 “兔子数列”。 它的特点是从第三…...
YOLO系列论文综述(从YOLOv1到YOLOv11)【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】
目录 1 前言2 YOLO在不同领域的应用3 物体检测指标和NMS3.1 mAP和IOU3.2 mAP计算流程3.2.1 VOC 数据集3.2.2 微软 COCO 数据集 3.3 NMS 1 前言 最近在做目标检测模型相关的优化,重新看了一些新的论文,发现了几篇写得比较好的YOLO系列论文综述࿰…...
数据结构--Map和Set
目录 一.二叉搜索树1.1 概念1.2 二叉搜索树的简单实现 二.Map2.1 概念2.2 Map常用方法2.3 Map使用注意点2.4 TreeMap和HashMap的区别2.5 HashMap底层知识点 三.Set3.1 概念3.2 Set常用方法3.3 Set使用注意点3.4 TreeSet与HashSet的区别 四.哈希表4.1 概念4.2 哈希冲突与避免4.3…...
计算机操作系统——进程控制(Linux)
进程控制 进程创建fork()函数fork() 的基本功能fork() 的基本语法fork() 的工作原理fork() 的典型使用示例fork() 的常见问题fork() 和 exec() 结合使用总结 进程终止与$进程终止的本质进程终止的情况正常退出(Exit)由于信号终止非…...
【前端】ES6基础
1.开发工具 vscode地址 :https://code.visualstudio.com/download, 下载对应系统的版本windows一般都是64位的 安装可以自选目录,也可以使用默认目录 插件: 输入 Chinese,中文插件 安装: open in browser,直接右键文件…...
【排序算法 python实现】
排序算法 python实现 / 默写 # 汉诺塔 import copy import randomdef hanuo(n, a, b, c):if n 1:print(f{a} --> {c})returnhanuo(n - 1, a, c, b)print(f{a} --> {c})hanuo(n - 1, b, a, c)hanuo(3, A, B, C)# 冒泡排序 def bubble_sort(arr):n len(arr)for i in ran…...
Java图书管理系统(简易保姆级)
前面学习了这么多知识,为了巩固之前的知识,我们就要写一个图书管理系统来帮助大家复习,让大家的知识融会贯通~~~ 话不多说,直接开始今天的内容~ 首先呢,我们要有一个大体的思路: 实现效果思路有两种情况&a…...
嵌入式硬件设计:从概念到实现的全流程
嵌入式硬件设计是现代电子技术中一个至关重要的领域,涉及从硬件架构设计到硬件调试的各个方面。它为我们日常生活中的各类智能设备、家电、工业控制系统等提供了强大的支持。本文将介绍嵌入式硬件设计的基本流程、关键技术、常用工具以及常见的挑战和解决方案&#…...
第 4 章 Java 并发包中原子操作类原理剖析
原子变量操作类 AtomicLong 是原子性递增或者递减类,其内部使用 Unsafe 来实现,AtomicLong类也是在 rt.jar 包下面的,AtomicLong 类就是通过 BootStarp 类加载器进行加载的。这里的原子操作类都使用 CAS 非阻塞算法 private static final lon…...
从 0 到 1 掌握部署第一个 Web 应用到 Kubernetes 中
文章目录 前言构建一个 hello world web 应用项目结构项目核心文件启动项目 检查项目是否构建成功 容器化我们的应用编写 Dockerfile构建 docker 镜像推送 docker 镜像仓库 使用 labs.play-with-k8s.com 构建 Kubernetes 集群并部署应用构建 Kubernetes 集群环境编写部署文件 总…...
政安晨【零基础玩转各类开源AI项目】探索Cursor-AI Coder的应用实例
目录 Cusor的主要特点 Cusor实操 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! Cursor 是 Visual Studio Code 的一个分支。这使我们能够…...
CentOS 7 安装部署 KVM
1.关闭虚拟机 打开相关选项 打开虚拟机centos7 连接xshell 测试网络,现在就是没问题的,因为我们要使用网络源 安装 GNOME 桌面环境 安装KVM 模块 安装KVM 调试工具 构建虚拟机的命令行工具 qemu 组件,创建磁盘、启动虚拟机等 输入这条命令,…...
ArcGIS 10.2软件安装包下载及安装教程!
今日资源:ArcGIS 适用系统:WINDOWS 软件介绍:ArcGIS是一款专业的电子地图信息编辑和开发软件,提供一种快速并且使用简单的方式浏览地理信息,无论是2D还是3D的信息。软件内置多种编辑工具,可以轻松的完成地…...
一个专为云原生环境设计的高性能分布式文件系统
大家好,今天给大家分享一款开源创新的分布式 POSIX 文件系统JuiceFS,旨在解决海量云存储与各类应用平台(如大数据、机器学习、人工智能等)之间高效对接的问题。 项目介绍 JuiceFS 是一款面向云原生设计的高性能分布式文件系统&am…...
基于深度学习CNN算法的花卉分类识别系统01--带数据集-pyqt5UI界面-全套源码
文章目录 基于深度学习算法的花卉分类识别系统一、项目摘要二、项目运行效果三、项目文件介绍四、项目环境配置1、项目环境库2、环境配置视频教程 五、项目系统架构六、项目构建流程1、数据集2、算法网络Mobilenet3、网络模型训练4、训练好的模型预测5、UI界面设计-pyqt56、项目…...
3174、清除数字
3174、[简单] 清除数字 1、题目描述 给你一个字符串 s 。你的任务是重复以下操作删除 所有 数字字符: 删除 第一个数字字符 以及它左边 最近 的 非数字 字符。 请你返回删除所有数字字符以后剩下的字符串。 2、解题思路 遍历字符串: 我们需要逐个遍…...
C++ 优先算法 —— 无重复字符的最长子串(滑动窗口)
目录 题目: 无重复字符的最长子串 1. 题目解析 2. 算法原理 Ⅰ. 暴力枚举 Ⅱ. 滑动窗口(同向双指针) 3. 代码实现 Ⅰ. 暴力枚举 Ⅱ. 滑动窗口 题目: 无重复字符的最长子串 1. 题目解析 题目截图: 此题所说的…...
ADS学习笔记 6. 射频发射机设计
基于ADS2023 update2 更多ADS学习笔记:ADS学习笔记 1. 功率放大器设计ADS学习笔记 2. 低噪声放大器设计ADS学习笔记 3. 功分器设计ADS学习笔记 4. 微带分支定向耦合器设计ADS学习笔记 5. 微带天线设计 -1、射频发射机性能指标 在射频电路和系统中,发送…...
上海乐鑫科技一级代理商飞睿科技,ESP32-C61高性价比WiFi6芯片高性能、大容量
在当今快速发展的物联网市场中,无线连接技术的不断进步对智能设备的性能和能效提出了更高要求。为了满足这一需求,乐鑫科技推出了ESP32-C61——一款高性价比的Wi-Fi 6芯片,旨在为用户设备提供更出色的物联网性能,并满足智能设备连…...
amaze wordpress/常用的搜索引擎有哪些?
为什么80%的码农都做不了架构师?>>> FLV FLV(Flash Video)是一种适合网络的视频封装格式。 需要使用Flash Player来加载播放。是视频网站最常用的格式。 MP4 MP4(MPEG-4 Part 14)是一种更通用的视频封装格…...
wordpress删除谷歌自提/网站ip查询站长工具
本文来自 あたらしい経済 原文作者 | 中谷一马(日本众议院议员)译者 | Azuma出品 | Odaily星球日报(ID:o-daily)6月18日,Facebook正式公布了其数字货币项目Libra,该项目旨在利用区块链技术创造…...
做外贸网站平台/seo搜外
你有个任务,需要用到某个开源项目;或者老大交代你一个事情,让你去了解某个东西。怎么下手呢?如何开始呢?我的习惯是这样: 1. 首先,查找和阅读该项目的博客和资料,通过google你能找到某个项目大体…...
wordpress友情链接激活/百度竞价排名规则
简介 zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位解决存在的各种问题。 Zabbix 主要特点 安装与配置简…...
建筑培训网站/免费的网站推广
找到这个文件 , 双击打开它 open(文件路径 , mode ’’,encode’’) 文件路径: 1.绝对路径 d:/test/xxxx/txt 2.相对路径 相对于当前你的程序所在的文件夹 ../ 返回上一层文件夹mode: r: read 读取 w: write 写 a: append 追加写入 b: 读写…...
门户网站平台建设方案/行业数据统计网站
一、复制表1. 复制表结构及其数据:create table table_name_new as select * from table_name_old2. 只复制表结构:create table table_name_new as select * from table_name_old where 12;或者:create table table_name_new like table_nam…...