赞
踩
linux模板机:
1. ip 动态ip =》静态ip
1.内网
2.学习方便
2.关闭防火墙 :
1-65535
关闭防火墙
3.额外的安装包 :
1.jdk =》 卸载掉
2.mysql =》 mysql自带的额外包【安装mysql 去掉就行】 【superset mysql自带的额外包】
ip:
1.win =》 vmware :
1.子网ip 1-255
192.168.10.0
2.网关
192.168.10.2
2.linux => 静态ip
IPADDR=192.168.10.10
GATEWAY=192.168.10.2
DNS1=192.168.10.2
[root@sygy10 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO="static"
ONBOOT="yes"
IPADDR=192.168.10.10
GATEWAY=192.168.10.2
DNS1=192.168.10.2
【重启网络或者 重启机器】
service network restart
关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
额外的安装包 :
1.jdk =》 卸载掉
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
linux =》 centos :
1.安装软件:
1.yum
2.rpm
3.tar
rpm :
卸载:
1.查询 java
rpm -qa | grep -i java
2.卸载
rpm -e --nodeps xxx
克隆之后:
1.机器的名字
vim /etc/hostname
2.机器的ip
10 -》 03
vim /etc/sysconfig/network-scripts/ifcfg-ens33
改ip 跟机器号对应上
规范:
[hadoop@sygy03 ~]$ mkdir app project software shell data log
MySQL:
1.版本:
5.6 【少】
5.7 【多】
8.x 【】
2.部署平台:
win =》
mac =》
linux =》
1.两种方式
1.rpm包 =》 部署简单 【学习使用】
2.tar包 =》 部署复杂 【生产上用】
安装mysql:
1.卸载 mysql 相关的包
[root@sygy03 software]# rpm -qa|grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@sygy03 software]# rpm -e --nodeps mariadb-libs
[root@sygy03 software]# rpm -qa|grep mariadb
2.安装mysql
1.解压
[root@sygy03 software]# tar -xvf ./mysql-8.0.21-1.el7.x86_64.rpm-bundle.tar -C ./mysql
2.安装
rpm :
rpm -ivh mysql-community-common-8.0.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.21-1.el7.x86_64.rpm
3.启动
1.查看配置mysql
vim /etc/my.cnf
日志文件:/var/log/mysqld.log
2.mysql 初始化
mysqld --initialize --user=mysql
临时密码:
root@localhost: (mdeIsSmq3s6
root
(mdeIsSmq3s6
3.启动mysql
systemctl start mysqld
4.登录mysql
[root@sygy03 mysql]# mysql -uroot -p\(mdeIsSmq3s6
5.修改密码
alter user root@localhost identified by '123456';
6.修改任何 ip 都可以访问 mysql
update mysql.user set host='%' where user='root';
7.刷新权限
flush privileges;
mysql 远程连接工具:
1.dbvear =》 hive phoniex clickhouse
2.netcat
3. db
mysql 语法:
1.聚合函数(分组函数)
group By =》 分组
聚合函数 =》 指标统计 sum avg max min count
需求:
统计 每个部门有多少个人 ?
c查什么:
维度 : 部门
指标 : 人数
聚合统计逻辑:
聚合统计:
group by +聚合函数
group by =》 分组
20,<20,20,20>
30,<30,30,30,30>
10,<10,10,10,10>
聚合函数 =》 指标 count
20,3
30,4
2.开窗函数
1.聚合函数 : 多行数据 按照一定规则 进行聚合 为一行
sum avg max 。。。
理论上: 聚合后的行数 <= 聚合前的行数 [看维度选取 groupby 里面的字段]
2.需求:
既要显示 聚合前的数据 又要显示 聚合后的数据 ?
eg:
id name sal dt sal_all
1 zs 1000 2022-4 1000
2 ls 2000 2022-4 2000
3 ww 3000 2022-4 3000
1 zs 1000 2022-5 2000
2 ls 2000 2022-5 4000
3 ww 3000 2022-5 6000
窗口函数:
窗口 + 函数
窗口: 函数运行时 计算的数据集的范围
函数:运行时的函数
1.聚合函数
2.内置窗口函数
语法结构:
函数 over([partition by xxx,...] [order by xxx,...] )
over() :以谁进行开窗 【table】
partition by: 以谁进行分组 【group by column】
order by: 以谁进行排序 【column】
窗口函数:
数据:
服务器 每天的启动 次数
linux01,2022-04-15,1
linux01,2022-04-16,5
linux01,2022-04-17,7
linux01,2022-04-18,2
linux01,2022-04-19,3
linux01,2022-04-20,10
linux01,2022-04-21,4
统计累计问题:
需求:
每个服务器每天的累计 启动次数
name dt cnt
linux01,2022-04-15,1
linux01,2022-04-16,5
linux01,2022-04-17,7
linux01,2022-04-18,2
linux01,2022-04-19,3
linux01,2022-04-20,10
linux01,2022-04-21,4
name dt cnt cnt_all
linux01,2022-04-15,1 1
linux01,2022-04-16,5 6
linux01,2022-04-17,7 13
linux01,2022-04-18,2 15
linux01,2022-04-19,3 18
linux01,2022-04-20,10 28
linux01,2022-04-21,4 32
create table window01(
name varchar(50),
dt varchar(20),
cnt int
);
每个服务器每天的累计 启动次数
1.聚合函数
COUNT,SUM,MIN,MAX,AVG
select
name,
dt,
cnt,
sum(cnt) over(partition by name order by dt ) as cnt_all
from window01;
2.内置窗口函数
窗口大小:
select
name,
dt,
cnt,
sum(cnt) over(partition by name order by dt ) as sum_all,
-- sum(cnt) over(partition by name order by dt ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) as sum_all1
-- sum(cnt) over(partition by name order by dt ROWS BETWEEN 3 PRECEDING AND CURRENT ROW ) as sum_all2
-- sum(cnt) over(partition by name order by dt ROWS BETWEEN 3 PRECEDING AND 1 FOLLOWING ) as sum_all3
-- sum(cnt) over(partition by name order by dt ROWS BETWEEN 3 PRECEDING AND UNBOUNDED FOLLOWING) as sum_all4
sum(cnt) over(partition by name order by dt ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) as sum_all5
from window01;
2.内置窗口函数
1.取值 串行
2.排序
RANK
ROW_NUMBER
DENSE_RANK
CUME_DIST
PERCENT_RANK
NTILE
NTILE:
ntile
需求:
把数据按照某个字段进行排序 ,把数据分成几分
select
name,
dt,
cnt,
sum(cnt) over(partition by name order by dt ) as sum_all,
ntile(2) over(partition by name order by dt ) as n2,
ntile(3) over(partition by name order by dt ) as n3
from window01 ;
把数据平均分配 指定 N个桶 ,如果不能平均分配 ,优先分配到 编号 小的里面
RANK
ROW_NUMBER
DENSE_RANK
RANK: 从1 开始 , 按照顺序 相同会重复 名次会留下 空的位置 生成组内的记录编号
ROW_NUMBER: 从1 开始 , 按照顺序 生成组内的记录编号
DENSE_RANK:从1 开始 , 按照顺序 生成组内的记录编号 相同会重复 名次不会会留下空的位置
select
name,
dt,
cnt,
sum(cnt) over(partition by name order by dt ) as sum_all,
RANK() over(partition by name order by cnt desc ) as rk,
ROW_NUMBER() over(partition by name order by cnt desc) as rw,
DENSE_RANK() over(partition by name order by cnt desc ) as d_rk
from window01 ;
1. 串行
LEAD
LAG
1. 串行
LEAD:窗口内 向下 第n行的值
LAG:窗口内 向上 第n行的值
LEAD(column,n,default)
column => 列名
n =》 取 几行
default =》 取不到就给一个默认值
select
name,
dt,
cnt,
sum(cnt) over(partition by name order by dt ) as sum_all,
LEAD(dt,1,"9999-99-99") over(partition by name order by dt ) as lead_alias,
LAG(dt,1,"9999-99-99") over(partition by name order by dt ) as lag_alias
from window01 ;
2.取值
FIRST_VALUE
LAST_VALUE
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。