唐宋元明清 唐宋元明清
首页
  • 基础

    • Java基础
  • 工具

    • hutool
    • commons
  • 框架

    • Spring Boot相关
  • 设计模式

    • 设计模式入门
  • Hadoop

    • Hadoop分布式搭建
    • Hadoop高可用搭建
    • 集群端口
    • 代码demo
  • Zookeeper

    • Zookeeper集群搭建
  • Hive

    • Hive集群搭建
    • Hive相关
    • HSQL
  • Kafka

    • Kafka集群搭建
  • HBase

    • HBase集群搭建
    • HBase基础学习
  • Spark

    • Spark环境搭建
    • Spark相关知识
  • Flink

    • Flink环境搭建
    • Flink学习
  • Flume

    • Flume安装配置
    • Flume高可用集群安装
    • Flume相关学习
  • Sqoop

    • Sqoop安装配置
    • Sqoop使用
  • 其他

    • docker
  • Oracle

    • Oracle相关知识杂记
    • 系统函数篇
    • 与MySQL语法区别
  • MySQL

    • MySQL知识点
  • Python

    • Python简单语法
    • Python操作Office
    • Python类库学习
    • Python爬虫
  • Shell

    • Shell基础
    • Shell命令行
  • Scala

    • 语法学习
  • 正则表达式

    • 正则基础
  • 调度

    • 调度工具
  • 前端

    • 前端相关
  • 杂记

    • 常用工具或网站
    • 琐碎知识
  • 摘录

    • 摘录
GitHub (opens new window)
首页
  • 基础

    • Java基础
  • 工具

    • hutool
    • commons
  • 框架

    • Spring Boot相关
  • 设计模式

    • 设计模式入门
  • Hadoop

    • Hadoop分布式搭建
    • Hadoop高可用搭建
    • 集群端口
    • 代码demo
  • Zookeeper

    • Zookeeper集群搭建
  • Hive

    • Hive集群搭建
    • Hive相关
    • HSQL
  • Kafka

    • Kafka集群搭建
  • HBase

    • HBase集群搭建
    • HBase基础学习
  • Spark

    • Spark环境搭建
    • Spark相关知识
  • Flink

    • Flink环境搭建
    • Flink学习
  • Flume

    • Flume安装配置
    • Flume高可用集群安装
    • Flume相关学习
  • Sqoop

    • Sqoop安装配置
    • Sqoop使用
  • 其他

    • docker
  • Oracle

    • Oracle相关知识杂记
    • 系统函数篇
    • 与MySQL语法区别
  • MySQL

    • MySQL知识点
  • Python

    • Python简单语法
    • Python操作Office
    • Python类库学习
    • Python爬虫
  • Shell

    • Shell基础
    • Shell命令行
  • Scala

    • 语法学习
  • 正则表达式

    • 正则基础
  • 调度

    • 调度工具
  • 前端

    • 前端相关
  • 杂记

    • 常用工具或网站
    • 琐碎知识
  • 摘录

    • 摘录
GitHub (opens new window)
  • Oracle

    • Oracle相关知识杂记
    • 系统函数篇
    • 与MySQL语法区别
  • MySQL

    • MySQL琐碎知识点
  • 国产数据库

    • 达梦数据库
    • 华为高斯数据库
    • Redis

      • Redis命令学习
    • Excel

      • Excel技巧
    • 数据库
    • SQL非常规用法
    • SQL练习题
    • 数据库
    • 国产数据库
    Ai
    2022-07-21
    目录

    华为高斯数据库

    # 简介

    GaussDB(for openGauss)是基于华为主导的openGauss生态推出的企业级分布式关系型数据库。该产品具备企业级复杂事务混合负载能力,同时支持分布式事务,同城跨AZ部署,数据0丢失,支持1000+的扩展能力,PB级海量存储。

    目前官方收费版本:(2019年10月左右,命名再次调整)

    • gaussdb 100,更名为 GaussDB T (以OLTP和集群为方向,在线事务处理)
    • gaussdb 200 合并 300 的部分设计,更名为 GaussDB A (主打OLAP 在线分析处理)
    • gaussdb 300 型号取消,涉及功能并入 100 或 200

    目前免费开源版本:openGauss

    # 关于数据迁移

    GaussDB 最初是由 PostgreSQL 开源项目自研而来,虽几乎已经是全部自研,但还保留了驱动包以及驱动类。

    官方提供了3个驱动包:(任意一个都行,但需注意冲突问题)

    1. gsjdbc4.jar:驱动类为 org.postgresql.Driver

    与 PostgreSQL 驱动类名一样,在无 PostgreSQL 时使用

    1. gsjdbc200.jar:驱动类为 com.huawei.gauss200.jdbc.Driver

    解决类名冲突问题,项目中同时有 PostgreSQL 和 GaussDB 时使用

    1. openguassjdbc.jar:驱动类为 com.huawei.opengauss.jdbc.Driver

    任意一个驱动类都行,可以通过使用 gsjdbc4.jar 替换 Datax、Kettle 等工具中 PostgreSQL 驱动包,来使其支持 GaussDB,从而进行数据迁移。

    # 元数据使用

    # 元数据表或视图

    系统表

    GS_ PG_ PG_ -
    GS_AUDITING_POLICY PG_AGGREGATE PG_NAMESPACE PGXC_CLASS
    GS_AUDITING_POLICY_ACCESS PG_AM PG_OBJECT PGXC_GROUP
    GS_AUDITING_POLICY_FILTERS PG_AMOP PG_OPCLASS PGXC_NODE
    GS_AUDITING_POLICY_PRIVILEGES PG_AMPROC PG_OPERATOR PGXC_REDISTB
    GS_ASP PG_APP_WORKLOADGROUP_MAPPING PG_OPFAMILY PGXC_SLICE
    GS_CLIENT_GLOBAL_KEYS PG_ATTRDEF PG_PARTITION PLAN_TABLE_DATA
    GS_CLIENT_GLOBAL_KEYS_ARGS PG_ATTRIBUTE PG_PLTEMPLATE STATEMENT_HISTORY
    GS_COLUMN_KEYS PG_AUTHID PG_PROC STREAMING_STREAM
    GS_COLUMN_KEYS_ARGS PG_AUTH_HISTORY PG_PUBLICATION STREAMING_CONT_QUERY
    GS_DB_PRIVILEGE PG_AUTH_MEMBERS PG_PUBLICATION_REL STREAMING_REAPER_STATUS
    GS_ENCRYPTED_COLUMNS PG_CAST PG_RANGE
    GS_ENCRYPTED_PROC PG_CLASS PG_REPLICATION_ORIGIN
    GS_GLOBAL_CHAIN PG_COLLATION PG_RESOURCE_POOL
    GS_GLOBAL_CONFIG PG_CONSTRAINT PG_REWRITE
    GS_JOB_ATTRIBUTE PG_CONVERSION PG_RLSPOLICY
    GS_JOB_ARGUMENT PG_DATABASE PG_SECLABEL
    GS_MASKING_POLICY PG_DB_ROLE_SETTING PG_SHDEPEND
    GS_MASKING_POLICY_ACTIONS PG_DEFAULT_ACL PG_SHDESCRIPTION
    GS_MASKING_POLICY_FILTERS PG_DEPEND PG_SHSECLABEL
    GS_MATVIEW PG_DESCRIPTION PG_STATISTIC
    GS_MATVIEW_DEPENDENCY PG_DIRECTORY PG_SUBSCRIPTION
    GS_MODEL_WAREHOUSE PG_ENUM PG_SYNONYM
    GS_POLICY_LABEL PG_EXTENSION_DATA_SOURCE PG_TABLESPACE
    GS_RECYCLEBIN PG_FOREIGN_DATA_WRAPPER PG_TRIGGER
    GS_SQL_PATCH PG_FOREIGN_SERVER PG_TS_CONFIG
    GS_TXN_SNAPSHOT PG_FOREIGN_TABLE PG_TS_CONFIG_MAP
    GS_UID PG_HASHBUCKET PG_TS_DICT
    GS_WLM_INSTANCE_HISTORY PG_INDEX PG_TS_PARSER
    GS_WLM_OPERATOR_INFO PG_INHERITS PG_TS_TEMPLATE
    GS_WLM_SESSION_QUERY_INFO_ALL PG_JOB PG_TYPE
    GS_WLM_USER_RESOURCE_HISTORY PG_JOB_PROC PG_USER_MAPPING
    PG_LANGUAGE PG_USER_STATUS
    PG_LARGEOBJECT PG_WORKLOAD_GROUP
    PG_LARGEOBJECT_METADATA

    系统视图

    ADM/GLOBAL/PV DB/MY GS/PGXC PG_
    ADM_COL_COMMENTS DB_ALL_TABLES GS_ALL_CONTROL_GROUP_INFO PG_AVAILABLE_EXTENSIONS
    ADM_CONS_COLUMNS DB_CONSTRAINTS GS_AUDITING PG_AVAILABLE_EXTENSION_VERSIONS
    ADM_CONSTRAINTS DB_CONS_COLUMNS GS_AUDITING_ACCESS PG_COMM_DELAY
    ADM_DATA_FILES DB_DEPENDENCIES GS_AUDITING_PRIVILEGE PG_COMM_RECV_STREAM
    ADM_HIST_SNAPSHOT DB_IND_COLUMNS GS_CLUSTER_RESOURCE_INFO PG_COMM_SEND_STREAM
    ADM_HIST_SQL_PLAN DB_IND_EXPRESSIONS GS_DB_PRIVILEGES PG_COMM_STATUS
    ADM_HIST_SQLSTAT DB_INDEXES GS_GET_CONTROL_GROUP_INFO PG_CONTROL_GROUP_CONFIG
    ADM_HIST_SQLSTAT_FUNC DB_OBJECTS GS_GSC_MEMORY_DETAIL PG_CURSORS
    ADM_HIST_SQLSTAT_IDLAG_FUNC DB_PROCEDURES GS_LABELS PG_GET_INVALID_BACKENDS
    ADM_INDEXES DB_SEQUENCES GS_LSC_MEMORY_DETAIL PG_GET_SENDERS_CATCHUP_TIME
    ADM_IND_COLUMNS DB_SOURCE GS_MASKING PG_GROUP
    ADM_IND_EXPRESSIONS DB_SYNONYMS GS_MATVIEWS PG_INDEXES
    ADM_IND_PARTITIONS DB_TAB_COLUMNS GS_MATVIEWS PG_LOCKS
    ADM_OBJECTS DB_TAB_COMMENTS GS_SESSION_CPU_STATISTICS PG_NODE_ENV
    ADM_PART_INDEXES DB_COL_COMMENTS GS_SESSION_MEMORY_STATISTICS PG_OS_THREADS
    ADM_PART_TABLES DB_TABLES GS_SQL_COUNT PG_POOLER_STATUS
    ADM_PROCEDURES DB_TRIGGERS GS_STAT_DB_CU PG_PREPARED_STATEMENTS
    ADM_SEQUENCES DB_USERS GS_STAT_SESSION_CU PG_PREPARED_XACTS
    ADM_SCHEDULER_JOBS DB_VIEWS GS_WLM_CGROUP_INFO PG_PUBLICATION_TABLES
    ADM_SOURCE MY_COL_COMMENTS GS_WLM_OPERATOR_HISTORY PG_REPLICATION_ORIGIN_STATUS
    ADM_SYNONYMS MY_CONS_COLUMNS GS_WLM_OPERATOR_STATISTICS PG_REPLICATION_SLOTS
    ADM_TABLES MY_CONSTRAINTS GS_WLM_REBUILD_USER_RESOURCE_POOL PG_RLSPOLICIES
    ADM_TABLESPACES MY_INDEXES GS_WLM_RESOURCE_POOL PG_ROLES
    ADM_TAB_COLUMNS MY_IND_COLUMNS GS_WLM_SESSION_HISTORY PG_RULES
    ADM_TAB_COMMENTS MY_IND_EXPRESSIONS GS_WLM_SESSION_INFO PG_RUNNING_XACTS
    ADM_TAB_PARTITIONS MY_IND_PARTITIONS GS_WLM_SESSION_INFO_ALL PG_SECLABELS
    ADM_TRIGGERS MY_JOBS GS_WLM_USER_INFO PG_SESSION_IOSTAT
    ADM_TYPE_ATTRS MY_OBJECTS GS_WLM_USER_SESSION_INFO PG_SESSION_WLMSTAT
    ADM_USERS MY_PART_INDEXES GS_WLM_SESSION_STATISTICS PG_SETTINGS
    ADM_VIEWS MY_PART_TABLES GS_WLM_WORKLOAD_RECORDS PG_SHADOW
    COMM_CLIENT_INFO MY_PROCEDURES GS_WRITE_TERM_LOG PG_SHARED_MEMORY_DETAIL
    DV_SESSIONS MY_SEQUENCES PGXC_COMM_DELAY PG_STATS
    DV_SESSION_LONGOPS MY_SOURCE PGXC_COMM_RECV_STREAM PG_STAT_ACTIVITY
    GET_GLOBAL_PREPARED_XACTS MY_SYNONYMS PGXC_COMM_SEND_STREAM PG_STAT_ALL_INDEXES
    GV_SESSION MY_TAB_COLUMNS PGXC_COMM_STATUS PG_STAT_ALL_TABLES
    MPP_TABLES MY_TAB_COMMENTS PGXC_GET_STAT_ALL_TABLES PG_STAT_BAD_BLOCK
    PLAN_TABLE MY_TAB_PARTITIONS PGXC_GET_TABLE_SKEWNESS PG_STAT_BGWRITER
    SYS_DUMMY MY_TABLES PGXC_NODE_ENV PG_STAT_DATABASE
    GLOBAL_BAD_BLOCK_INFO MY_TRIGGERS PGXC_OS_THREADS PG_STAT_DATABASE_CONFLICTS
    GLOBAL_CLEAR_BAD_BLOCK_INFO MY_VIEWS PGXC_PREPARED_XACTS PG_STAT_REPLICATION
    GLOBAL_COMM_CLIENT_INFO PGXC_RUNNING_XACTS PG_STAT_SUBSCRIPTION
    GLOBAL_STAT_HOTKEYS_INFO PGXC_STAT_ACTIVITY PG_STAT_SYS_INDEXES
    GLOBAL_WAL_SENDER_STATUS PGXC_STAT_BAD_BLOCK PG_STAT_SYS_TABLES
    PV_FILE_STAT PGXC_SQL_COUNT PG_STAT_USER_FUNCTIONS
    PV_INSTANCE_TIME PGXC_THREAD_WAIT_STATUS PG_STAT_USER_INDEXES
    PV_OS_RUN_INFO PGXC_TOTAL_MEMORY_DETAIL PG_STAT_USER_TABLES
    PV_REDO_STAT PGXC_VARIABLE_INFO PG_STAT_XACT_ALL_TABLES
    PV_SESSION_MEMORY PGXC_WLM_REBUILD_USER_RESPOOL PG_STAT_XACT_SYS_TABLES
    PV_SESSION_MEMORY_CONTEXT PGXC_WLM_SESSION_HISTORY PG_STAT_XACT_USER_FUNCTIONS
    PV_SESSION_MEMORY_DETAIL PGXC_WLM_SESSION_INFO PG_STAT_XACT_USER_TABLES
    PV_SESSION_STAT PGXC_WLM_SESSION_STATISTICS PG_STATIO_ALL_INDEXES
    PV_SESSION_TIME PGXC_WLM_WORKLOAD_RECORDS PG_STATIO_ALL_SEQUENCES
    PV_THREAD_MEMORY_CONTEXT PG_STATIO_ALL_TABLES
    PV_TOTAL_MEMORY_DETAIL PG_STATIO_SYS_INDEXES
    PG_STATIO_SYS_SEQUENCES
    PG_STATIO_SYS_TABLES
    PG_STATIO_USER_INDEXES
    PG_STATIO_USER_SEQUENCES
    PG_STATIO_USER_TABLES
    PG_THREAD_WAIT_STATUS
    PG_TABLES
    PG_TDE_INFO
    PG_TIMEZONE_ABBREVS
    PG_TIMEZONE_NAMES
    PG_TOTAL_MEMORY_DETAIL
    PG_TOTAL_USER_RESOURCE_INFO
    PG_TOTAL_USER_RESOURCE_INFO_OID
    PG_USER
    PG_USER_MAPPINGS
    PG_VARIABLE_INFO
    PG_VIEWS
    PG_WLM_STATISTICS
    # 查询所有模式
    SELECT
                pn.oid AS schema_oid
               ,iss.CATALOG_NAME
               ,iss.schema_owner
               ,iss.SCHEMA_NAME 
          FROM information_schema.schemata iss
    INNER JOIN pg_namespace pn 
            ON pn.nspname = iss.SCHEMA_NAME;
    
    # 查询当前模式下的所有表名以及中文注释
    SELECT DISTINCT "table_name", obj_description ( oid, 'pg_class' ) AS table_alias 
      FROM information_schema.tables t1, pg_class t2 
     WHERE table_schema = 'gisdb' 
       AND t1."table_name" = t2.relname
    
    # 表名查询字段属性
    # 方式1:(支持查询指定模式schema下某张表的字段信息)
        SELECT u.relname, a.attname AS field, t.typname AS type
          FROM (select c.relname,c.oid,n.nspname from pg_class c left join pg_catalog.pg_namespace n on c.relnamespace = n.oid) u,
               pg_attribute a,
               pg_type t
         WHERE u.relname = '实际的表名'
           AND u.nspname = '实际的schema名称'
           AND a.attnum > 0
           AND a.attrelid = u.oid
           AND a.atttypid = t.oid
      ORDER BY a.attnum;
      
    # 方式:2:
        SELECT a.attnum, a.attname AS field, t.typname AS type, a.attlen AS length, a.atttypmod AS lengthvar, a.attnotnull AS notnull, b.description AS comment
          FROM pg_class c, pg_attribute a
     LEFT JOIN pg_description b
            ON a.attrelid = b.objoid
           AND a.attnum = b.objsubid, pg_type t
         WHERE c.relname = '实际的表名'
           AND a.attnum > 0
           AND a.attrelid = c.oid
           AND a.atttypid = t.oid
      ORDER BY a.attnum;
    
    # 查询视图定义语句
    select 'create or repacle view ' || viewname || ' as ' || definition FROM pg_view WHERE schemaname = '模式' AND viewowner = '用户';
    select 'create or repacle view ' || view_name || ' as ' || text from db_views  where owner = '用户';
    
    # 查询表字段信息
    SELECT table_name, column_name
      FROM information_schema.columns
     WHERE table_schema = '模式'
       AND table_name = '表名'
     ORDER BY table_name, column_name
    

    # 踩坑日记

    # date 字段类型

    高斯数据库兼容模式:

    可能不同兼容模式行为不一致,可查询系统表 PG_DATABASE(datcompatibility字段) 查看当前数据库兼容模式(当前支持四种兼容模式:A、B、C、PG,分别表示兼容O、MY、TD和POSTGRES,默认为MySQL兼容模式)
    20221122 补充:确实是因为创建模式时兼容模式导致,重新创建模式后问题解决

    由于 date 字段类型不存储时分秒(Oracle模式下?),故需修改为 timestamp 类型,所有表及视图都需要重新创建。

    编辑 (opens new window)
    上次更新: 2022/11/22, 17:20:22
    达梦数据库
    Redis命令学习

    ← 达梦数据库 Redis命令学习→

    Theme by Vdoing | Copyright © 2022-2025 Ai | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×