华为云用户手册

  • SSL证书和客户端配置 用户需要配置客户端配置。 GaussDB(DWS) 提供SSL证书下载。 登录GaussDB(DWS) 管理控制台,在左侧导航栏中,进入“连接客户端”页面。在“下载驱动程序”区域,单击“下载SSL证书”进行下载。 将下载的压缩包“dws_ssl_cert.zip”解压,得到证书文件。然后在Data Studio客户端单击“SSL”页签,设置如下参数: 表1 配置SSL参数 字段名称 说明 客户端SSL证书 选择SSL证书解压目录下的“sslcert\client.crt”文件。 客户端SSL密钥 客户端SSL密钥只支持PK8格式,请选择SSL证书解压目录下的“sslcert\client.key.pk8”文件。 根证书 当“SSL模式”设为“verify-ca”或“verify-full”时,必须设置根证书,请选择SSL证书解压目录下的“sslcert\cacert.pem”文件。 SSL密码 客户端pk8格式SSL密钥密码。 SSL模式 GaussDB(DWS) 支持的SSL模式有: require:所使用的SSL factory无需验证,不会验证证书有效性。 verify-ca:会使用相应的SSL factory检查CA是否正确。 verify-full:会使用相应的SSL factory检查CA和数据库是否正确。 GaussDB(DWS) 不支持“verify-full”模式。 选择“客户端SSL证书”和“客户端SSL密钥”,可使用安全连接从Data Studio中导出DDL和数据。 如果为“客户端SSL证书”和“客户端SSL密钥”选择了无效的文件,将导致导出失败。有关详情,请参见故障处理。 如果取消选中“启用SSL”复选框并继续操作,则会弹出“连接安全告警”对话框。要设置是否显示该安全告警,请参见表1。 “继续”:单击“继续”,继续使用不安全的连接。 “取消”:单击“取消”并启用SSL。 “不再显示”:如果勾选该字段,当前登录的Data Studio实例在后续连接时,不再显示“连接安全告警”对话框。 Data Studio首次访问gs-dump特性时,会弹框要求输入客户端密钥。 图1 配置SSL参数
  • PG_NAMESPACE PG_NAMESPACE系统表存储命名空间,即存储schema相关的信息。 表1 PG_NAMESPACE字段 名称 类型 描述 nspname name 命名空间的名称。 nspowner oid 命名空间的所有者。 nsptimeline bigint 在DN上创建此命名空间时的时间线。此字段为内部使用,仅在DN上有效。 nspacl aclitem[] 访问权限。具体请参见GRANT和REVOKE。 permspace bigint schema永久表空间限额。 usedspace bigint schema已用永久表空间大小。 父主题: 系统表
  • 错误日志 DSC仅将迁移过程中发生的错误记录到DSCError.log文件中。该文件位于log文件夹中。DSCError.log文件包含这些错误的日期、时间,文件详细信息(如文件名),以及查询位置等信息。错误日志的记录级别为ERROR。 DSCError.log的文件结构如下: 2017-06-29 14:07:39,585 ERROR TeradataBulkHandler:172 Error occurred during processing of input in Bulk Migration. PreQueryValidation failed in not proper termination or exclude keyword. /home/testmigration/Documentation/Input/c005.sql for Query in position : 4 2017-06-29 14:07:39,962 ERROR TeradataBulkHandler:172 Error occurred during processing of input in Bulk Migration. PreQueryValidation failed in not proper termination or exclude keyword. /home/testmigration/Documentation/Input/c013.sql for Query in position : 11 2017-06-29 14:07:40,136 ERROR QueryConversionUtility:250 Query is not converted as it contains unsupported keyword: join select 2017-06-29 14:07:40,136 ERROR TeradataBulkHandler:172 Error occurred during processing of input in Bulk Migration. PreQueryValidation failed in not proper termination or exclude keyword. /home/testmigration/Documentation/Input/sample.sql for Query in position : 1 2017-06-29 14:07:40,136 ERROR TeradataBulkHandler:172 Error occurred during processing of input in Bulk Migration. PreQueryValidation failed in not proper termination or exclude keyword. /home/testmigration/Documentation/Input/sample.sql for Query in position : 3
  • 活动日志 DSC将所有日志和错误信息保存到DSC.log文件中。该文件位于log文件夹中。DSC.log文件包含执行迁移的用户、迁移的文件、时间戳等详细信息。活动日志的记录级别为INFO。 DSC.log的文件结构如下: 2020-01-22 09:35:10,769 INFO CLMigrationUtility:159 DSC is initiated by xxxxx 2020-01-22 09:35:10,828 INFO CLMigrationUtility:456 Successfully changed permission of files in D:\Migration\Gauss_Tools_18_Migration\code\migration\config 2020-01-22 09:35:10,832 INFO PropertyLoader:90 Successfully loaded Property file : D:\Migration\Gauss_Tools_18_Migration\code\migration\config\application.properties 2020-01-22 09:35:10,833 INFO ApplicationPropertyLoader:42 Application properties have been loaded Successfully 2020-01-22 09:35:10,917 INFO MigrationValidatorService:549 Files in output directory has been overwritten as configured by xxxxx 2020-01-22 09:35:10,920 INFO PropertyLoader:90 Successfully loaded Property file : D:\Migration\Gauss_Tools_18_Migration\code\migration\config\features-oracle.properties 2020-01-22 09:35:10,921 INFO FeatureLoader:41 Features have been loaded Successfully 2020-01-22 09:35:10,926 INFO MigrationService:80 DSC process start time : Wed Jan 22 09:35:10 GMT+05:30 2020 2020-01-22 09:35:10,933 INFO FileHandler:179 File is not supported. D:\Migration_Output\Source\ARRYTYPE.sql- 2020-01-22 09:35:10,934 INFO FileHandler:179 File is not supported. D:\Migration_Output\Source\varray.sql- 2020-01-22 09:35:12,816 INFO PropertyLoader:90 Successfully loaded Property file : D:\Migration\Gauss_Tools_18_Migration\code\migration\config\global-temp-tables.properties 2020-01-22 09:35:12,830 INFO PropertyLoader:90 Successfully loaded Property file : D:\Migration\Gauss_Tools_18_Migration\code\migration\config\create-types-UDT.properties 2020-01-22 09:35:12,834 INFO PropertyLoader:90 Successfully loaded Property file : D:\Migration\Gauss_Tools_18_Migration\code\migration\config\package-names-oracle.properties 2020-01-22 09:35:12,849 INFO DBMigrationService:76 Number of Available Processors: 4 2020-01-22 09:35:12,850 INFO DBMigrationService:78 Configured simultaneous processes in the Tool : 3 2020-01-22 09:35:13,032 INFO MigrationProcessor:94 File name: D:\Migration_Output\Source\Input.sql is started 2020-01-22 09:35:13,270 INFO FileHandler:606 guessencoding command output = Error: Unable to access jarfile D:\Migration\Gauss_Tools_18_Migration\code\migration\RE_migration\target\dsctool.jar , for file= D:\Migration_Output\Source\Input.sql 2020-01-22 09:35:13,272 INFO FileHandler:625 couldn't get the encoding format, so using the default charset for D:\Migration_Output\Source\Input.sql 2020-01-22 09:35:13,272 INFO FileHandler:310 File D:\Migration_Output\Source\Input.sql will be read with charset : UTF-8 2020-01-22 09:35:13,390 INFO FileHandler:668 D:\Migration_Output\target\output\Input.sql - File already exists/Failed to create target file 2020-01-22 09:35:13,562 INFO FileHandler:606 guessencoding command output = Error: Unable to access jarfile D:\Migration\Gauss_Tools_18_Migration\code\migration\RE_migration\target\dsctool.jar , for file= D:\Migration_Output\Source\Input.sql 2020-01-22 09:35:13,563 INFO FileHandler:625 couldn't get the encoding format, so using the default charset for D:\Migration_Output\Source\Input.sql 2020-01-22 09:35:13,563 INFO FileHandler:675 File D:\Migration_Output\Source\Input.sql will be written with charset : UTF-8 2020-01-22 09:35:13,604 INFO MigrationProcessor:139 File name: D:\Migration_Output\Source\Input.sql is processed successfully 2020-01-22 09:35:13,605 INFO MigrationService:147 Total number of files in Input folder : 3 2020-01-22 09:35:13,605 INFO MigrationService:148 Total number of queries : 1 22020-01-22 09:35:13,607 INFO PropertyLoader:164 Successfully updated Property file : D:\Migration\Gauss_Tools_18_Migration\code\migration\config\global-temp-tables.properties 2020-01-22 09:35:13,630 INFO PropertyLoader:164 Successfully updated Property file : D:\Migration\Gauss_Tools_18_Migration\code\migration\config\create-types-UDT.properties 2020-01-22 09:35:13,631 INFO PropertyLoader:164 Successfully updated Property file : D:\Migration\Gauss_Tools_18_Migration\code\migration\config\package-names-oracle.properties 2020-01-22 09:35:13,632 INFO CLMigrationUtility:305 Log file : dsc.log and the file is present in the path : D:\Migration_Output\log 2020-01-22 09:35:13,632 INFO CLMigrationUtility:312 DSC process end time : Wed Jan 22 09:35:13 GMT+05:30 2020 2020-01-22 09:35:13,632 INFO CLMigrationUtility:217 Total process time : 2842 seconds
  • 成功读 在DSC读取文件之后,该文件将被记录日志以进行跟踪。在某些情况下,用户可通过这些日志获取文件执行状态的信息。该文件位于log文件夹中。日志文件包括日期、时间、文件名等详细信息。此日志文件的日志记录级别为INFO。 successRead.log的文件结构如下: 2017-07-21 14:13:00,461 INFO readlogger:213 /home/testmigration/Documentation/is not in.sql is read successfully. 2017-07-21 14:13:00,957 INFO readlogger:213 /home/testmigration/Documentation/date quotes.sql is read successfully. 2017-07-21 14:13:01,509 INFO readlogger:213 /home/testmigration/Documentation/column alias replace.sql is read successfully. 2017-07-21 14:13:02,034 INFO readlogger:213 /home/testmigration/Documentation/sampleRownum.sql is read successfully. 2017-07-21 14:13:02,578 INFO readlogger:213 /home/testmigration/Documentation/samp.sql is read successfully. 2017-07-21 14:13:03,145 INFO readlogger:213 /home/testmigration/Documentation/2.6BuildInputs/testWithNodataSamples.sql is read successfully.
  • 成功写 DSC读取、处理文件并将输出写入磁盘。这个过程被记录到成功写日志文件中。在某些情况下,用户可通过此文件了解哪些文件已处理成功。在重新运行的情况下,用户可以跳过这些文件运行剩余的文件。该文件位于log文件夹中。日志文件包括日期、时间、文件名等详细信息。此日志文件的日志记录级别为INFO。 successWrite.log的文件结构如下: 2017-07-21 14:13:00,616 INFO writelogger:595 /home/testmigration/Documentation/is not in.sql has written successfully. 2017-07-21 14:13:01,055 INFO writelogger:595 /home/testmigration/Documentation/date quotes.sql has written successfully. 2017-07-21 14:13:01,569 INFO writelogger:595 /home/testmigration/Documentation/column alias replace.sql has written successfully. 2017-07-21 14:13:02,055 INFO writelogger:595 /home/testmigration/Documentation/sampleRownum.sql has written successfully. 2017-07-21 14:13:02,597 INFO writelogger:595 /home/testmigration/Documentation/samp.sql has written successfully. 2017-07-21 14:13:03,178 INFO writelogger:595 /home/testmigration/Documentation/testWithNodataSamples.sql has written successfully.
  • 示例 数据文件存放在“/data” 目录,IP为192.168.0.90,监听端口为5000。 gds -d /data/ -p 192.168.0.90:5000 -H 10.10.0.1/24 数据文件存放在“/data/” 目录下的任意子目录,IP为192.168.0.90,监听端口为5000。 gds -d /data/ -p 192.168.0.90:5000 -H 10.10.0.1/24 -r 数据文件存放在“/data/ ”目录,IP为192.168.0.90,监听端口为5000,以后台方式运行,将日志保存在“/log/gds_log.txt”文件中,指定并发导入工作线程数目为32。 gds -d /data/ -p 192.168.0.90:5000 -H 10.10.0.1/24 -l /log/gds_log.txt -D -t 32 数据文件存放在“/data/ ”目录,IP为192.168.0.90,监听端口为5000,只允许IP为10.10.0.*的节点进行连接。 gds -d /data/ -p 192.168.0.90:5000 -H 10.10.0.1/24 数据文件存放在“/data/ ”目录,IP为192.168.0.90,监听端口为5000,只允许IP为10.10.0.*的节点进行连接,设定为使用SSL认证的方式与集群通信,证书文件存放在/certfiles/目录。 gds -d /data/ -p 192.168.0.90:5000 -H 10.10.0.1/24 --enable-ssl --ssl-dir /certfiles/ 1个GDS在同一时刻,只能为1个集群提供导入导出服务; 为满足安全要求,请通过-p显式指定监听ip和监听端口。 证书文件包括根证书文件cacert.pem,以及二级证书文件client.crt和密钥文件client.key。 在加载证书时,需要使用密码保护文件client.key.rand和client.key.cipher。
  • GROUP BY转换 MySQL/ADB 分组查询的时候允许查询非分组字段,不报错;DWS分组查询时只能查询分组字段和聚集函数,报错。因此补齐没有group by的查询分组字段。 输入示例 1 SELECT e.department_id, department_name, ROUND(AVG(salary), 0) avg_salary FROM employees e JOIN departments d on e.department_id = d.department_id GROUP BY department_name ORDER BY department_name; 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 SELECT e.department_id, department_name, ROUND (AVG(salary), 0) AS "avg_salary" FROM employees "e" JOIN departments "d" ON e.department_id = d.department_id GROUP BY department_name, 1 ORDER BY department_name; 父主题: SELECT
  • ROW_FORMAT ROW_FORMAT定义了行存储的物理形式。ROW_FORMAT的选择与存储引擎有关,如果在创建表的时候选择了存储引擎不相关的ROW_FORMAT,则使用默认的ROW_FORMAT创建表。当ROW_FORMAT取值为DEFAULT,DSC迁移为SET NOCOMPRESS;当ROW_FORMAT取值为COMPRESSED时,DSC迁移为SET COMPRESS。GaussDB(DWS)不支持其他取值,当取其他值时DSC迁移时会将该属性删除。 输入示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` FLOAT(10,2), `dataType3` DOUBLE(20,8), `dataType4` TEXT NOT NULL, PRIMARY KEY(`dataType1`) ) ENGINE=InnoDB; ## A. ALTER TABLE runoob_alter_test ROW_FORMAT DEFAULT; ALTER TABLE runoob_alter_test ROW_FORMAT=DEFAULT; ## B. ALTER TABLE runoob_alter_test ROW_FORMAT DYNAMIC; ALTER TABLE runoob_alter_test ROW_FORMAT=DYNAMIC; ## C. ALTER TABLE runoob_alter_test ROW_FORMAT COMPRESSED; ALTER TABLE runoob_alter_test ROW_FORMAT=COMPRESSED; ## D. ALTER TABLE runoob_alter_test ROW_FORMAT REDUNDANT; ALTER TABLE runoob_alter_test ROW_FORMAT=REDUNDANT; ## E. ALTER TABLE runoob_alter_test ROW_FORMAT COMPACT; ALTER TABLE runoob_alter_test ROW_FORMAT=COMPACT; 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" REAL, "datatype3" DOUBLE PRECISION, "datatype4" TEXT NOT NULL, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); -- A. ALTER TABLE "public"."runoob_alter_test" SET NOCOMPRESS; ALTER TABLE "public"."runoob_alter_test" SET NOCOMPRESS; -- B. -- C. ALTER TABLE "public"."runoob_alter_test" SET COMPRESS; ALTER TABLE "public"."runoob_alter_test" SET COMPRESS; -- D. -- E. 父主题: 表(可选参数、操作)
  • PG_STAT_DATABASE PG_STAT_DATABASE视图显示当前节点上每个数据库的状态和统计信息。 表1 PG_STAT_DATABASE字段 名称 类型 描述 datid oid 数据库OID。 datname name 数据库名。 numbackends integer 当前节点上连接到该数据库的后端数。 这是该视图中唯一一个反映目前状态值的列;所有列均返回自上次重置以来的累积值。 xact_commit bigint 当前节点上该数据库中已经提交的事务数。 xact_rollback bigint 当前节点上该数据库中已经回滚的事务数。 blks_read bigint 当前节点上该数据库中读取的磁盘块的数量。 blks_hit bigint 当前节点上高速缓存中发现的磁盘块的个数,即缓存中命中的块数(只包括GaussDB(DWS)缓冲区高速缓存,不包括文件系统的缓存)。 tup_returned bigint 当前节点上该数据库查询返回的行数。 tup_fetched bigint 当前节点上该数据库查询抓取的行数。 tup_inserted bigint 当前节点上该数据库插入的行数。 tup_updated bigint 当前节点上该数据库更新的行数。 tup_deleted bigint 当前节点上该数据库删除的行数。 conflicts bigint 当前节点上由于数据库恢复冲突取消的查询数量(只在备用服务器上发生)。可参见PG_STAT_DATABASE_CONFLICTS。 temp_files bigint 当前节点上该数据库创建的临时文件个数。计算所有临时文件,不论为什么创建临时文件(比如排序或者哈希),而且不考虑log_temp_files设置。 temp_bytes bigint 当前节点上该数据库写入临时文件的大小。计算所有临时文件,不论为什么创建临时文件,而且不考虑log_temp_files设置。 deadlocks bigint 当前节点上该数据库中发生的死锁数量。 blk_read_time double precision 当前节点上该数据库后端读取数据文件块花费的时间,以毫秒计算。 blk_write_time double precision 当前节点上该数据库后端写入数据文件块花费的时间,以毫秒计算。 stats_reset timestamp with time zone 当前节点上该数据库统计重置的时间。 父主题: 系统视图
  • 示例 启动一个GDS进程,其数据文件存放在“/data” 目录,IP为192.168.0.90,监听端口为5000。 gds_ctl start --host 192.168.0.90 -d /data/ -p 5000 -H 10.10.0.1/24 -D 启动一批GDS进程,其数据文件存放在“/data” 目录,IP为192.168.0.90、192.168.0.91、192.168.0.92,监听端口为5000。 gds_ctl start --host 192.168.0.90,192.168.0.91,192.168.0.92 -d /data/ -p 5000 -H 0/0 -D 批量关闭位于192.168.0.90、192.168.0.91、192.168.0.92节点上,端口是5000的GDS进程: gds_ctl stop --host 192.168.0.90,192.168.0.91,192.168.0.92 -p 5000 批量重启位于192.168.0.90、192.168.0.91、192.168.0.92节点上,端口是5000的GDS进程: gds_ctl restart --host 192.168.0.90,192.168.0.91,192.168.0.92 -p 5000
  • 语法 启动命令 gds_ctl start --host [/path/to/hostfile | ipaddr1,ipaddr2...] -p PORT -d DATADIR -H ALLOW_IPs [gds other original options] 停止命令 gds_ctl stop --host [/path/to/hostfile | ipaddr1,ipaddr2...] -p PORT 重启命令 gds_ctl restart --host [/path/to/hostfile | ipaddr1,ipaddr2...] -p PORT
  • 查看GUC参数 GaussDB(DWS)的GUC参数影响数据库的系统行为,用户可根据业务场景和数据量查看并调整GUC参数取值。 查看GUC参数方式一:集群创建成功后,用户可在GaussDB(DWS) 管理控制台上查看常用的数据库参数。 查看GUC参数方式二:成功连接集群后,通过SQL命令的方式查看数据库GUC参数。 使用SHOW命令。 使用如下命令查看单个参数: 1 SHOW server_version; server_version显示数据库版本信息的参数。 使用如下命令查看所有参数: 1 SHOW ALL; 使用pg_settings视图。 使用如下命令查看单个参数: 1 SELECT * FROM pg_settings WHERE NAME='server_version'; 使用如下命令查看所有参数: 1 SELECT * FROM pg_settings; 父主题: GUC参数
  • STATS_SAMPLE_PAGES STATS_SAMPLE_PAGES指定估计索引列的基数和其他统计信息时要采样的索引页数。DSC迁移时会将该属性删除。 输入示例 1 2 3 4 5 6 7 8 9 CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), `dataType3` TEXT NOT NULL, PRIMARY KEY(`dataType1`) ) ENGINE=InnoDB,STATS_SAMPLE_PAGES=25; ALTER TABLE runoob_alter_test STATS_SAMPLE_PAGES 100; ALTER TABLE runoob_alter_test STATS_SAMPLE_PAGES=100; 输出示例 1 2 3 4 5 6 7 8 9 10 CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" DOUBLE PRECISION, "datatype3" TEXT NOT NULL, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); 父主题: 表(可选参数、操作)
  • 定义索引 创建索引为可选操作。索引主要用于增强数据库性能。该操作建立指定表中指定列的索引,如需创建“唯一索引”,勾选该复选框。 在“访问方式”中选择要使用的索引方法名称。默认方法是B-tree。 索引的“填充因子”指索引方法填充索引页面的百分比。“访问方式”为B-trees时,初次建立索引以及在右侧扩展索引(填写新的最大键值)时,叶子页面填充到该百分比如果后续完全填满,页面将拆分,这样会导致索引效率逐步衰减。B-trees使用默认填充因子90,也可以选择10~100范围内的整数。如果为静态表,填充因子100,这样可以尽量减小索引的物理尺寸。对于更新量较大的表,推荐填充因子设置为较小值,这样可以尽量减少页面拆分的需求。其他索引方法使用的填充因子不同,但是比较类似。默认的填充因子随方法不同而不同。 可以直接提到索引的用户定义的表达式,也可以使用“可用列”创建索引在“可用列”列表中选择列,单击“添加”。如需多列索引,为其他列重复执行该步骤。 输入新增索引的所有信息后,单击“添加”按钮。 可单击“删除”删除清单中的索引定义完所有列后,单击“下一步”。 下表列出了“索引”中普通表所支持的字段/选项。 表5 支持的字段/选项 字段/选项 行存表 列存表 ORC表 唯一索引 √ x x btree √ √ x gin √ √ x gist √ √ x hash √ √ x psort √ √ x spgist √ √ x 填充因子 √ x x 用户自定义表达式 √ x x 部分索引 √ x x
  • 定义列 列定义了行中的信息单元,每一行为一个表项,每一列为应用于所有行的信息的分类。数据库添加表时,可以定义组成该数据库的列,列决定了表可以包含的数据类型。提供表的通用信息后,单击“列”页签定义列清单,每一列包含名称、数据类型和其他可选属性。 在“列名”区域填写列名称。“列名”指新表中待创建的列的名称,列名在表中唯一。 勾选“区分大小写”复选框可保留“列名”字段中输入的文本的大小写。例如,如果输入的表名称为“Name”,则表名将创建为“Name”。 选择“阵列维度”。“阵列维度”指列的阵列尺寸。 例如:如果某列的数组维度定义为integer [],该列数据会添加为单维数组。 上表的marks列创建为单维数据,subject列创建为二维数据。 从“数据类型”中选择列的数据类型。例如,为整数值选择“bigint”。 对于复杂的数据类型: 从“模式数据类型”中选择模式。 从“数据类型”中选择对应的数据类型。该列表显示所选模式的表和视图。 用户无法选择自定义数据类型。 在“精度/大小”字段选择所输入数据的类型。仅当数据类型可以用精度/尺寸来定义时,该选项可选。 在“范围”字段选择输入的数据类型的范围。 根据需要在“列约束”区域选择如下约束: “非空”:指该列不能包含空值。 “唯一”:指列可能仅包含唯一值。 “默认”:指定该列未定义值的情况下使用的默认值。 “检查”:指生成boolean结果的表达式,该结果中,新增行或更新行的操作需成功执行。 如果要在“创建普通表”对话框的“列”页签添加列注释信息,则在“设置列描述(最多5000个字符)”文本框中进行输入,之后单击“添加”。此外,也支持通过单独的新增列窗口添加注释信息。完成之后,可以在普通表的属性窗口中查看该信息。 输入新增列的所有信息后,单击“添加”按钮也可以从清单中删除列或修改列顺序,定义完所有列后,单击“下一步”。 支持对列进行添加、删除、编辑、调整顺序等操作。 下表列出了“列”中普通表支持的字段。 表2 支持的字段 字段 行存表 列存表 ORC表 阵列维度 √ x x 模式数据类型 √ x x 非空 √ √ √ 默认 √ √ √ 唯一 √ x x 检查 √ x x
  • DIRECTORY DIRECTORY表示允许在数据目录和索引目录之外创建表空间。DIRECTORY包含DATA DIRECTORY和INDEX DIRECTORY。GaussDB(DWS)不支持该属性修改表定义信息,DSC迁移时会将该属性删除。 输入示例 1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE `public`.`runoob_tbl_test1` ( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), PRIMARY KEY(`dataType1`) ) ENGINE=MYISAM DATA DIRECTORY = 'D:\\input' INDEX DIRECTORY= 'D:\\input'; CREATE TABLE `public`.`runoob_tbl_test2` ( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), PRIMARY KEY(`dataType1`) ) ENGINE=INNODB DATA DIRECTORY = 'D:\\input'; 输出示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 CREATE TABLE "public"."runoob_tbl_test1" ( "datatype1" SERIAL NOT NULL, "datatype2" DOUBLE PRECISION, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); CREATE TABLE "public"."runoob_tbl_test2" ( "datatype1" SERIAL NOT NULL, "datatype2" DOUBLE PRECISION, PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); 父主题: 表(可选参数、操作)
  • VARRAY REF CURSOR定义为返回参数。 设置plSQLCollection=varray后进行迁移。 输入: VARRAY 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 CREATE OR REPLACE TYPE TYPE_RMTS_ARRAYTYPE IS TABLE OF VARCHAR2 (30000); CREATE OR REPLACE PACKAGE BODY SCMS_STRING_UTILS As FUNCTION END_WITH (SRCSTRING VARCHAR2, --Source character string ENDCHAR VARCHAR2, --End character string IGNORECASE BOOLEAN --Ignore Case ) RETURN BOOLEAN IS SRCLEN NUMBER (20) := LENGTH(SRCSTRING); ENDLEN NUMBER (20) := LENGTH(ENDCHAR); V_TOKEN_ARRAY TYPE_RMTS_ARRAYTYPE := TYPE_RMTS_ARRAYTYPE (); V_TOKEN_ARRAY1 TYPE_RMTS_ARRAYTYPE := TYPE_RMTS_ARRAYTYPE (); I NUMBER (20) := 1; TMP_CHAR VARCHAR(1); TMP_CHAR1 VARCHAR(1); BEGIN ... END; END; / 输出 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 CREATE OR REPLACE FUNCTION SCMS_STRING_UTILS.END_WITH (SRCSTRING VARCHAR2 /* source character string */ , ENDCHAR VARCHAR2 /* End character string */ , IGNORECASE BOOLEAN /* Ignore case */ ) RETURN BOOLEAN IS SRCLEN NUMBER (20) := LENGTH(SRCSTRING); ENDLEN NUMBER (20) := LENGTH(ENDCHAR); TYPE TYPE_RMTS_ARRAYTYPE IS VARRAY (1024) OF VARCHAR2 (30000); V_TOKEN_ARRAY TYPE_RMTS_ARRAYTYPE /*:= TYPE_RMTS_ARRAYTYPE()*/ ; V_TOKEN_ARRAY1 TYPE_RMTS_ARRAYTYPE /*:= TYPE_RMTS_ARRAYTYPE()*/ ; I NUMBER (20) := 1; TMP_CHAR VARCHAR(1); TMP_CHAR1 VARCHAR(1); BEGIN END; 父主题: Oracle语法迁移
  • FORALL批量查询语句 语法图 图5 forall::= 变量index会自动定义为integer类型并且只在此循环里存在。index的取值介于low_bound和upper_bound之间。 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 CREATE TABLE hdfs_t1 ( title NUMBER(6), did VARCHAR2(20), data_peroid VARCHAR2(25), kind VARCHAR2(25), interval VARCHAR2(20), time DATE, isModified VARCHAR2(10) ) DISTRIBUTE BY hash(did); INSERT INTO hdfs_t1 VALUES( 8, 'Donald', 'OConnell', 'DOCONNEL', '650.507.9833', to_date('21-06-1999', 'dd-mm-yyyy'), 'SH_CLERK' ); CREATE OR REPLACE PROCEDURE proc_forall() AS BEGIN FORALL i IN 100..120 insert into hdfs_t1(title) values(i); END; / --调用函数 CALL proc_forall(); --查询存储过程调用结果 SELECT * FROM hdfs_t1 WHERE title BETWEEN 100 AND 120; --删除存储过程和表 DROP PROCEDURE proc_forall; DROP TABLE hdfs_t1;
  • FOR_LOOP查询语句 语法图 图4 for_loop_query::= 变量target会自动定义,类型和query的查询结果的类型一致,并且只在此循环中有效。target的取值就是query的查询结果。 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 --循环输出查询结果。 CREATE OR REPLACE PROCEDURE proc_for_loop_query() AS record VARCHAR2(50); BEGIN FOR record IN SELECT spcname FROM pg_tablespace LOOP dbms_output.put_line(record); END LOOP; END; / --调用函数 CALL proc_for_loop_query(); --删除存储过程 DROP PROCEDURE proc_for_loop_query;
  • FOR_LOOP(integer变量)语句 语法图 图3 for_loop::= 变量name会自动定义为integer类型并且只在此循环里存在。变量name介于lower_bound和upper_bound之间。 当使用REVERSE关键字时,lower_bound必须大于等于upper_bound,否则循环体不会被执行。 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 --从0到5进行循环 CREATE OR REPLACE PROCEDURE proc_for_loop() AS BEGIN FOR I IN 0..5 LOOP DBMS_OUTPUT.PUT_LINE('It is '||to_char(I) || ' time;') ; END LOOP; END; / --调用函数 CALL proc_for_loop(); --删除存储过程 DROP PROCEDURE proc_for_loop;
  • 配置集群参数 查询TopSQL资源监控信息之前,需要先配置相关的GUC参数,以便能查询到作业的资源监控历史信息或归档信息。步骤如下: 登录GaussDB(DWS)管理控制台。 在“集群管理”页面,找到所需要的集群,单击集群名称,进入集群详情页面。 单击“参数修改”标签页,可以看到当前集群的参数值。 修改参数resource_track_duration值为合适的值,单击“保存”按钮进行保存。 enable_resource_record开关打开后,会引起存储空间膨胀及轻微性能影响,不用时请关闭。 返回集群管理页面,单击右上角的刷新按钮,等待集群参数配置完成。
  • 应用示例 查询名为serial1的数据库对象sequence和哪个表有依赖关系。 先通过系统表PG_CLASS查询序列名为serial1的oid。 1 2 3 4 5 SELECT oid FROM pg_class WHERE relname ='serial1'; oid ------- 17815 (1 row) 使用系统表PG_DEPEND根据所查询的序列serial1的oid获取依赖该序列的对象。 1 2 3 4 5 6 SELECT * FROM pg_depend WHERE objid ='17815'; classid | objid | objsubid | refclassid | refobjid | refobjsubid | deptype ---------+-------+----------+------------+----------+-------------+--------- 1259 | 17815 | 0 | 2615 | 2200 | 0 | n 1259 | 17815 | 0 | 1259 | 17812 | 1 | a (2 rows) 根据字段refobjid获取依赖该序列serial1的表的OID,并查询到表名。其结果表示,序列serial1依赖于表customer_address。 1 2 3 4 5 SELECT relname FROM pg_class where oid='17812'; relname ------------------ customer_address (1 row)
  • 数据库用户类型 表1 数据库用户类型 用户类型 描述 可进行的操作 如何创建 管理员dbadmin 管理员也称作系统管理员,是指具有SYSADMIN属性的账户。 非三权分立模式下,拥有系统的最高权限,能够执行所有的操作。系统管理员具有与对象所有者相同的权限。 在GaussDB(DWS) 管理控制台创建集群时创建的用户dbadmin是系统管理员。 使用CREATE USER或ALTER USER语法创建和设置管理员用户。 CREATE USER sysadmin WITH SYSADMIN password '{Password}'; ALTER USER u1 SYSADMIN; 普通用户 普通用户 使用工具连接数据库。 拥有数据库系统特定操作的属性,如CREATEDB、CREATEROLE、SYSADMIN。 访问数据库对象。 执行SQL语句。 使用CREATE USER语法创建普通用户。 CREATE USER u1 PASSWORD '{Password}'; 私有用户 在非三权分立模式下,创建的具有INDEPENDENT属性的私有用户。 数据库管理员在未经其授权前,只能进行控制操作(DROP、ALTER、TRUNCATE),无权进行INSERT、DELETE、SELECT、UPDATE、COPY、GRANT、REVOKE、ALTER OWNER操作。 使用CREATE USER语法创建私有用户。 CREATE USER user_independent WITH INDEPENDENT IDENTIFIED BY '{Password}';
  • PG_REDACTION_COLUMN PG_REDACTION_COLUMN系统表存储脱敏列的信息。 表1 PG_REDACTION_COLUMN字段 名称 类型 描述 object_oid oid 脱敏对象OID。 column_attrno smallint 脱敏列attrno。 function_type integer 脱敏类型。 说明: 保留字段,仅为向前兼容低版本的脱敏列信息,可取值为0(NONE)、1(FULL)。 function_parameters text 脱敏类型为partial类型时的参数。(保留字段,无实际意义) regexp_pattern text 脱敏类型为regexp时,格式化字符串。(保留字段,无实际意义) regexp_replace_string text 脱敏类型为regexp时,替换串。(保留字段,无实际意义) regexp_position integer 脱敏类型为regexp时,起始替换位置。(保留字段,无实际意义) regexp_occurrence integer 脱敏类型为regexp时,替换次数。(保留字段,无实际意义) regexp_match_parameter text 脱敏类型为regexp时,正则控制参数。(保留字段,无实际意义) column_description text 脱敏列描述信息。 function_expr pg_node_tree 脱敏函数的内部表现形式。 inherited bool 说明脱敏列是否是“继承”自其他脱敏列。 policy_oid oid 所属脱敏策略OID。 该字段8.2.1.100及以上集群版本支持,用于查询时直接从系统表元数据检索脱敏列信息。 父主题: 系统表
  • PG_STAT_XACT_SYS_TABLES PG_STAT_XACT_SYS_TABLES视图显示命名空间中系统表的事务状态信息。 表1 PG_STAT_XACT_SYS_TABLES字段 名称 类型 描述 relid oid 表的OID。 schemaname name 此表的模式名。 relname name 表名。 seq_scan bigint 在此表上启动的顺序扫描数。 seq_tup_read bigint 顺序扫描抓取的活跃行数。 idx_scan bigint 在此表上启动的索引扫描数。 idx_tup_fetch bigint 索引扫描抓取的活跃行数。 n_tup_ins bigint 插入行数。 n_tup_upd bigint 更新行数。 n_tup_del bigint 删除行数。 n_tup_hot_upd bigint 热更新行数(即不需要单独的索引更新)。 父主题: 系统视图
  • PG_EXTENSION_DATA_SOURCE PG_EXTENSION_DATA_SOURCE系统表存储外部数据源对象的信息。一个外部数据源对象(Data Source)包含了外部数据库的一些口令编码等信息,主要配合Extension Connector使用。 表1 PG_EXTENSION_DATA_SOURCE字段 名字 类型 引用 描述 oid oid - 行标识符(隐藏属性,必须明确选择才会显示)。 srcname name - 外部数据源对象的名称。 srcowner oid PG_AUTHID.oid 外部数据源对象的所有者。 srctype text - 外部数据源对象的类型,缺省为空。 srcversion text - 外部数据源对象的版本,缺省为空。 srcacl aclitem[] - 访问权限。 srcoptions text[] - 外部数据源对象的指定选项,使用“keyword=value”格式的字符串。 父主题: 系统表
  • 应用示例 查询表table_test最后一次数据发生变化的时间: 1 2 3 4 5 SELECT last_data_changed FROM PG_STAT_ALL_TABLES WHERE relname ='table_test'; last_data_changed ------------------------------- 2024-03-27 10:28:16.277136+08 (1 row)
  • 原型 1 2 3 4 5 6 7 8 9 10 SQLRETURN SQLBindParameter(SQLHSTMT StatementHandle, SQLUSMALLINT ParameterNumber, SQLSMALLINT InputOutputType, SQLSMALLINT ValuetType, SQLSMALLINT ParameterType, SQLULEN ColumnSize, SQLSMALLINT DecimalDigits, SQLPOINTER ParameterValuePtr, SQLLEN BufferLength, SQLLEN *StrLen_or_IndPtr);
  • 参数 表1 SQLBindParameter 关键词 参数说明 StatementHandle 语句句柄。 ParameterNumber 参数序号,起始为1,依次递增。 InputOutputType 输入输出参数类型。 ValueType 参数的C数据类型。 ParameterType 参数的SQL数据类型。 ColumnSize 列的大小或相应参数标记的表达式。 DecimalDigits 列的十进制数字或相应参数标记的表达式。 ParameterValuePtr 指向存储参数数据缓冲区的指针。 BufferLength ParameterValuePtr指向缓冲区的长度,以字节为单位。 StrLen_or_IndPtr 缓冲区的长度或指示器指针。若为空值,则未使用任何长度或指示器值。
共100000条