笔记整理之,Mysql的简单使用

安装过程很简单,主要记录期间碰到的问题:

之前2篇日志整理了BCP大致的用法,这次整理一下它的兄弟 Bulk Insert
的写法以及和bcp那边的结合的用法。

接上文Mysql的简单使用(一)

安装过程:

首先,Bulk Insert 语句要在连接了Sql Server 服务器之后才执行的,和bcp
不一样,bcp 是以命令来执行,而Bulk Insert 相当于一个执行一个操作语句

字段参数以“(字段名1 数据类型1,字段名2 数据类型2,……)”的形式构建。

下载安装包:

然后这里列举一下Bulk Insert 的用法,和对应bcp 的参数的对应关系。

关于mysql常用的数据类型,一下是比较常用的几种,想查阅比较详细的资料可以自寻去网上搜寻。

hadoop:

bulk insert t4
from ‘D:\t3.txt’
with(
DataFileType = ‘char’ — DataFileType选项支持
char|native|widechar|widenative 相对应的bcp接口就是 -c|-n|-w|-N
,BatchSize = 1 –BatchSize 相当于bcp里面的 -b 选项,每次交互多少行数据
,FieldTerminator = ‘ ‘ –FieldTerminator 相当于bcp
里面的-t选项,标识同一行数据里面的列分割
,RowTerminator = ‘\r\n’ –RowTerminator 相当于bcp里面的 -r
选项,标识不同行数据里面的行分割
,ForMatFile = ‘D:\format. –(1、文件的列比表的列多
2、列顺序和数据库列顺序不一致 )
,KeepIdentity –KeepIdentity 相当于bcp 里面的 -E
选项,表示保留导入数据的标识列的数据
,KeepNulls –KeepNulls 相当于 bcp 里面的
-k选项,保留导入数据的Null值,不转换成列的默认值
,FirstRow = 2 –FirstRow 相当于 bcp 里面的 -F 选项,表示开始导入的首行
,LastRow = 4 –LastRow 相当于 bcp 里面的 -L 选项,表示导入的尾行
,Check_Constraints –是否检查表中约束,如果没有该选项,那么忽略
,codePage = ‘850’ –相当于bcp 里面的-C 选项
)

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

hive:

 

类型                  说明

redis:

如果之前用过bcp 这个应该也没有什么大的问题。

CHAR      1~255个字符的定长串,它的长度必须在创建时指定,否则MySQL假定为CHAR(1)

解压:

以上with
之后的所有选项其实都可以不填的,如果要填的话,可以参考官网或者我后面的注释。

VARCHAR    可变长度,最多不超过255字节,如在创建时指定VARCHAR(n),则可存储0~n个字符的变长串

tar-zxvf xx.gz

其中一个比较注意的是formatfile
这个选项,如果导入的文件和目标的表的列顺序或者列数不一致的时候,那么就需要使用formatflie
来告诉数据库数据怎么摆位,如果是想省点事可以先使用bcp
来生成一个格式化文件先,无论是非xm文件还是

TEXT       最大长度为64K的变长文本

配置用户配置文件:mac我的是~/.bash_profile,ubuntu是~/.bashrc,配置完source一下

 

LONGTEXT     同Text,最大长度为4GB(纯文本,一般不会到4G)

hadoop和redis的配置这些就OK了,其他的使用步奏参照官网的步奏

另外,bcp 里面是没有Check_Constraints 这个选项的,但是BulkInsert
这里可以支持,使用这个选项也可以更好地保证导入数据的数据完整性。

ENUM         接受最多64K个串组成的预定义集合的某个串

# javaexport JAVA_HOME=/opt/jdk1.8.0_73export PATH=$PATH:$JAVA_HOME/bin# hadoopexport HADOOP_HOME=/opt/hadoop-2.7.2export PATH=$PATH:$HADOOP_HOME/bin#hiveexport HIVE_HOME=/opt/hive-2.0.0-binexport PATH=$PATH:$HIVE_HOME/bin

其他的参数和选项,都和bcp里面找到对应的方法,应用也类似。这里也没必要再次重复了~

SET         接受最多64K个串组成的预定义集合的零个或多个串

redis:需要./configure,make ,make install这些步骤就可以了。

本次分享到这里

INT[(M)]     4字节(整数值,有符号值:-2147683648 到2147683647(-
2^31 到2^31- 1) 无符号值:0到4294967295(0 到2^32 – 1))

下面主要记录遇到问题:

 

DATE      4字节(以年月日的格式显示日期,范围是1000-01-01——9999-12-31)

1:Hadoop支持平台问题:Hadoop本地库不支持mac,一开始捣鼓了好久也没成功,想本地编译也是各种问题,所以,最后就忍受一下每次运行的时候的没有本地库的警告

 

TIME      
3字节(以时分秒的格式显示时间,范围是-838:59:59——838:59:59)

2:hive
碰到问题可能无关hive,比如:hive获取Hadoop版本号的时候用到awk,碰巧awk报错了

 

DATETIME    8字节(显示日期和时间,范围是1000-01-01
00:00:00——9999-12-31 23:59:59)

awk: symbol lookup error: /usr/local/lib/libreadline.so.6: undefined
symbol: UP

 

BLOB      存储二进制数据类型,最大长度为64KB。

是awk链接库的问题,报错的最新的so文件,把最新的so文件删掉就可以了

说明:(1)TIME时间范围居然有这么大的范围,特别是 time
可以取负值,这是mysql为了满足两个日期时间相减才这样设计的。

ubuntu@ubuntu:~$ ldconfig -p |grep libreadline  libreadline.so.6 (libc6,x86-64) => /usr/local/lib/libreadline.so.6  libreadline.so.6 (libc6,x86-64) => /lib/x86_64-linux-gnu/libreadline.so.6  libreadline.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/libreadline.so.5  libreadline.so (libc6,x86-64) => /usr/local/lib/libreadline.soubuntu@ubuntu:~$ ll ldconfig -p |grep libreadlinels: cannot access 'ldconfig': No such file or directoryubuntu@ubuntu:~$ ll /usr/local/lib/ |grep libreadline-rw-r--r-- 1 root  root  1452584 May 16 11:10 libreadline.alrwxrwxrwx 1 root  root     16 May 16 11:10 libreadline.so -> libreadline.so.6*lrwxrwxrwx 1 root  root     18 May 16 11:10 libreadline.so.6 -> libreadline.so.6.3*-r-xr-xr-x 1 root  root   826584 May 16 11:10 libreadline.so.6.3*ubuntu@ubuntu:~$ ll /lib/x86_64-linux-gnu/ |grep libreadlinelrwxrwxrwx 1 root root   18 Feb 7 18:11 libreadline.so.5 -> libreadline.so.5.2-rw-r--r-- 1 root root 249144 Feb 7 18:11 libreadline.so.5.2lrwxrwxrwx 1 root root   18 May 14 18:03 libreadline.so.6 -> libreadline.so.6.3-rw-r--r-- 1 root root 282392 Feb 5 01:18 libreadline.so.6.3



ubuntu@ubuntu:~$ sudo mv /usr/local/lib/libreadline.so.6 /usr/local/lib/libreadline.so.6.bak

   (2)BLOB二进制数据类型是比较重要的数据类型,因为所有的图片,视频,音频文件都是以二进制进行存储的。

这样就不会报awk的错了

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

Hive metastore database is not initialized. Please use schematool

 

这个问题具体的原因应该是当前目录下的metastore_db/没有被初始化,可以对其进行重命名或者删除后,运行

新建一个表后,可以粗略的查看表的结构,命令为:> desc 表名称;  
 >show columns from 表名称;

schematool -initSchema -dbType derby

表的结构包括属性名,数据类型,是否为空值,是否设定默认值等信息。

Derby是Apache的一个数据库,可以作为hive的默认值,我设置为mysql的时候报错,估计想设置为mysql估计要配置一些东西。

图片 1

这样Hadoop和hive都可以正常使用了。

 

安装redis的时候碰到一个坑,也可以说是自己想复杂了,redis
依赖挺多东西的,但redis安装包里面都自带了,并且,重要的事情说三遍:redis都自带了,并且都不需要安装,只需要make(jemalloc还需configure一下),不需要install,不需要install,不需要install。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签:, , , , , , , , , , , ,
网站地图xml地图