MySQL规约(阿里巴巴)

建表规约

  1. 【强制】表达是与否概念的字段,必须使用 is _ xxx 的方式命名,数据类型是 unsigned tinyint
    ( 1 表示是,0 表示否 ) ,此规则同样适用于 odps 建表。
    说明:任何字段如果为非负数,必须是 unsigned 。
  2. 【强制】表名、字段名必须使用小写字母或数字 ; 禁止出现数字开头,禁止两个下划线中间只
    出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。
    正例: getter _ admin , task _ config , level 3_ name
    反例: GetterAdmin , taskConfig , level _3_ name
  3. 【强制】表名不使用复数名词。
    说明:表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于 DO 类名也是单数
    形式,符合表达习惯。
  4. 【强制】禁用保留字,如 desc 、 range 、 match 、 delayed 等,请参考 MySQL 官方保留字。
  5. 【强制】唯一索引名为 uk _字段名 ; 普通索引名则为 idx _字段名。
    说明: uk _ 即 unique key;idx _ 即 index 的简称。
  6. 【强制】小数类型为 decimal ,禁止使用 float 和 double 。
    说明: float 和 double 在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不
    正确的结果。如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数分开存储。
  7. 【强制】如果存储的字符串长度几乎相等,使用 char 定长字符串类型。
  8. 【强制】 varchar 是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长
    度大于此值,定义字段类型为 text ,独立出来一张表,用主键来对应,避免影响其它字段索
    引效率。
  9. 【强制】表必备三字段: id , gmt _ create , gmt _ modified 。
    说明:其中 id 必为主键,类型为 unsigned bigint 、单表时自增、步长为 1。 gmt _ create ,
    gmt _ modified 的类型均为 date _ time 类型。
  10. 【推荐】表的命名最好是加上“业务名称_表的作用”。
    正例: tiger _ task / tiger _ reader / mpp _ config

查看更多

MapReduce详解

MapReduce简介

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念”Map(映射)”和”Reduce(归约)”,是它们的主要思想。

MapReduce极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。


WordCount单词计数

单词计数是最简单也是最能体现MapReduce思想的程序之一,可以称为MapReduce版”Hello World”。
词计数主要完成功能是:统计一系列文本文件中每个单词出现的次数。

以下是WordCount过程图解,可以先大致浏览下,然后结合下文的Mapper和Reduce任务详解进行理解。

分片后解析为键值对

查看更多

Sqoop简介及安装

Hadoop业务的大致开发流程以及Sqoop在业务中的地位:


Sqoop概念

Sqoop可以理解为【SQL–to–Hadoop】,正如名字所示,Sqoop是一个用来将关系型数据库和Hadoop中的数据进行相互转移的工具。它可以将一个关系型数据库(例如Mysql、Oracle)中的数据导入到Hadoop(例如HDFS、Hive、Hbase)中,也可以将Hadoop(例如HDFS、Hive、Hbase)中的数据导入到关系型数据库(例如Mysql、Oracle)中。

查看更多

Flume简介及安装

Hadoop业务的大致开发流程以及Flume在业务中的地位:


从Hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步,从而引出我们本文的主角—Flume。


Flume概念


flume是分布式的日志收集系统,它将各个服务器中的数据收集起来并送到指定的地方去,比如说送到图中的HDFS,简单来说flume就是收集日志的。

查看更多

HIVE安装配置

Hive简介

Hive 基本介绍
Hive 实现机制
Hive 数据模型
Hive 如何转换成MapReduce
Hive 与其他数据库的区别
以上详见:https://chu888chu888.gitbooks.io/hadoopstudy/content/Content/8/chapter8.html

Hive 和 Hbase 的区别
详见:http://www.cnblogs.com/justinzhang/p/4273470.html


Hive环境模式

  • 内嵌模式
    将元数据保存在本地内嵌的 Derby 数据库中,这是使用 Hive 最简单的方式。但是这种方式缺点也比较明显,因为一个内嵌的 Derby 数据库每次只能访问一个数据文件,这也就意味着它不支持多会话连接。

  • 本地模式
    这种模式是将元数据保存在本地独立的数据库中(一般是 MySQL),这用就可以支持多会话和多用户连接了。

  • 远程模式
    此模式应用于 Hive 客户端较多的情况。把 MySQL 数据库独立出来,将元数据保存在远端独立的 MySQL 服务中,避免了在每个客户端都安装 MySQL 服务从而造成冗余浪费的情况。


下载安装HIVE

Hive 是基于 Hadoop 文件系统之上的数据仓库。因此,安装Hive之前必须确保 Hadoop 已经成功安装。

本次教程,使用hive2.0.1版本,下载地址:http://mirrors.hust.edu.cn/apache/hive/hive-2.0.1/
下载apache-hive-2.0.1-bin.tar.gz,解压至/data/hive

1
2
3
tar -zxvf apache-hive-2.0.1-bin.tar.gz -C /data
cd /data
mv apache-hive-2.0.1-bin hive

查看更多

薛兆丰的北大经济学课

最近订阅了一年的薛兆丰的北大经济学课程,全年模块如下,随着学习深入,会逐渐补上相关课程的学习心得。
图谱访问地址:https://www.processon.com/view/link/58b25351e4b042deea13d552

hadoop2.7.2单机与伪分布式安装

环境相关

系统:CentOS 6.8 64位
jdk:1.7.0_79
hadoop:hadoop 2.7.2


安装java环境

详见:linux中搭建java开发环境


创建hadoop用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 以root用户登录
su root

# 创建一个hadoop组下的hadoop用户,并使用 /bin/bash 作为shell
useradd -m hadoop -G hadoop -s /bin/bash

# useradd 主要参数
# -c:加上备注文字,备注文字保存在passwd的备注栏中。
# -d:指定用户登入时的启始目录
# -D:变更预设值
# -e:指定账号的有效期限,缺省表示永久有效
# -f:指定在密码过期后多少天即关闭该账号
# -g:指定用户所属的起始群组
# -G:指定用户所属的附加群组
# -m:自动建立用户的登入目录
# -M:不要自动建立用户的登入目录
# -n:取消建立以用户名称为名的群组
# -r:建立系统账号
# -s:指定用户登入后所使用的shell
# -u:指定用户ID号

# 设置hadoop用户密码,按提示输入两次密码
# 学习阶段可简单设为"hadoop",若提示“无效的密码,过于简单”,则再次输入确认即可
passwd hadoop

查看更多

HDFS运行原理

简介

HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据google发表的论文翻版的。论文为GFS(Google File System)Google 文件系统(中文英文)。

HDFS有很多特点:

  • 运行在廉价的机器上。
  • 保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。默认存3份。
  • 适合大数据的处理。多大?多小?HDFS默认会将文件分割成block,64M为1个block。然后将block按键值对存储在HDFS上,并将键值对的映射存到内存中。如果小文件太多,那内存的负担会很重。

查看更多

大数据进阶计划

最近看了一篇文章,里面认为大数据学习有以下几个步骤

  • 初识Hadoop
  • 更高效的WordCount
  • 把别处的数据搞到Hadoop上
  • 把Hadoop上的数据搞到别处去
  • 快一点吧,我的SQL
  • 一夫多妻制
  • 越来越多的分析任务
  • 我的数据要实时
  • 我的数据要对外
  • 牛逼高大上的机器学习

15年曾自学走到第六步,装了一大推软件,跑了一堆数据。
可惜当时只保存了学习资料和一堆杂乱无章的笔记,没有整理成脚本和文章。
现想捡回以前的知识,并进阶学习,又得从头开始,悔不当初。

整理当初的大数据学习资料(视频、ppt、代码和安装包等),链接如下(密码短期之内不会修改):

最近一个月,会利用之前的学习资料,并按照下面的技术图谱,开始大数据进阶之旅。
随着学习深入,会将新写的文章链接汇入图谱相关知识点中。
脑图持续更新,访问地址:https://www.processon.com/view/link/58a81160e4b0669d9957a433

查看更多

大数据学习思维导图

最近一个月,会进行大数据进阶之旅。
随着学习深入,会将新写的文章链接汇入图谱相关知识点中。
脑图持续更新,访问地址:https://www.processon.com/view/link/58a81160e4b0669d9957a433

查看更多