JouyPub

  • 首页

  • 归档

  • 区块链

  • BigData

  • Linux

  • Git手册

  • MySQL

  • Nginx

  • 搜索

Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK

发表于 2020-04-03 | 分类于 BigData | 阅读次数:

Hive版本为 apache-hive-0.13.1

备注:序列函数不支持WINDOW子句

数据准备:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CREATE EXTERNAL TABLE lxw1234 (
cookieid string,
createtime string, --day
pv int
) ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
stored as textfile location '/tmp/lxw11/';

hive> DESC lxw1234;
cookieid string
createtime string
pv int

hive> select * from lxw1234;
OK
cookie1 2015-04-10 1
cookie1 2015-04-11 5
cookie1 2015-04-12 7
cookie1 2015-04-13 3
cookie1 2015-04-14 2
cookie1 2015-04-15 4
cookie1 2015-04-16 4

阅读全文 »

Hive分析窗口函数(一) SUM,AVG,MIN,MAX

发表于 2020-03-20 | 分类于 BigData | 阅读次数:

Hive版本为 apache-hive-0.13.1

SUM、AVG、MIN、MAX,用于实现分组内所有和连续累积的统计。
备注:在低版本hive中,sum不支持窗口,语法不保存,但是结果是不对的

数据准备

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CREATE EXTERNAL TABLE lxw1234 (
cookieid string,
createtime string, --day
pv int
) ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
stored as textfile location '/tmp/lxw11/';

hive> DESC lxw1234;
cookieid string
createtime string
pv int

hive> select * from lxw1234;
OK
cookie1 2015-04-10 1
cookie1 2015-04-11 5
cookie1 2015-04-12 7
cookie1 2015-04-13 3
cookie1 2015-04-14 2
cookie1 2015-04-15 4
cookie1 2015-04-16 4

阅读全文 »

Hive中UDF、UDAF和UDTF使用

发表于 2020-03-08 | 分类于 BigData | 阅读次数:

Hive进行UDF((User-Defined-Function))开发十分简单,此处所说UDF为Temporary的function,所以需要hive版本在0.4.0以上才可以。

背景:Hive是基于Hadoop中的MapReduce,提供HQL查询的数据仓库。Hive是一个很开放的系统,很多内容都支持用户定制,包括:

  1. 文件格式:Text File,Sequence File
  2. 内存中的数据格式: Java Integer/String, Hadoop IntWritable/Text
  3. 用户提供的 map/reduce 脚本:不管什么语言,利用 stdin/stdout 传输数据
  4. 用户自定义函数: Substr, Trim, 1 – 1
  5. 用户自定义聚合函数: Sum, Average…… n – 1
阅读全文 »

MySQL中索引的长度的限制

发表于 2020-02-15 | 分类于 MySQL | 阅读次数:

单列索引的长度的限制:5.6里面默认不能超过767bytes,5.7不超过3072bytes
起因是256×3-1=767。这个3是字符最大占用空间(utf8)。但是在5.5以后,开始支持4个字节的uutf8。255×4>767, 于是增加了一个参数叫做 innodb_large_prefix
备注:256的由来: 只是因为char最大是255,所以以前的程序员以为一个长度为255的index就够用了,所以设置这个256.历史遗留问题。

阅读全文 »

pip安装第三方库报错SSL: CERTIFICATE_VERIFY_FAILED

发表于 2020-02-03 | 分类于 python | 阅读次数:

安装命令:

1
pip install --upgrade requests

报错内容:

1
Could not fetch URL https://pypi.org/simple/baostock/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/baostock/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1045)'))) - skipping

阅读全文 »

Kafka入门教程

发表于 2020-01-20 | 分类于 BigData | 阅读次数:

1、下载安装
需要本地有scala环境,下载对应的kafka版本即可,kafka下载地址 https://kafka.apache.org/downloads

2、基本概念

  • Broker Kafka 中使用 Broker 来接受 Producer 和 Consumer 的请求,并把 Message 持久化到本地磁盘。每个 Cluster 当中会选举出一个 Broker 来担任 Controller,负责处理 Partition 的 Leader 选举,协调 Partition 迁移等工作。
  • Topic 用于划分 Message 的逻辑概念,一个 Topic 可以分布在多个 Broker 上。
  • Partition 是 Kafka 中横向扩展和一切并行化的基础,每个 Topic 都至少被切分为 1 个 Partition。
  • Offset 消息在 Partition 中的编号,编号顺序不跨 Partition(在 Partition 内有序)。
  • Segment 包含消息内容的指定大小的文件, 由 index 文件和 log 文件组成; 一个 Partition 由多个 Segment 文件组成
  • Offset Segment 文件中消息的索引值, 从 0 开始计数
  • Replication Kafka 支持以 Partition 为单位对 Message 进行冗余备份,每个 Partition 都可以配置至少 1 个 Replication(当仅 1 个 Replication 时即仅该 Partition 本身)。
  • Producer 用于往 Broker 中发送/生产 Message。
  • Consumer 用于从 Broker 中取出/消费 Message。
  • Consumer Group 各个 consumer 可以组成一个组,每个消息只能被组中的一个 consumer 消费,如果一个消息可以被多个 consumer 消费的话,那么这些 consumer 必须在不同的组。
  • Leader 每个 Replication 集合中的 Partition 都会选出一个唯一的 Leader,所有的读写请求都由 Leader 处理。其他 Replicas 从 Leader 处把数据更新同步到本地。
  • In-Sync Replica Replicas 的一个子集,表示目前 Alive 且与 Leader 能够“Catch-up”的 Replicas 集合。由于读写都是首先落到 Leader 上,所以一般来说通过同步机制从 Leader 上拉取数据的 Replica 都会和 Leader 有一些延迟(包括了延迟时间和延迟条数两个维度),任意一个超过阈值都会把该 Replica 踢出 ISR。每个 Leader Partition 都有它自己独立的 ISR。
阅读全文 »

十分钟学会配置ESLint

发表于 2020-01-10 | 分类于 前端 | 阅读次数:

ESLint各种配置的详细、全面解释。
前言:配置中的的数字:0表示不处理,1表示警告,2表示错误并退出

阅读全文 »

Hive权限控制

发表于 2019-12-25 | 分类于 BigData | 阅读次数:

说明

  • 认证(authentication):验证用户所用的身份是否是对的
  • 授权(authorization):验证用户所用身份操作是否有权限

目前hive(版本0.12.0)支持简单的权限管理,默认情况下是不开启,这样所有的用户都具有相同的权限,同时也是超级管理员,也就对hive中的所有表都有查看和改动的权利,这样是不符合一般数据仓库的安全原则的。Hive可以是基于元数据的权限管理,也可以基于文件存储级别的权限管理,此次以介绍MetaData权限管理为主。通过以下配置开启Hive身份认证功能进行权限检查

配置

  1. 开启启身份认证后,任何用户必须被grant privilege才能对实体进行操作。

    1
    hive.security.authorization.enabled = true
  2. 表示创建表时自动赋予一些用户或角色相应的权限

    1
    2
    3
    hive.security.authorization.createtable.owner.grants = ALL
    hive.security.authorization.createtable.role.grants = admin_role:ALL
    hive.security.authorization.createtable.user.grants = user1,user2:select;user3:create
阅读全文 »
1234…30
JouyPub

JouyPub

聊聊区块链、大数据

235 日志
14 分类
47 标签
RSS
友情链接
  • 工具箱
  • 子涵笑谈前端
  • 大数据玩家
© 2017 — 2023 JouyPub