1. 引言 在分析广告日志时,会有这样的多维分析需求: 曝光.点击用户分别有多少? 标签能覆盖多少广告用户? 各个标签(标注)类别能覆盖的曝光.点击在各个DSP上所覆盖的用户数 -- 广告数据与标签数据join之后,存储orc file的schema如下: create external table default.ad_tag ( uid string ,dsp string ,view string ,click string ,tags array<struct<tag:string,l…
在上篇文章里,我列举了一个简单的hive操作实例,创建了一张表test,并且向这张表加载了数据,这些操作和关系数据库操作类似,我们常把hive和关系数据库进行比较,也正是因为hive很多知识点和关系数据库类似. 关系数据库里有表(table),分区,hive里也有这些东西,这些东西在hive技术里称为hive的数据模型.今天本文介绍hive的数据类型,数据模型以及文件存储格式.这些知识大家可以类比关系数据库的相关知识. 首先我要讲讲hive的数据类型. Hive支持两种数据类型,一类叫原子数据类…
官方帮助文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL Hive的数据类型 -- 扩展数据类型data_type : primitive_type | array_type | map_type | struct_type | union_type -- (Note: Available in Hive 0.7.0 and later) array_type : ARRAY < data_type >…
Hive的数据存储(视图) Hive的数据存储(视图) 视图(view) 视图是一种虚表,是一个逻辑概念:可以跨越多张表 既然视图是一种虚表,那么也就是说用操作表的方式也可以操作视图 但是视图是建立在已有表的基础上,视图赖以建立的这些表称为基表 视图最大的好处就是可以简化复杂的查询 现在有两张表 ①部门表 ②员工表 而在关系性数据库中两张表的deptno部门号是外键的关系 现在来建立一张视图来查询员工数据 --查询员工信息:员工号.姓名.月薪.年薪.部门名称create view empinfo…
Hive的数据类型 Hive的数据类型 前面说过,Hive是一个数据仓库,相当于一个数据库.既然是数据库,那么就必须能创建表,既然有表,那么当中就有列,列中就有对应的类型 总的来讲,hive的数据类型可以分为三类: 基本数据类型: tinyint/smallint/int/bigint:整数类型 float/double:浮点数类型 boolean:布尔类型 string:字符串类型 复杂数据类型 Array:数组类型,由一系列相同数据类型的元素组成 Map:集合类型,包含key–>value键…
Hive之数据类型   (本文是基于多篇文章根据个人理解进行的整合,参考的文章见末尾的整理) 数据类型 Hive支持两种数据类型,一类叫原子数据类型,一类叫复杂数据类型.原子数据类型包括数值型.布尔型和字符串类型,具体如下表所示: 原子数据类型包括数值型.布尔型和字符串类型,具体如下表所示: 基本数据类型 类型 描述 示例 TINYINT 1个字节(8位)有符号整数 1 SMALLINT 2字节(16位)有符号整数 1 INT 4字节(32位)有符号整数 1 BIGINT 8字节(64位)有符号…
Hive复杂数据类型 1.Array数据类型的使用 1.1.创建数据库表,以array作为数据类型 hive (hive_demo1)> create table stu_test(name array<string>,phone array<string>) > row format delimited fields terminated by'\t' > collection items terminated by','; OK 1.2.在/opt/datas…
kylin实战系列(一) 把之前kylin的实践小结一下,以备以后查看.…
由于公司环境配置hive默认连接hiveserver2 ,不管hive cli 还是beeline cli都默认使用beeline cli,连接hive需要输入账号密码; 启动kylin 时会Retrieving hive dependency... 卡住 两种解决方案 1.解决方案1 敲enter 但在在后续构建cube的第一步Create Intermediate Flat Hive Table时,web 界面 log 显示 no Data Available ;服务器kylin.log在 …
Hive支持关系型数据库中的大多数基本数据类型,同时也支持关系型数据库中很少出现的3种集合数据类型. 和大多数数据库相比,Hive具有一个独特的功能,那就是其对于数据在文件中的编码方式具有非常大的灵活性. 大多数数据库对数据具有完全的控制,其包括对数据存储到磁盘的过程的控制,也包括对数据生命周期的控制. 而Hive将这些方面的控制权交给用户,使用户更容易地使用各种各样的工具来管理和处理数据. 一.  基本数据类型 表1-1 Hive基本数据类型 数据类型 长度 例子 TINYINT 1byte有…
 前提: 安装kylin之前,需要安装hadoop2.0.hbase.hive,并且对版本有要求,可以参照官网链接 http://kylin.apache.org/cn/docs/install/index.html 我这边用的版本为: hadoop2.7.5 hbase1.4.1 hive2.3.2 安装可以参考我前面的博客 kylin安装: wget http://www.apache.org/dyn/closer.cgi/kylin/apache-kylin-2.4.1/apache-ky…
Hive 支持关系型数据库中的大多数据基本数据类型,同时也支持3种集合类型:   3.1 Hive 的基本数据类型 支持多种不同他度的整形和浮点型数据类型,具体如下(全都是保留字): tinyint    1byte 有符号整数 smalint    2byte有符号号数 int    4byte有符号号数 bigint    8byte有符号号数 boolean    布尔类型, true 或者 false float    单精度浮点数 double    双精度浮点数 string    …
Spark SQL使用时需要有若干“表”的存在,这些“表”可以来自于Hive,也可以来自“临时表”.如果“表”来自于Hive,它的模式(列名.列类型等)在创建时已经确定,一般情况下我们直接通过Spark SQL分析表中的数据即可:如果“表”来自“临时表”,我们就需要考虑两个问题:   (1)“临时表”的数据是哪来的? (2)“临时表”的模式是什么?   通过Spark的官方文档可以了解到,生成一张“临时表”需要两个要素:   (1)关联着数据的RDD: (2)数据模式:   也就是说,我们需要将…
视图函数的返回值会被自动转换为一个响应对象,Flask的转换逻辑如下: 如果返回的是一个合法的响应对象,则直接返回 可以使用make_response函数来创建Response对象,这个方法可以设置额外的数据,比如cookie.header信息等 rom flask import Flask from flask import make_response app=Flask(__name__) @app.route('/about/') def about(): return make_resp…
hive的高级数据类型主要包括:数组类型.map类型.结构体类型.集合类型,以下将分别详细介绍. 1)数组类型 array_type:array<data_type> -- 建表语句 create table test.array_table( name   string, age    int, addr   array<string> ) row format delimited fields terminated by ',' collection items termina…
Python从入门到实战系列--目录 字典的定义 字典是另一种可变容器模型,且可存储任意类型对象:使用键-值(key-value)存储,具有极快的查找速度: 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 语法格式:{ key1 : value1, key2 : value2, key3 : value3 ...} users={' 张三 ' : 18 , ' 李四 ' : 19 , ' 王五 ' : 20 , ' 赵六 '…
Python从入门到实战系列--目录 列表定义 list:列表(list)是Python内置的一种数据类型,list是一种有序的集合,索引从0开始,可以进行截取.组合等: //创建列表 list1 = [1,2,3,4,5] list2 = ["Java","C++","Python","Kotlin"] print(list1[0]) # 结果:1 print(list1[2]) # 结果:Python 获取列表中的数据 读…
Python从入门到实战系列--目录 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) Number(数字) Python3 支持三种不同的数值类型: int(整型).float(浮点型).complex(复数): 整型(Int),是正或负整数,不带小数点,int没有限制大小,表示为长整型,在Python 3里,只有一种整数类型 int,没有 python2 中的 Long…
视频地址:https://www.cctalk.com/v/15114923888328 视图 Nunjucks 彩虹是上帝和人类立的约,上帝不会再用洪水灭人. 客户端和服务端之间相互通信,传递的数据最终都会展示在视图中,这时候就需要用到『模板引擎』. 什么是模板引擎? 模板引擎是为了使用户界面与业务数据分离而产生的,可以生成特定格式的文档.例如,用于网站的模板引擎会生成一个标准的 HTML 文档. 市面上常见的模板引擎很多,例如:Smarty.Jade.Ejs.Nunjucks 等,可以根据个…
hive 目前支持的数据类型如下: -- 数值类型 Numeric TypesTINYINT (1-byte signed integer, from -128 to 127)SMALLINT (2-byte signed integer, from -32,768 to 32,767)INT/INTEGER (4-byte signed integer, from -2,147,483,648 to 2,147,483,647)BIGINT (8-byte signed integer, fr…
Hive的列除了支持基本的数据类型外,还支持使用Struct.Map和Array三种集合数据类型. 假设某表有如下一行,我们用JSON格式来表示其数据结构.在Hive下访问的格式为 { "name": "John Doe", "salary": 100000.0 , "subordinates": ["Mary Smith" , "Todd Jones"] , //列表Array, su…
一. 基本数据类型 Hive数据类型 Java数据类型 长度 例子 TINYINT byte 1byte有符号整数 20 SMALINT short 2byte有符号整数 20 INT int 4byte有符号整数 20 BIGINT long 8byte有符号整数 20 BOOLEAN boolean 布尔类型,true或者false TRUE  FALSE FLOAT float 单精度浮点数 3.14159 DOUBLE double 双精度浮点数 3.14159 STRING strin…
视图函数的返回值会被自动转换为一个响应对象,Flask的转换逻辑如下: 如果返回的是一个合法的响应对象,则直接返回 可以使用make_response函数来创建Response对象,这个方法可以设置额外的数据,比如cookie.header信息等 ... from flask import make_response @app.route('/about/') def about(): return make_response('about page') 如果返回的是一个字符串,那么Flask会…
除了string,boolean,date等基本数据类型之外,hive还支持三种高级数据类型: 1.ARRAY ARRAY类型是由一系列相同数据类型的元素组成,这些元素可以通过下标来访问.比如有一个ARRAY类型的变量fruits,它是由['apple','orange','mango']组成,那么我们可以通过fruits[1]来访问元素orange,因为ARRAY类型的下标是从0开始的: 2.MAP MAP包含key->value键值对,可以通过key来访问元素.比如”userlist”是一个…
kylin适用场景 OLAP 它适合数据量大,查询维度多,但是业务改动不频繁的场景.因为业务多,则kylin的cube很多.每次业务变更,kylin修改的工作量大,且每次全量跑数据耗费时间比较长. 它是采用空间换时间,预先将结果计算出来.维度较多时,数据膨胀很快. 如果查询结果可以直接命中,则查询速度很快:如果cube未覆盖,则查询很慢. 如果业务频繁迭代,初期可以考虑用mysql来支撑,等业务比较稳定以后,通过kylin来优化查询速度. 关键概念 维度:维度是观察数据的角度.例如:销售日期.销…
目录 1.简单描述 2.测试 1.简单描述 arrays: ARRAY<data_type> maps: MAP<primitive_type, data_type> structs: STRUCT<col_name : data_type [COMMENT col_comment], ...> union: UNIONTYPE<data_type, data_type, ...> Hive 中对该类型的完全支持仍然不完整.如果 JOIN.WHERE 和 G…
在cube build完成后,我的工作是写sql生成数据分析邮件报表.但是,问题是这种重复劳动效率低.易出错.浪费时间.还好Kylin提供RESTful API,可以将这种数据分析需求转换成HTTP请求. 1. RESTful API Kylin的认证是basic authentication,加密算法是Base64,加密的明文为username:password:在POST的header进行用户认证: curl -c cookiefile.txt -X POST -H "Authorizati…
SQL开始 select t2.owner||'.'||t2.TABLE_NAME 源表名, 'dl_{0}_seq.'||'tt_{1}_'||lower(t2.table_name) hive表名, nvl(t3.comments,'{2}') hive表注释, lower(t2.COLUMN_NAME) 字段名, t2.DATA_TYPE 源类型, case then 'string' and t2.DATA_PRECISION is null and t2.DATA_SCALE is n…
Python从入门到实战系列--目录 集合的定义 集合(set)和字典类似,也是一组key的集合,但不存储value:由于key不能重复,所以,在set中,没有重复的key. 创建一个set,需要提供一个list作为输入集合: list=[1,2,3,4] s = set(list) print(s) # 结果:{1,2,3,4} 使用元组创建一个set tup=('Java','Python','Kotlin') s = set(tup) print(s) # 结果:{'Kotlin', 'P…
Python从入门到实战系列--目录 元组的定义 定义元组只需要在括号中添加元素,并使用逗号隔开即可 tup = ('Python','Java','C++','Kotlin') 元组与列表的区别 Python 的元组与列表类似,不同之处在于元组的元素不能修改; 元组使用小括号,列表使用方括号; 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用 tup1=(18) type (tup1) #结果:<type 'int'> tup2=(18), type (tup1)…