Java实现mysql、hive、hbase数据库元数据操作

数据库元数据

元数据(Metadata)是关于数据的数据。元数据是描述数据仓库内数据的结构和建立方法的数据,按用途的不同可分为两类:技术元数据(Technical Metadata)和业务元数据(Business Metadata)。技术元数据是存储关于数据仓库系统技术细节的数据,可用于开发和管理数据仓库,主要包括对数据仓库结构的描述等。业务元数据从业务角度描述了数据仓库中的数据,使得不懂计算机技术的业务人员也能够"读懂"数据仓库中的数据。业务元数据主要包括使用者的业务术语所表达的数据模型、对象名和属性名等。

mysql的元数据

mysql关于表的元数据存储在数据库中自带的information_schema.TABLES表中,下面对表中的部分属性进行解释。

字段名称 说明
TABLE_CATELOG 数据表登记目录
TABLE_SCHEMA 数据表所属的数据库名
TABLE_NAME 表名称
TABLE_TYPE 表类型(取值:system view
ENGINE 使用的数据库引擎(取值:MyISAM
VERSION 版本,默认值10
ROW_FORMAT 行格式(Compact
TABLE_ROWS 表里所存数据行数
AVG_ROW_LENGTH 平均行长度
DATA_LENGTH 数据长度
MAX_DATA_LENGTH 最大数据长度
INDEX_LENGTH 索引长度
DATA_FREE 空间碎片
AUTO_INCREMENT 做自增主键的自动增量当前值
CREATE_TIME 表的创建时间
UPDATE_TIME 表的更新时间
CHECK_TIME 表的检查时间
TABLE_COLLATION 表的字符校验编码集
CHECKSUM 校验和
CREATE_OPTIONS 创建选项
TABLE_COMMENT 表的注释、备注

关于列的元数据存储在information_schema.COLUMNS表中,下面对表中的部分属性进行解释。

字段名称 说明
TABLE_SCHEMA 表格所属的库
TABLE_NAME 表名
COLUMN_NAME 字段名
ORDINAL_POSITION 字段标识,从1开始
COLUMN_DEFAULT 字段默认值
IS_NULLABLE 字段是否可以为空,取值是YES或NO
DATA_TYPE 数据类型
CHARACTER_MAXIMUM_LENGTH 字段的最大字符数
CHARACTER_OCTET_LENGTH 字段的最大字节数
NUMERIC_PRECISION 数字精度,适用于int,float等数字类型
NUMERIC_SCALE 小数位数,适用于int,float等数字类型
DATETIME_PRECISION datetime类型和SQL-92interval类型数据库的子类型代码
CHARACTER_SET_NAME 字段字符集名称,如utf8
COLLATION_NAME 字符集排序规则,如utf8_general_ci
COLUMN_TYPE 字段类型,如float(9,3),varchar(50)
COLUMN_KEY 索引类型
EXTRA 其他信息,如主键的auto_increment
PRIVILEGES 权限,多个权限用逗号隔开
COLUMN_COMMENT 字段注释
GENERATION_EXPRESSION 组合字段的公式

hive的元数据

Hive 的元数据信息通常存储在关系型数据库中,下面对部分元数据表及表中字段进行说明。
TBLS表字段说明:

字段名称 说明
TBL_ID 表ID
CREATE_TIME 表的创建时间
DB_ID 数据库ID
LAST_ACCESS_TIME 上次访问时间
OWNER 所有者
RETENTION 保留字段
SD_ID 序列化配置信息( 对应SDS表中的SD_ID)
TBL_NAME 表名
TBL_TYPE 表的类型
VIEW_EXPANDED_TEXT 视图的详细HQL语句
VIEW_ORIGINAL_TEXT 视图的原始HQL语句

TABLE_PARAMS表字段说明:

字段名称 说明
TBL_ID 表ID(对应TBLS的TBL_ID)
PARAM_KEY 属性名
PARAM_VALUE 属性值

SDS表字段说明:

字段名称 说明
SD_ID 存储信息ID(对应TBLS表中的SD_ID )
CD_ID 字段信息ID(对应COLUMN_V2表中的CD_ID)
INPUT_FORMAT 文件输入格式
IS_COMPRESSED 是否压缩
IS_STOREDASSUBDIRECTORIES 是否以子目录存储
LOCATION HDFS路径
NUM_BUCKETS 分桶数量
OUTPUT_FORMAT 文件输出格式
SERDE_ID 序列化类ID

COLUMN_V2表字段说明:

字段名称 说明
CD_ID 字段信息ID(对应SDS 表CD_ID)
COMMENT 字段注释
COLUMN_NAME 字段名
TYPE_NAME 字段类型
INTEGER_IDX 字段顺序

hbase的元数据

hbase表中的数据采用rowkey形式存储,与关系型数据模型有些区别。本文使用Phoenix访问hbase。Phoenix是用Java写的基于JDBC API操作HBase的开源SQL引擎,将HBase非关系型形式转换成关系型数据模型。其元数据存储在SYSTEM.CATALOG表中,下面对该表的字段进行说明:

<
字段名称 说明
TABLE_SCHEM 表的schema
TABLE_NAME 表名
COLUMN_NAME 列名
TABLE_TYPE 表的类型
COLUMN_FAMIL hbase底层的列族名
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值