Greenplum

  1. 查询哪个表的分布键 ( Greenplum )

    SELECT
    att.nspname AS 模式名
    , att.relname AS 表名
    , table_comment AS 表注释
    , string_agg (a.attname, '、') AS 分布键
    FROM
    (
    SELECT c.oid
    , obj_description(c.oid) AS table_comment
    , n.nspname,c.relname,regexp_split_to_table (array_to_string (d.distkey, ' '),' ')::int as attnu
    FROM gp_distribution_policy d
    LEFT JOIN pg_class c ON c.oid = d.localoid
    LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
    WHERE c.oid = 'u_dws.opn_label_factory_user_group'::regclass -- '模式名.表名'::regclass
    ) att
    LEFT JOIN pg_attribute a ON a.attrelid = att.oid
    WHERE att.attnu = a.attnum
    GROUP BY 1,2,3
    ;

    或者是:

    SELECT
    aaa.oid,
    aaa.nspname AS "模式名",
    aaa.relname AS "表名",
    aaa.table_comment AS "中文表名",
    ccc.attname AS "分布键"
    FROM
    (
    SELECT
    aa.oid,
    aa.relname,
    obj_description ( aa.oid ) AS table_comment,
    bb.localoid,
    bb.distkey,
    regexp_split_to_table( array_to_string( bb.distkey, ' ' ), ' ' ) att,
    dd.nspname
    FROM
    pg_class aa
    LEFT JOIN pg_catalog.gp_distribution_policy bb ON bb.localoid = aa.oid
    LEFT JOIN pg_namespace dd ON dd.oid = aa.relnamespace --模式
    LEFT JOIN pg_inherits hh ON aa.oid = hh.inhrelid --继承表
    WHERE
    dd.nspname = 'u_dws_dev' -- 替换成需要的模式schema
    AND hh.inhrelid IS NULL
    ) aaa
    LEFT JOIN pg_attribute ccc ON ccc.attrelid = aaa.oid
    AND CAST ( ccc.attnum AS TEXT ) = aaa.att
    WHERE
    ccc.attnum > 0
    AND aaa.relname = 'opn_label_factory_user_group' --需要查询的表名
    ;
  2. 查看每个表的表注释 ( Greenplum )

      -- 直接执行就可以
    with tmp_tab as (
    select pc.oid as ooid,pn.nspname,pc.*
    from pg_class pc
    left outer join pg_namespace pn
    on pc.relnamespace = pn.oid
    where 1=1
    and pc.relkind in ('r')
    and pn.nspname not in ('pg_catalog','information_schema') -- select pn.oid, pn.* from pg_namespace pn where 1=1
    and pn.nspname not like 'pg_toast%'
    and pc.oid not in (
    select inhrelid
    from pg_inherits
    )
    and pc.relname not like '%peiyb%'
    order by pc.relname
    ),tmp_desc as (
    select pd.*
    from pg_description pd
    where 1=1
    and pd.objsubid = 0 --objsubid 对于一个表列上的一个注释,这里是列号(objoid和classoid指表本身)。对所有其他对象类型,此列为0。
    --and pd.objoid=168605
    )
    select t0.*
    from (
    select tab.relname as table_name, -- tab.relname:表名
    de.description -- de.description:表注释
    from tmp_tab tab
    left outer join tmp_desc de
    on tab.ooid = de.objoid
    where 1=1 and tab.nspname = 'ods_rk' -- and tab.relname='your_table_name' -- tab.nspname:模式名
    ) t0
    where 1=1;
  3. 通过MYSQLGreenplum加注释

  • 加表注释

     select
    CONCAT('COMMENT ON TABLE "edc_rk"."', a.TABLE_NAME, '" IS ''', a.TABLE_COMMENT, ''';') AS `SQL`
    from information_schema.TABLES a
    where a.TABLE_SCHEMA = 'edc_rk' and a.TABLE_NAME not like '%copy%'
    ORDER BY a.TABLE_NAME
    ;
  • 加列注释

    select
    b.ORDINAL_POSITION AS 列序号
    , CONCAT('COMMENT ON COLUMN "edc_rk"."', a.TABLE_NAME, '"."', b.COLUMN_NAME, '" IS ''', b.COLUMN_COMMENT, ''';') AS `SQL`
    from information_schema.TABLES a left join information_schema.COLUMNS b
    on a.TABLE_SCHEMA = 'edc_rk'-- and SUBSTR(a.TABLE_COMMENT, 1, 1) = '|'
    and a.TABLE_SCHEMA = b.TABLE_SCHEMA and a.TABLE_NAME = b.TABLE_NAME
    where a.TABLE_SCHEMA = 'edc_rk' and a.TABLE_NAME not like '%copy%' and a.TABLE_NAME <> 'sheet1'
    ORDER BY a.TABLE_NAME, b.ORDINAL_POSITION
    ;
  1. 查询字段的注释等相关信息

    SELECT UPPER(A.SCHEMANAME) AS SCHEMANAME,
    UPPER(A.TABLENAME) AS TABLENAME,
    --D.ATTRELID ,
    --D.ATTRELID::regclass,
    UPPER(D.ATTNAME) AS ATTNAME,
    REPLACE(REPLACE(REPLACE(FORMAT_TYPE(D.ATTTYPID, D.ATTTYPMOD),
    'numeric',
    'NUMBER'),
    'character varying',
    'VARCHAR2'),
    'date',
    'DATE') AS DATA_TYPE,
    E.DESCRIPTION
    FROM PG_TABLES A
    INNER JOIN PG_CLASS B
    ON A.TABLENAME = B.RELNAME
    LEFT JOIN PG_CATALOG.PG_DESCRIPTION E
    ON B.OID = E.OBJOID
    LEFT JOIN PG_CATALOG.PG_ATTRIBUTE D
    ON D.ATTRELID = E.OBJOID
    AND D.ATTNUM = E.OBJSUBID
    WHERE SCHEMANAME = 'pmart_risk'
    AND A.TABLENAME LIKE '%表名称%'
    AND D.ATTNUM > 0
    ORDER BY A.TABLENAME ,D.ATTNUM
    ;

【有用的SQL】查Greenplum的数据字典的更多相关文章

  1. 三个有用的SQL辅助工具

    三个有用的SQL辅助工具 编写人:CC阿爸 2015-1-23 工欲善其事必先利其器,今天在这里,我想与大家一起分享三个有用的SQL辅助工具.有兴趣的同学,可以一同探讨与学习一下,否则就略过吧. 相信 ...

  2. sql查重去除id最小值

    select order_id FROM yzj_store_order t WHERE (t.user_id,t.order_status) IN ( SELECT user_id,order_st ...

  3. greenplum(postgresql) 数据字典

    greenplum是基于postgresql开发的分布式数据库,里面大部分的数据字典是一样的.我们在维护gp的时候对gp的数据字典比较熟悉,特此分享给大家.在这里不会详细介绍每个字典的内容,只会介绍常 ...

  4. 比较有用的sql语句

    一.基础 .说明:创建数据库 CREATE DATABASE database-name .说明:删除数据库 drop database dbname .说明:备份sql server --- 创建 ...

  5. SQL查临时表没有返回数据集

    问题描述:在SQL中可以查询到数据,返回不到页面上. 解决办法: set nocount on create table #list [转] 每次我们在使用查询分析器调试SQL语句的时候,通常会看到一 ...

  6. PowerDesigner根据SQL文件生成PDM数据字典

    当PowerDesigner不能直接连接到数据库的时候,可以用到下面这个方法生成数据字典(直接连接数据库生成数据字典在上次随笔中有介绍). 具体操作步骤截图: ↓↓↓这里选择的sql文件是从数据库导出 ...

  7. 我试了试用 SQL查 Linux日志,好用到飞起

    大家好,我是小富~ 最近发现点好玩的工具,迫不及待的想跟大家分享一下. 大家平时都怎么查Linux日志呢? 像我平时会用tail.head.cat.sed.more.less这些经典系统命令,或者aw ...

  8. 有用的sql语句积累

    ⑴.  sql查询未被外键关联的数据 select * from bb b where not exists (select 1 from aa a where a.bid=b.bid)

  9. 利用hive源码解析sql查了哪些表哪些字段

    在hiveserver2中使用了org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer对抽象语法树(AST)进行语义分析,分析的过程可以得出hive查 ...

随机推荐

  1. vue - Vue脚手架(终结篇)/ vue动画

    几天的内容不是很多,因为我们脚手架的学习告一段落了,也是为了跟明天开始的内容有一个区分. 明天将会有一个非常重要的内容来了,各位,vue中的ajax他来了,这个绝对是重量级,有点兴奋! 十一.TODO ...

  2. Docker将镜像文件发布到私服库

    上一篇已经介绍如何将镜像发布到阿里云:https://www.cnblogs.com/sportsky/p/16246394.html 一.创建新镜像文件 1.创建容器并在容器内创建文件 在根目录下创 ...

  3. 无线:SSID

    BSSID,SSID,ESSID区别   SSID(Service Set Identifier)   SSID,AP唯一的ID码,许多人认为可以将SSID写成ESSID,其实不然,SSID是个笼统的 ...

  4. 基于Proxmox平台搭建3D云教室

    背景 本文介绍了在 Proxmox VE 虚拟化平台上使用NVIDIA A16 GPU,开启vGPU特性,利用DoraCloud 搭建3D云教室的方案. Proxmox virtualization ...

  5. vue 的个人学习小笔记

    一.vite2.0+vue3.0+ts 创建.配置 个人公众号文章地址 个人github仓库地址 1.Vite 创建 vue3 项目: 1.1.npm 常用命令 1.npm 查看版本号 npm vie ...

  6. 使用 vim 快速对当前文件夹下的文件批量重命名

    前言 我们在使用 Linux 的时候,有很多种方法可以对文件进行重命名,例如 命令行 下的 mv 命令,或者是使用像 dolphin 这样的图形文件管理器.但是有时候需要对一个文件夹下的所有文件批量重 ...

  7. 硬件开发笔记(四):硬件开发基本流程,制作一个USB转RS232的模块(三):设计原理图

    前者   前面建立好的基础的元器件,下面开始设计原理图.   需求 USB转RS232,输出RS232 可以选择性输出5V的TTL 可以选择性输出3.3V的TTL   设计原理图 步骤一:CH340G ...

  8. Java - 四种引用类型及应用场景

    1. 强引用 new 一个对象的时候,就是强引用 Object object = new Object(); 只要强引用存在,垃圾回收就不会回收该对象,内存不足时会抛出OOM. 2. 软引用 定义:非 ...

  9. MAUI模板项目闪退问题

    MAUI模板项目闪退问题 在MAUI最初发布的时候就曾创建过几个模板项目进行体验过,没遇到什么坑.由于最近需要开发针对餐饮行业的收银机(安卓系统)开发一款应用,这种收银机一般配置不咋滴,系统版本和性能 ...

  10. QT软件工程师招聘市场需求报告

    QT软件工程师招聘市场需求报告 目录 最流行的编程语言排行榜 QT软件工程师职位需求 QT软件工程师薪资待遇 QT软件工程师行业需求 QT软件工程师QT技术需求 QT软件工程师基础技术需求 QT软件工 ...