首页 > 编程知识 正文

plsql怎么导出建表语句,sql语句数字转化为文字

时间:2023-05-05 09:26:05 阅读:16406 作者:4114

在使用hive进行开发时,通常需要获取hive表已经存在的表构建语句(DDL ),但hive本身并不提供这样的工具。

必须从元数据开始才能恢复构建表DDL。 我们知道,hive的元数据存储在传统的RDBMS (典型的是mysql、derby等)中,而不是hdfs中。 我们将mysql作为元数据数据库,并与0.4.2版的hive结合使用。

连接到mysql时,您会发现大约有20个与hive元数据对应的表。 其中,与表结构信息相关的有9张,剩下的10张以上为空或只有简单数量的记录。 以下是部分主要表格的简要说明。

表名

说明

相关键

TBLS

所有hive表的基本信息

TBL_ID,SD_ID

TABLE_PARAM

表级属性,如是否为外部表和表注释

TBL_ID

专栏作家

Hive表中的字段信息(字段注释、字段名称、字段类型、字段编号) ) )。

SD_ID

SDS

与所有hive表、表分区对应的hdfs数据目录和数据格式

SD_ID,SERDE_ID

SERDE_PARAM

非序列化信息,如行分隔符、列分隔符和空字符

SERDE_ID

分区

Hive表分区信息

PART_ID、SD_ID和TBL_ID

PARTITION_KEYS

Hive分区表分区键

TBL_ID

PARTITION_KEY_VALS

Hive表分区名称(键值) )

部件_ id

除了上面的几个表之外,还有两个表非常有趣:NUCLEUS_TABLES和SEQUENCE_TABLE

NUCLEUS_TABLES表包含元数据表,例如“org.Apache.Hadoop.hive.metastore.model.m table”和“tbls”,以及hive中的class

SEQUENCE_TABLE表包含下一个新创建的hive表的TBL,如’org.Apache.Hadoop.hive.metastore.model.m table’和271786

从以上两个表的内容中,明确了hive表制作表的过程

用户提交hive语句,对其进行分析,并将其分解为hive对象,如表、字段和分区

根据分析的信息生成对应的表、字段、分区等对象,从SEQUENCE_TABLE中获取生成对象的最新ID,使用DAO方法将生成对象信息(名称、类型等)与生成对象信息一起使用

事实上,我们经常看到的RDBMS是用这种方法组织起来的。 典型地,像postgresql一样,系统表中暴露了这些id信息(oid、cid等),而商业化系统(如Oracle )则隐藏了这些具体id。

有了上述信息,获取hive的表编写语句很容易,但这里提供了已经开发的脚本。 使用shell进行开发,大家可以自由修改。 注意请根据实际环境配置:MySQL连接信息。

使用方法为以下:

hivesql sql

hivesql同步tab

如果需要多天的分区DDL,如果分区中包含日期信息(如pt=20100720 ),也可以使用:

hivesql sql s_table 20100702 —除了表编写成文外,还获取20100702或更高版本的分区DDL

来自hivesqlsqls _ table 2010070220100725……………………2010 07 25的分区DDL

hivesqlsqls _ table 2010070210——………………………………………从2010 07 02开始为期10天的分区DDL

与hivesql sql一样,hivesql synctab支持上述日期限制功能。

此外,还提供了两个附加功能(

hivesql loc —根据关键字查找匹配的hive表或相应的数据路径

hivesql hdfswc —获取指定数据目录中所有数据的总行数,支持常规文本、文本文件和序列文件压缩格式。 与linux的wc -l相似

共享到:

2011-03-22 15:35

1921年阅读

评论

一楼

虞国uai

2013-02-05

无法下载啊。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。