Hive元数据解析

| 收藏本文 下载本文 作者:今天天气好好

下面小编为大家整理了Hive元数据解析(共含6篇),欢迎阅读与借鉴!同时,但愿您也能像本文投稿人“今天天气好好”一样,积极向本站投稿分享好文章。

Hive元数据解析

篇1:Hive元数据解析

Hive元数据解析

本文是笔者初步整理的Hive元数据表,有不准确的地方请轻拍,后续我会补充.

1. Hive 0.11 元数据表汇总

线上Hive 0.11 metastore包括下述39个表,主要分为以下几类 :

Database相关

Table相关

数据存储相关SDS

COLUMN相关

SERDE相关(序列化)

Partition相关(分区)

SKEW相关(数据倾斜)

BUCKET相关(分桶)

PRIVS相关(权限管理)

mysql>show tables;+---------------------------+| Tables_in_hive_yz_test |+---------------------------+| BUCKETING_COLS|| CDS || COLUMNS_V2 || DATABASE_PARAMS || DBS || DB_PRIVS|| GLOBAL_PRIVS || IDXS || INDEX_PARAMS || NUCLEUS_TABLES|| PARTITIONS || PARTITION_EVENTS || PARTITION_KEYS|| PARTITION_KEY_VALS || PARTITION_PARAMS || PART_COL_PRIVS|| PART_COL_STATS|| PART_PRIVS || ROLES || ROLE_MAP|| SDS || SD_PARAMS || SEQUENCE_TABLE|| SERDES || SERDE_PARAMS || SKEWED_COL_NAMES || SKEWED_COL_VALUE_LOC_MAP || SKEWED_STRING_LIST || SKEWED_STRING_LIST_VALUES || SKEWED_VALUES || SORT_COLS || TABLE_PARAMS || TAB_COL_STATS || TBLS || TBL_COL_PRIVS || TBL_PRIVS || TYPES || TYPE_FIELDS || VERSION |+---------------------------+39 rows in set (0.00 sec)

2.各个表的含义

2.1 Database表:DBS

描述 该表存储Hive Database的元数据信息,DB_ID是数据库ID,NAME是库名,DB_LOCATION_URI是数据库在HDFS中的位置,DESC为数据库的描述信息,

mysql>desc DBS;+-----------------+---------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-----------------+---------------+------+-----+---------+-------+| DB_ID | bigint(20) | NO | PRI | NULL | || DESC| varchar(4000) | YES | | NULL | || DB_LOCATION_URI | varchar(4000) | NO | | NULL | || NAME| varchar(128) | YES | UNI | NULL | |+-----------------+---------------+------+-----+---------+-------+ 例子:acorn_3g数据库的信息如下,表示该库ID为81,路径为hdfs://YZSJHL19-42.opi.com/warehouse.test/acorn_3g.dbmysql>select * from DBS where NAME='acorn_3g';+-------+------+-------------------------------------------------------+----------+| DB_ID | DESC | DB_LOCATION_URI | NAME |+-------+------+-------------------------------------------------------+----------+| 81 | NULL | hdfs://YZSJHL19-42.opi.com/warehouse.test/acorn_3g.db | acorn_3g |+-------+------+-------------------------------------------------------+----------+

2. 2 Table 表

描述:

TBLS 存储Hive Table的元数据信息,每个表有唯一的TBL_ID

SD_ID外键指向所属的Database,SD_IID关联SDS表的主键。 其中SDS存储列(CD_ID)等信息。TBLS.SD_ID关联SDS.SD_ID, SDS.SD_ID关联CDS.CD_ID,

CDS.CD_ID关联COLUMNS_V2.CD_ID

例子:*acorn_3g.user_act表的信息: TBL_ID为41231,TBL_TYPE为MANAGED_TABLE普通表(若值为EXTERNAL,表示外部表),DB_ID为81,表示隶属DB_ID=81的Database。

mysql>select * from TBLS where TBL_NAME='user_act' and DB_ID=81 \G*************************** 1. row ***************************TBL_ID: 41231 CREATE_TIME: 1366188055 DB_ID: 81 LAST_ACCESS_TIME: 0 OWNER: xianbing.liu RETENTION: 0 SD_ID: 263311 TBL_NAME: user_act TBL_TYPE: MANAGED_TABLEVIEW_EXPANDED_TEXT: NULLVIEW_ORIGINAL_TEXT: NULL

2.3 SDS表(数据存储表)

描述:

SDS表保存了Hive数据仓库所有的HDFS数据文件信息,每个SD_ID唯一标记一个数据存储记录

CD_ID关联COLUMN_V2.CD_ID,指定该数据的字段信息

SERDE_ID关联SERDES.SERDE_ID,指定该数据的序列化信息(如是否是序列化表,DELIMITED字段等)

例子:

根据SDS表找到acorn_3g.user_act表的CD_ID是263311, SERDE_ID是263301,默认存储位置为

hdfs://YZSJHL19-42.opi.com/warehouse.test/acorn_3g.db/user_actmysql>select * from SDS where SD_ID=263311 \G*************************** 1. row *************************** SD_ID: 263311 CD_ID: 263311 INPUT_FORMAT: org.apache.hadoop.mapred.TextInputFormatIS_COMPRESSED: LOCATION: hdfs://YZSJHL19-42.opi.com/warehouse.test/acorn_3g.db/user_act NUM_BUCKETS: -1OUTPUT_FORMAT: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat SERDE_ID: 263301IS_STOREDASSUBDIRECTORIES:

2.4 CDS 和 COLUMN_V2 (列信息)

CDS表

描述:

该表只有一个字段CD_ID,永远存储整个Hive数据仓库中的CD_ID.

例子:

可以看到acorn_3g.user_act表对应的CD_ID记录在CDS中

mysql>desc CDS;+-------+------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+------------+------+-----+---------+-------+| CD_ID | bigint(20) | NO | PRI | NULL | |+-------+------------+------+-----+---------+-------+1 row in set (0.00 sec)mysql>select * FROM CDS where CD_ID=263311;+--------+| CD_ID |+--------+| 263311 |+--------+1 row in set (0.00 sec)

COLUMN_V2表

描述:

该表存储了一个CD_ID对应的所有字段信息

例子:

查看acorn_3g.user_act表的COLUMN信息;我们可以看到acorn_3g.user_act表有14个字段,COLUMN_NAME为字段名,TYPE_NAME为字段类型,INTEGER_IDX为字段序号

mysql>select * from COLUMNS_V2 where CD_ID=263311 order by integer_idx;+--------+---------+---------------+-----------+-------------+| CD_ID | COMMENT | COLUMN_NAME | TYPE_NAME | INTEGER_IDX |+--------+---------+---------------+-----------+-------------+| 263311 | NULL | id| bigint | 0 || 263311 | NULL | action_id | int | 1 || 263311 | NULL | user_id | bigint | 2 || 263311 | NULL | request | string | 3 || 263311 | NULL | visit_time | string | 4 || 263311 | NULL | source_id | int | 5 || 263311 | NULL | sess_id | string | 6 || 263311 | NULL | mobile_number | string | 7 || 263311 | NULL | from_id | string | 8 || 263311 | NULL | app_id | string | 9 || 263311 | NULL | version | string | 10 || 263311 | NULL | reg_type| int | 11 || 263311 | NULL | uniqid | string | 12 || 263311 | NULL | failure | int | 13 |+--------+---------+---------------+-----------+-------------+2.5 SERDES和SERDE_PARAMS (序列化)

描述:

SERDES存储了所有的序列化信息(SERDE_ID,SLIB),SLIB表示序列化所采用的Java类

SERDES_PARAMS 存储序列化具体的参数及值

例子:

acorn_3g.user_act表对应的SERDE_ID=263301表示 采用hive默认序列化类org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe , DELIMITED字符为'\t' (即创建表时指定的 ...DELIMITED BY '\t' ...)mysql>select * FROM SERDES where SERDE_ID=263301;+----------+------+----------------------------------------------------+| SERDE_ID | NAME | SLIB |+----------+------+----------------------------------------------------+| 263301 | NULL | org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe |+----------+------+----------------------------------------------------+mysql>select SERDE_ID,PARAM_KEY,REPLACE(PARAM_VALUE,'\t','\\t') from SERDE_PARAMS where SERDE_ID=263301;+----------+----------------------+---------------------------------+| SERDE_ID | PARAM_KEY| REPLACE(PARAM_VALUE,'\t','\\t') |+----------+----------------------+---------------------------------+| 263301 | field.delim | \t|| 263301 | serialization.format | \t|+----------+----------------------+---------------------------------+

2.6 PARTITIONS PARTITION_KEY 和 PARTITION_KEY_VALS (分区)

PARTITION_KEYS

描述:

PARTITION_KEYS 保存了所有分区表用于分区的字段

例子:

通过PARTITION_KEYS查看acorn_3g.user_act的分区信息,可看到该表是一个分区表,分区字段为log_date,其中INTEGER_IDX为分区字段的序号,和分区字段一一对应

mysql>desc PARTITION_KEYS;+--------------+---------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+--------------+---------------+------+-----+---------+-------+| TBL_ID | bigint(20) | NO | PRI | NULL | || PKEY_COMMENT | varchar(4000) | YES | | NULL | || PKEY_NAME | varchar(128) | NO | PRI | NULL | || PKEY_TYPE | varchar(767) | NO | | NULL | || INTEGER_IDX | int(11) | NO | | NULL | |+--------------+---------------+------+-----+---------+-------+mysql>select * FROM PARTITION_KEYS WHERE TBL_ID=41231;+--------+--------------+-----------+-----------+-------------+| TBL_ID | PKEY_COMMENT | PKEY_NAME | PKEY_TYPE | INTEGER_IDX |+--------+--------------+-----------+-----------+-------------+| 41231 | NULL | log_date | string | 0 |+--------+--------------+-----------+-----------+-------------+PARTITIONS

描述:

PARTITIONS存储了Hive数据仓库总所有的分区信息,每个分区由PART_ID标识,其中TBL_ID为隶属的Table,SD_ID为隶属的SDS(见2.3)

例子:

通过PARTITIONS表查看acorn_3g.user_act表的分区信息,如PART_ID为168301,名字为log_date=-03-01,SD_ID为231621

mysql>desc PARTITIONS;+------------------+--------------+------+-----+---------+-------+| Field| Type | Null | Key | Default | Extra |+------------------+--------------+------+-----+---------+-------+| PART_ID | bigint(20) | NO | PRI | NULL | || CREATE_TIME| int(11)| NO | | NULL | || LAST_ACCESS_TIME | int(11)| NO | | NULL | || PART_NAME | varchar(767) | YES | MUL | NULL | || SD_ID| bigint(20) | YES | MUL | NULL | || TBL_ID | bigint(20) | YES | MUL | NULL | |+------------------+--------------+------+-----+---------+-------+mysql>select * FROM PARTITIONS WHERE TBL_ID=41231 order by PART_NAME limit 5;+---------+-------------+------------------+---------------------+--------+--------+| PART_ID | CREATE_TIME | LAST_ACCESS_TIME | PART_NAME | SD_ID | TBL_ID |+---------+-------------+------------------+---------------------+--------+--------+| 168301 | 1366259946 | 0 | log_date=2013-03-01 | 231621 | 41231 || 168321 | 1366260063 | 0 | log_date=2013-03-02 | 231641 | 41231 || 168331 | 1366260176 | 0 | log_date=2013-03-03 | 231651 | 41231 || 168346 | 1366260298 | 0 | log_date=2013-03-04 | 231666 | 41231 || 168361 | 1366260398 | 0 | log_date=2013-03-05 | 231681 | 41231 |+---------+-------------+------------------+---------------------+--------+--------+PARTITION_KEY_VALS

描述:

PARTITION_KEY_VALS 存储了PARTITION_KEY中描述的分区字段的值,通常配合PARTITIONS 和PARTITION_KEYS表使用,

例子:

查看分区PART_ID=168301各分区字段的值,其中PARTITION_KEY_VALS存储了所有分区字段序号(INTEGER_IDX)和值(PART_KEY_VAL)间的对应关系。本例中acorn_3g.user_act PART_ID=168301分区log_date字段的值为‘2013-03-01’

mysql>select pk.PKEY_NAME,pk.PKEY_TYPE,pk.INTEGER_IDX,pkv.PART_KEY_VAL from PARTITION_KEYS pk,PARTITION_KEY_VALS pkv where pk.INTEGER_IDX=pkv.INTEGER_IDX and pk.TBL_ID=41231 and pkv.PART_ID=168301;+-----------+-----------+-------------+--------------+| PKEY_NAME | PKEY_TYPE | INTEGER_IDX | PART_KEY_VAL |+-----------+-----------+-------------+--------------+| log_date | string | 0 | 2013-03-01 |+-----------+-----------+-------------+--------------+

2.7 BUCKET 相关表

描述

BUCKETING_COLS表描述了所有采用了分桶技术的SDS,目前公司未用BUCKET,//TODO

mysql>desc BUCKETING_COLS;+-----------------+--------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-----------------+--------------+------+-----+---------+-------+| SD_ID | bigint(20) | NO | PRI | NULL | || BUCKET_COL_NAME | varchar(256) | YES | | NULL | || INTEGER_IDX | int(11)| NO | PRI | NULL | |+-----------------+--------------+------+-----+---------+-------+

2.8 PRIVS 权限管理相关表

TBL_PRIVS DB_PRIVS PART_PRIVS 等,目前Hive在权限管理方面远不及关系数据库,公司也未对权限进行统一管理。

2.9 SKEW 数据倾斜相关表

相比0.8版本,0.11元数据增加了数据倾斜相关的表 SKEWED_COL_NAMES SKEWED_COL_VALUE_LOC_MAP SKEWED_STRING_LIST SKEWED_STRING_LIST_VALUES SKEWED_VALUES ,这些高级特性还在测试阶段,目前公司没有用到。

2.3 其他

如VERSION 描述版本信息,这类表开发者不用太关心。

篇2:地理信息系统元数据生产研究

地理信息系统元数据生产研究

本文基于笔者多年从事GIS数据制作的工作经验,以元数据生产为研究对象,深度探讨了元数据的概念、作用、存储方式,内容和标准,是对元数据生产的`一个较为全面的诠释,文中的一些方法也是笔者工作实践的总结,相信本文的研究对从事相关工作的同行有着重要的参考价值和借鉴意义.

作 者:苏聪  作者单位:广州市城市规划勘测设计研究院,广东广州,510060 刊 名:科技资讯 英文刊名:SCIENCE & TECHNOLOGY INFORMATION 年,卷(期): “”(15) 分类号:P2 关键词:地理信息系统   元数据   标准   方法  

篇3:地理信息元数据的管理探讨

地理信息元数据的管理探讨

对数据仓库、元数据等进行了简单介绍,并针对地理信息系统中元数据的作用、内容进行了阐述,在此基础上,对地理信息系统中元数据的`管理方法提出了建议,供同行参考.

作 者:马晓东 Ma Xiaodong  作者单位:青海省地理信息中心,青海西宁,810000 刊 名:测绘技术装备 英文刊名:GEOMATICS TECHNOLOGY AND EQUIPMENT 年,卷(期):2009 11(2) 分类号:P2 关键词:数据仓库   元数据   元数据库   地理信息  

篇4:数据泄漏调查报告解析

在Web应用程序攻击是关于在20的Verizon数据泄露调查报告(DBIR)数据披露最关心的问题之一,这些事件进行了主要是通过在输入验证漏洞和认证影响常见的内容管理系统,如的Joomla!,WordPress的,和Drupal的漏洞。

报告指出,这些类型的攻击不仅是一个可靠的方法 ,也有快60%花几分钟或更少的妥协。随着Web应用程序通常作为一个组织的公众形象到互联网,便于开发基于网络的脆弱性令人担忧。

该DBIR报告建议修复漏洞的攻击者之前找到他们,但你如何找到这些漏洞之前,坏人都关闭你的数据在几分钟之内?一个方法来识别Web应用程序漏洞是开放Web应用安全项目(OWASP)十大文件,旨在筹集约在Web应用程序中10个最关键的安全漏洞的意识,

就在OWASP十大顶部,你会发现“注入”,如SQL注入叫出来的DBIR。注入漏洞是一种非常常见的安全漏洞,非常容易利用无需工具使用基于简单的文本命令。

最好的办法,以避免基于Web的如SQL注入攻击是防止在首位的漏洞安全编程实践,但安全编程必须在Web应用程序的开发过程中发生的。那么Web应用程序已经在生产中可能包含像SQL注入漏洞?

在广泛使用的Web应用程序像WordPress或Drupal的漏洞可能会得到重视安全研究人员和漏洞管理厂商可能会包括在他们的产品的检查。

然而,传统的漏洞扫描器是不可能找到鲜为人知的和定制的Web应用程序的漏洞,如果安全研究团队不重视他们(或不知道它们的存在,在内置的内部Web应用程序的情况下)。

使用像Tripwire的WebApp360一个漏洞管理解决方案,包括覆盖在OWASP十大的每个区域可以帮助识别安全漏洞在生产环境中的Web应用程序,甚至是定制或不太知名的Web应用程序。

不同于传统的漏洞检查,Web应用程序漏洞扫描器采取启发式的,而不是基于规则的方法来发现Web应用程序漏洞无证。结果在网络上找到这些问题之前, 这样做,你可以采取措施补救或减轻风险。

篇5:数字图书馆元数据方案设计问题探讨

【内容提要】在阐述数字图书馆元数据方案设计原则的基础上,对数字图书馆元数据方案的设计有关问题进行较为深入的思考,并且提出若干建议。

【摘  要  题】专题探讨

【英文摘要】This  article  begins  with  the  illustration  of&n

篇6:数字图书馆元数据方案设计问题探讨

元数据方案就是数字图书馆中所使用的信息描述方法。数字图书馆的运作,无论是存取过程还是检索过程,都是以元数据方案为基础实现的。换言之,元数据方案为数字图书馆分布式信息资源的发现和检索奠定了基础。因此,元数据方案决定了数字图书馆的功能特征、运行模式和系统运行的总体性能。为了实现这一总体性能,达到共建共享信息资源的目的,数字图书馆元数据方案应遵循下列原则。

1.1 元数据方案的标准化原则

在数字图书馆建设中,标准问题最重要的是元数据的制作,而与元数据的制作紧密相关的问题是元数据方案的设计。

然而,目前在元数据方案的标准化方面存在很多问题。首先,就DC系列元数据而言,在同一元素的著录内容上存在较大的差异。如,北京大学拓片元数据要求在权限(Rights)元素中著录馆藏地址、允许使用的用户范围,而在《数字式中文全文文献通用格式》规定著录有关权限管理的声明,包括知识产权等。其次,对于同类型信息资源的组织,有的图书馆已经采用DC元数据,有的则仍然采用MARC元数据。这种著录内容和同类信息资源所用元数据的不一致都会给数据交换的带来困难。最后,各个元数据所采用的编码语言也是各不相同,有的采用HTML,有的采用SGML或XML。由于各个编码语言的标签设置、内容、可扩展性的不同,则会影响元数据的通用性。

元数据方案的标准化原则具有广泛的内涵。它包括元素著录内容的标准化、同类型数字化信息资源的著录所采用元数据的一致性、元数据方案所采用编码语言的统一性这几个方面。

1.2 元数据方案的准确性原则

所谓准确性原则一方面指元数据方案中元素的定义、使用的术语等不能模棱两可,容易产生歧义,导致不同的理解;另一方面指元数据方案能够准确地描述信息资源。也就是说,元数据方案不仅要规定元素的设置、著录规则、标记语言的使用,而且要规定著录所依据的标准、传输交换语言等。

当前困扰各个搜索引擎的问题是如何提高其查准率。搜索引擎的低查准率究其原因是其对信息资源特征的揭示不够准确、深入。数字图书馆的信息资源类型多样,既有文字信息,也有音频、视频信息,只有准确地揭示它们的特征,提供高质量的元数据,才能保证较高的查准率。

1.3 元数据方案的通用性与专用性原则

元数据方案的通用性与专用性都是相对而言的。所谓通用性是指元数据方案可用于数字图书馆多种信息资源的元数据制作。所谓专用性是指元数据方案只适用于数字图书馆某一特定类型信息资源的元数据制作。具有通用性的元数据适用于组织多种类型的信息资源。通用性元数据有两种:一种通用性元数据的结构非常庞大、复杂,但是具有很好的描述深度,因为所有的情况都已经定义了,比如MARC元数据。另一种通用性元数据,其结构非常简单,好学易用,仅仅只有几个非常普遍的属性,但对特定类型的信息资源的描述能力不够。而具有很好专用性的元数据,其对于某一特定类型的信息资源描述能力很强,但无法覆盖其它类型的信息资源。数字图书馆信息资源类型多样,过分强调专用性会导致多种元数据各自为政。因此,在设计元数据方案时,设计人员需要在通用性和专用性之间加以协调、平衡,才能产生更好的效果。

1.4 元素设置的可扩展性原则

所谓元素设置的可扩展性原则是指在元数据方案设计时,为元素、元素的限定词以及属性值的扩充留有一定的余地。数字图书馆要处理的数字化信息资源非常广泛,而且各类数字化信息资源的应用背景更为复杂。如果元数据方案只提供最广泛意义上的描述,一些针对特定应用背景的内容并不纳入,那么,应允许使用者在不破坏已规定的标准内容(如元素的语义定义)的条件下,扩充一些元素或属性值。此外,元数据是一个发展活跃的领域,新的元数据元素会不断出现,老的元数据元素会不断修改完善。数字图书馆的生存环境是一个不断变化的环境,新的.信息源也会层出不穷。这就要求元数据方案允许将新的元数据元素容纳于其中,或者要求修改更新已经注册的元数据方案。

1.5 元数据方案的互操作性原则

所谓元数据方案的互操作性,是指在由不同的组织制定与管理且技术规范不尽相同的元数据环境下,要向用户提供一个统一的数据检索界面,确保系统对用户的一致性服务。在具体应用上,互操作性表现为易转换性,即在所携信息损失最小的前提下,可方便地转换为其它系统常用的元数据。

应用元数据开发数据映射辅助工具论文

元白诗派相关知识解析

hadoop hive sql语法详解

基于元数据仓储的图书馆信息资源管理研究

元叙事

数据管理制度

数据报告

《贺进士王参元失火书柳宗元》阅读答案解析

元宪宗简介

市场调研数据收集

Hive元数据解析(推荐6篇)

欢迎下载DOC格式的Hive元数据解析,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档