Information_Schema 的 Redshift 选项

Posted

技术标签:

【中文标题】Information_Schema 的 Redshift 选项【英文标题】:Redshift option for Information_Schema 【发布时间】:2013-07-12 17:29:09 【问题描述】:

刚从 SSMS 迁移到 Redshift(使用 DBeaver),我想知道是否有一个很好的选择来获取表描述。在 SQL Server 中,您可以针对 information_schema 编写一个很好的查询来提取列名、数据类型等。Redshift 中是否有类似的选项?

【问题讨论】:

docs.aws.amazon.com/redshift/latest/dg/… 是的,我意识到 redshift 有文档并且我已经搜索过了。您有什么特别想引起我注意的部分吗? 深层链接:docs.aws.amazon.com/redshift/latest/dg/c_join_PG_examples.html 【参考方案1】:

INFORMATION_SCHEMA 表在 Redshift 中可用。

可能是您选择的查询工具 (DBeaver) 将架构隐藏在 GUI 中。但是,您仍然应该能够正常查询它们。

当我使用 Navicat 时,这对我来说肯定是这样。如果您想查看架构,那么在使用 SQL Workbench 或 SQuirreL 时它是可见的。

2016-04-04:AWS 创建了一个非常更简单的视图,它提供了完整的 CREATE TABLE 语句,包括所有 Redshift 特定的内容。从这里获取它们:https://github.com/awslabs/amazon-redshift-utils/tree/master/src/AdminViews

【讨论】:

【参考方案2】:

看起来你正在寻找这样的东西:http://rocky-says.blogspot.com/2015/01/amazon-redshift-generate-table-ddl.html

下面是对您有帮助的查询:只需将

替换为您的表名和架构
SELECT DISTINCT n.nspname AS schemaname
 ,c.relname AS tablename
 ,a.attname AS COLUMN
 ,a.attnum AS column_position
 ,pg_catalog.format_type(a.atttypid, a.atttypmod) AS TYPE
 ,pg_catalog.format_encoding(a.attencodingtype) AS encoding
  ,a.attisdistkey AS distkey
 ,a.attsortkeyord AS sortkey
 ,a.attnotnull AS notnull
 ,a.attencodingtype AS compression
 ,con.conkey AS primary_key_column_ids
 ,con.contype AS con_type
FROM pg_catalog.pg_namespace n
 ,pg_catalog.pg_class c
 ,pg_catalog.pg_attribute a
 ,pg_constraint con
 ,pg_catalog.pg_stats stats
WHERE n.oid = c.relnamespace
 AND c.oid = a.attrelid
 AND a.attnum > 0
 AND c.relname NOT LIKE '%pkey'
 AND lower(c.relname) = ''
 AND n.nspname = ''
 AND c.oid = con.conrelid(+)
ORDER BY A.ATTNUM
;

【讨论】:

以上是关于Information_Schema 的 Redshift 选项的主要内容,如果未能解决你的问题,请参考以下文章

Mac brew安装redis

mysql information_schema介绍

Netezza 的信息架构 (INFORMATION_SCHEMA)

MYSQL中information_schema简介

MYSQL中information_schema简介

拒绝访问 MariaDB 中的 information_schema