如何查询系统信息和元数据?

时间:2013-04-16 08:23:30

标签: teradata

在基于Teradata构建的数据仓库中,如何查看整个数据仓库中存在多少数据库,仓库中存在多少数据集市,哪些数据库具有最多的表,哪些数据库最常用。这当然是一个编程问题,因为我在询问如何查询Datawarehouse以获得所需的信息。

我想了解一下datawarehouese。类似的信息或建议肯定会有所帮助 - 我应该注意什么?什么是数据仓库的“心脏”。当您开始使用全新的Datawarehouse时,首先需要注意什么?

2 个答案:

答案 0 :(得分:4)

转到Teradata Documentation web site,找到您正在使用的Teradata版本的“数据字典”一书。有很多字典视图可供使用。

特别包含环境中所有数据库的文件称为“dbc.databases”,因此请运行:

select *
from   dbc.databases
where  DBKind = 'D'

DBKind的另一个值是'U',它包括系统上的用户。

有关表的信息位于dbc.tables和其他视图中。我不知道任何Teradata的“数据集市”概念,所以我无法帮助你。

回答“最常用”之类的问题需要使用其中一个查询日志表(DBQL)。但是,您应该询问系统DBA是否可以使用这些视图。

答案 1 :(得分:3)

- 存在多少个数据库

SEL COUNT(*) 
FROM dbc.databases 
WHERE dbkind = 'D'

SEL COUNT(*) FROM dbc.databases WHERE dbkind = 'D'


- 哪些数据库的表最多?

SEL databasename, COUNT(*) 
FROM dbc.tables
WHERE tablekind = 'T' GROUP BY 1 ORDER BY 2 DESC


TABLEKIND定义
  • A:聚合UDF
  • B:组合的聚合和有序的分析功能
  • E:外部存储过程
  • F:SCALAR UDF
  • G:TRIGGER
  • H:实例或构造方法
  • I:加入指数
  • J:JOURNAL
  • M:MACRO
  • N:HASH INDEX
  • P:已存储的程序
  • 问:QUEUE TABLE
  • R:表功能
  • S:有序分析功能
  • T:表
  • U:用户自定义数据类型
  • V:VIEW
  • X:AUTHORIZATION

- 最常使用的数据库。

SEL databasename, COUNT(*) 
FROM dbc.tables
WHERE tablekind = 'T' GROUP BY 1 ORDER BY 2 DESC

另外,请务必查看 dbc.columns 表,以获取有关每个表中的列,其数据类型等的信息。