【Hive】DDL语句详解一-知无不言
学会了Hive的一些操作,发现Hive建过表,后续的数据并不是向MySQL是通过自己手写进行插入的,而是将TXT文件解析成为数据表的操作。其实是HDFS将文件映射成Hive表,然后然后通过写类SQL的语句来操作该文件,底层会被解析成为MR程序。
Hive的本质把HDFS文件映射成一张Hive表, 然后通过写类SQL的语句来操作它(HDFS文件), 底层会被解析成MR程序, 交由Yarn来调度执行.
DDL(Data Define Language)是什么?
见名知意,数据定义语言==Data Define Language。
对数据库的操作:包含创建(Create)数据库,数据表、修改数据库 (Alter table)
对数据表的操作:内部表(Managed Table)及外部表(External),分区表(Partition)和分桶表
数据库Operation1234567create database if not exists 数据库名; -- 创建数据库show databases; -- 查看系统中所有数据库use 数据库名; -- 切换数据库 ...
【Python查漏补缺(一)】闭包和装饰器
闭包的构成条件:
在函数嵌套(函数里面再定义函数)的前提下
内部函数使用了外部函数的变量(还包括外部函数的参数)
外部函数返回了内部函数
简单来说就是:有嵌套,有引用,有返回。
然后最近在敲代码的过程中发现:被装饰的函数和闭包中的内部函数都是一样的参数。
简单闭包
闭包其实是为了装饰器服务的,闭包其实本身没什么用。
关键点在于创建闭包实例,比如$f = fun_out(1)$其实$f$不是普通变量,而是一个函数对象。
12345678910111213def fun_out(num1): # 定义外部函数 def fun_inner(num2): # 内部函数使用了外部函数的变量 result = num2 + num1 print("结果是: ", result) # 外部函数返回了内部函数,这里返回的内部函数就是闭包 return fun_inner f = fun_out(1) # 创建闭包实例f(2)f(3)
当返回的内部函数使用了外部函数的变量就形成了闭包
闭包可以 ...
MySQL刷题本1(Northwind)
微软NorthWind
本文章的练习题来自Microsoft的Northwind项目,是一个开源的数据库练习项目。
经过一个上午的练习,一口气将34道练习题做完了。
对于这个练习题,我的评价是难度不大,很适合上手,另外一个45道题的刷题本可就比这难多了!
数据准备数据源是从Git上下载的, 微软的北风项目的源数据Northwind数据库在我的博客园MySQL刷题12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114 ...
初识Hadoop集群
学校之前学习过Hadoop,只是记得当时老师搭建Hadoop环境就用了很久的时间,不过实话说,集群搭建的话真的很耗时间。而且搭建这个集群是比较重要的一步操作,因为数仓的底层用的就是Hadoop。
后面会有具体搭建Hadoop集群的步骤,这里就不再啰嗦了。
Apache Hadoop是什么!
hadoop 广义上来说 hadoop整个生态,狭义来说,大数据软件
hadoop 软件分为三个组件(见名知意)
HDFS(Hadoop Distributed File System): 分布式存储系统
MapReduce: 分布式计算引擎
Yarn: 分布式资源调度平台
什么是分布式:
打个比方,做一道菜需要有切菜(多个人),洗菜(多个人),买菜(多个人),这个过程中切,洗,买就构成了分布式。而在切菜中多个人就算一个集群,集群中的人做相同的事情。
大数据的三驾马车2003, 谷歌发表GFS, 道格·卡丁(Doug Cutting)开源, 叫: HDFS(Hadoop Distributed File System)2004, 谷歌发表MapReduce, 道格·卡丁(D ...
SQL进阶(多表查询+窗口函数简单使用)
SQL基础语句之多表查询外键约束外键约束的添加方法
假设现在我们有两张表“分类表” 和“商品表”
— category —
cid VARCHAR(32) PRIMARY KEY,
cname VARCHAR(100) #分类名称
12345678- — products— - ```sql pid VARCHAR(32) PRIMARY KEY, name VARCHAR(40), price DOUBLE, category_id VARCHAR(32),
在创表语句后添加:CONSTRAINT FOREIGN KEY (外键字段) REFERENCES 主表名(主键)
category分类表,为唯一方,也就是主表,必须提供主键cid
products商品表,为多方,也就是从表,必须提供外键category_id
外键约束检测外键约束的优点
==在插入数据时,保证了数据的准确性==
1234567INSERT INTO category (cid ...
SQL基础(DDL->DML->DQL)
Sql语言基础回顾DDL语言(数据定义语言)DDL之数据库操作(DATABASE)
主要完成数据库的创建,查看,使用和删除。
1234567CREATE DATABASE test; # 创建数据库CREATE DATABASE IF NOT EXISTS mysql_db CHAR SET 'utf8'; # 创建数据库并定义字符集为utf8(同时如果数据库存在就不用创建)charset=utf8SHOW DATABASES; # 查看服务器中所有的数据库USE mysql_db; # 使用数据库SELECT database(); # 查看我们使用的是哪一个数据库DROP DATABASE test; # 删除数据库
主要目的是能够完成表的创建,查看,重命名和删除
DDL之数据表操作(TABLE)123456789CREATE TABLE student( id INT NOT NULL PRIMARY KEY , name VARCHAR(20), age INT); # 创建student表SHOW TABLES ; ...
Mysql分表操作+Case_When+PyMysql
分表操作为什么要分表,一个表不好吗?
这要从范式说起。
数据库系统概论里面是这样说的:
第一范式(1NF):字段不可分;
第二范式(2NF):有主键,非主键字段依赖主键;
第三范式(3NF):非主键字段不能相互依赖。
可能是我太菜了,看不懂,那就自己总结一下。
1NF(原子性)==> 所有字段不可再分
比如:
姓名
个人信息
张三
12岁,5年级,二班,男
这种就是不符合第一范式的,起码要将年级,班级,年龄,性别分为几个不同的字段。
2NF(唯一性)==> 一个表只能说明一个事物
比如:
学号
姓名
年龄
课程名称
成绩
学分
这个表就不符合第二范式,因为这个表明显说明了两个事务:学生信息, 课程信息。
这个不符合第二范式的表会导致如下问题:
数据冗余:每条记录都含有相同信息,比如课程名称相同,需要占用很多存储空间
删除异常:删除所有学生成绩,就把课程信息全删除了,这种就很难受
插入异常:学生未选课,数据库中的数据不完整会导致插入不进去
更新异常:调整课程学分,所有行都调整
3NF ==> 每列都与主键有直 ...
Linux常用命令(进阶)
Linux进阶命令Linux常用高级命令
1
top
查看内存
2
df -h
查看磁盘存储情况(并以人性化方式显示)
3
iotop
查看磁盘IO读写(yum install iotop安装)
4
iotop -o
直接查看比较高的磁盘读写程序
5
netstat -anp(-tunlp) | grep 端口号
查看端口占用情况
6
uptime
查看报告系统运行时长及平均负载
7
ps -aux
查看进程
8
echo
重定向,用于追加内容或者覆盖内容,输出内容到控制台
9
free
查看内存使用情况
10
ln (-s)
创建硬(软)链接
记得链式学习装虚拟机时一定要记住的命令:12345678910111213# 编辑虚拟机的网络vim /etc/sysconfig/network-scripts/ifcfg-ens33# 修改BOOTPROTO="none" # 看这里, 必须是none或者static, 不能是dhcpIPADDR="192.168.88.161"PREFIX=" ...
Kettle食用教程
我的博客园:https://www.cnblogs.com/liam-sliversucks/p/17389584.html
Kettle使用教程Kettle是什么
kettle原本是水壶的意思,是可以将一种类型的数据转换为另一种类型的数据,还可以对同种类型的数据进行筛选,分表操作。
对于企业或行业应用来说,经常会遇到各种数据的处理,转换,迁移,掌握一种ETL工具的使用,必不可少,这篇文章介绍的ETL工具是Kettle,现在已经更名为PDI。
可能我对于Kettle的了解还不是很深刻,但是先做好总结,为后续的ETL ==> 数据抽取(extract)、转换(transform)、加载(load)打好基础。
Kettle有什么用?ketlle可以在多种数据源之间进行快速转换。
kettle开发步骤:
新建转换
构建Kettle的数据流图
配置数据流图中的各个组件
保存并启动执行
Kettle的数据转换Txt数据转换ExcelExcel数据转换mysql数据MySQL数据表间转换插入-更新组件switch-case组件定时定次执行SQL脚本设 ...
集群配置前置VMware+Centos
本站由于部署在Github上,故很少上传图床。
为方便浏览,将一些带有图片的心得全部放在博客园
VMware for Mac出现版本过低问题
解决办法:在虚拟机解压文件夹中找到Windows 7 x64.vmx(比如node1.vmx都行)并用Notepad++打开,编辑ddb.virtualHWVersion = "18"将18改为14就解决了。这里我的Mac OS版本有点老了,新版的可以弄高点,免得出现一些莫名其妙的错误。
VMware安装VMware安装步骤for Windows
傻瓜式安装, 下一步下一步即可,再不会直接百度
细节: 优先装VM16, 其次VM15(如果开机蓝屏, 换版本即可), 本质没太大区别
验证成功去你的windows网络连接中, 能看到 VMNet1 和 VMNet8两个网卡即可
Vmware for Mac安装直接下一步就行,很人性化的,但是需要制定镜像。
注意这里的镜像是纯净版。
在VMware中安装虚拟机使用Linux时–两个常见问题
问题1: 装Linux系统的时候, IP忘记改了, 或者改错了怎么办?
123456 ...



