华为云用户手册

  • row_to_json(record [, pretty_bool]) 描述:返回JSON类型的行。如果pretty_bool设置为true,将在第一级元素之间添加换行符。 返回类型:json 示例: 1 2 3 4 5 SELECT row_to_json(row(1,'foo')); row_to_json --------------------- {"f1":1,"f2":"foo"} (1 row)
  • json_object_agg(any, any) 描述:将值聚集为json对象。 返回类型:json 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SELECT * FROM classes; name | score -----+------- A | 2 A | 3 D | 5 D | (4 rows) SELECT json_object_agg(name, score) FROM classes group by name order by name; json_object_agg ------------------------- { "A" : 2, "A" : 3 } { "D" : 5, "D" : null } (2 rows)
  • MALLOC_CONF 环境变量MALLOC_CONF用于控制监控模块是否开启,位于${BIGDATA_HOME}/mppdb/.mppdbgs_profile文件内,默认开启。需注意: 修改此环境变量变化,需要重启数据库。 如果在集群中启用了om_monitor,完成环境变量设置后,先重启om_monitor进程后,然后重启数据库,使得开关生效。 该环境变量可以设置在集群所有服务器中,也可以仅设置在需要开启模块的个别服务器中,对 GaussDB 进程而言,各进程是根据各自MALLOC_CONF环境变量,控制模块是否打开。 MALLOC_CONF开启和关闭命令: 开启监控模块: export MALLOC_CONF=prof:true 关闭监控模块: export MALLOC_CONF=prof:false
  • 参数说明 ONLY 如果声明ONLY,只有指定的表会被清空。如果没有声明ONLY,这个表以及其所有子表(若有)会被清空。 database_name 目标表的数据库名称。 schema_name 目标表的模式名称。 table_name 目标表的名字(可以有模式修饰)。 取值范围:已存在的表名。 CONTINUE IDENTITY 不改变序列的值。这是缺省值。 CASCADE | RESTRICT CASCADE:级联清空所有在该表上有外键引用的表,或者由于CASCADE而被添加到组中的表。 RESTRICT(缺省值):如果其他表在该表上有外键引用则拒绝清空。 partition_name 目标分区表的分区名。 取值范围:已存在的分区名。 partition_value 指定的分区键值。 通过PARTITION FOR子句指定的这一组值,可以唯一确定一个分区。 取值范围:需要进行删除数据分区的分区键的取值范围。 使用PARTITION FOR子句时,partition_value所在的整个分区会被清空。
  • 示例 创建分区表customer_address: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 DROP TABLE IF EXISTS customer_address; CREATE TABLE customer_address ( ca_address_sk INTEGER NOT NULL , ca_address_id CHARACTER(16) NOT NULL , ca_street_number CHARACTER(10) , ca_street_name CHARACTER varying(60) , ca_street_type CHARACTER(15) , ca_suite_number CHARACTER(10) ) DISTRIBUTE BY HASH (ca_address_sk) PARTITION BY RANGE(ca_address_sk) ( PARTITION P1 VALUES LESS THAN(2450815), PARTITION P2 VALUES LESS THAN(2451179), PARTITION P3 VALUES LESS THAN(2451544), PARTITION P4 VALUES LESS THAN(MAXVALUE) ); 清空表customer_address分区p1: 1 ALTER TABLE customer_address TRUNCATE PARTITION p1; 清空分区表: 1 TRUNCATE TABLE customer_address;
  • 注意事项 请谨慎执行TRUNCATE TABLE,确认表数据可以删除后,再执行删除操作。TRUNCATE TABLE命令删除表数据后,数据将无法恢复。 避免在业务高峰期执行ALTER TABLE/ALTER TABLE PARTITION(增删改查、DROP PARTITION)、TRUNCATE操作,避免有长SQL阻塞AlTER、TRUNCATE操作或SQL业务被ALTER、TRUNCATE阻塞。 更多开发设计规范参见总体开发设计规范。
  • TRUNCATE TABLE说明 TRUNCATE TABLE在功能上与不带WHERE子句DELETE语句相同:二者均删除表中的全部行。 TRUNCATE TABLE比DELETE速度快且使用系统和事务日志资源少: DELETE语句每次删除一行,并在事务日志中为所删除每行记录一项。 TRUNCATE TABLE通过释放存储表数据所用数据页来删除数据,并且只在事务日志中记录页的释放。 TRUNCATE,DELETE,DROP三者的差异如下: TRUNCATE TABLE,删除内容,释放空间,但不删除定义。 DELETE TABLE,删除内容,不删除定义,不释放空间。 DROP TABLE,删除内容和定义,释放空间。
  • 语法格式 清理表数据。 1 2 TRUNCATE [ TABLE ] [ ONLY ] {[[database_name.]schema_name.]table_name [ * ]} [, ... ] [ CONTINUE IDENTITY ] [ CASCADE | RESTRICT ]; 清理表分区的数据。 1 2 3 4 5 ALTER TABLE [ IF EXISTS ] { [ ONLY ] [[database_name.]schema_name.]table_name | table_name * | ONLY ( table_name ) } TRUNCATE PARTITION { partition_name | FOR ( partition_value [, ...] ) } ;
  • 命令参考 详细的gsql参数请参见表1、表2、表3和表4。 表1 常用参数 参数 参数说明 取值范围 -c, --command=COMMAND 声明gsql要执行一条字符串命令然后退出。 - -C, --set-file=FILENAME 使用文件作为命令源而不是交互式输入,gsql处理完文件后不退出,继续处理其他内容。 绝对路径或相对路径,且满足操作系统路径命名规则。 -d, --dbname=DBNAME 指定想要连接的数据库名称。 字符串。 -D, --dynamic-param 用于控制执行SQL语句设置变量和${}变量引用方式,具体示例参见变量。 - -f, --file=FILENAME 使用文件作为命令源而不是交互式输入。gsql将在处理完文件后结束。如果FILENAME是-(连字符),则从标准输入读取。 绝对路径或相对路径,且满足操作系统路径命名规则。 -l, --list 列出所有可用的数据库,然后退出。 - -v, --set, --variable=NAME=VALUE 设置gsql变量NAME为VALUE。 变量的示例和详细说明请参见变量。 - -X, --no-gsqlrc 不读取启动文件(系统范围的gsqlrc或者用户的~/.gsqlrc都不读取)。 说明: 启动文件默认为~/.gsqlrc,或通过PSQLRC环境变量指定。 - -1 ("one"), --single-transaction 当gsql使用-f选项执行脚本时,会在脚本的开头和结尾分别加上START TRANSACTION/COMMIT用于把整个脚本当作一个事务执行。这将保证该脚本完全执行成功,或者脚本无效。 说明: 如果脚本中已经使用了START TRANSACTION,COMMIT,ROLLBACK,则该选项无效。 - -?, --help 显示关于gsql命令行参数的帮助信息然后退出。 - -V, --version 打印gsql版本信息然后退出。 - 表2 输入和输出参数 参数 参数说明 取值范围 -a, --echo-all 在读取行时向标准输出打印所有内容。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -e, --echo-queries 把所有发送给服务器的查询同时回显到标准输出。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -E, --echo-hidden 回显由\d和其他反斜杠命令生成的实际查询。 - -k, --with-key=KEY 使用gsql对导入的加密文件进行解密。 须知: 对于本身就是shell命令中的关键字符如单引号(')或双引号("),Linux shell会检测输入的单引号(')或双引号(")是否匹配。如果不匹配,shell认为用户没有输入完毕,会一直等待用户输入,从而不会进入到gsql程序。 - -L, --log-file=FILENAME 除了正常的输出源之外,把所有查询输出记录到文件FILENAME中。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 此参数只保留查询结果到相应文件中,主要目标是为了查询结果能够更好更准确地被其他调用者(例如自动化运维脚本)解析;而不是保留gsql运行过程中的相关日志信息。 绝对路径或相对路径,且满足操作系统路径命名规则。 -m, --maintenance 允许在两阶段事务恢复期间连接集群。 说明: 该选项是一个开发选项,禁止用户使用,只限专业技术人员使用,功能是:使用该选项时,gsql可以连接到备机,用于校验主备机数据的一致性。 - -n, --no-libedit 关闭命令行编辑。 - -o, --output=FILENAME 将所有查询输出重定向到文件FILENAME。 绝对路径或相对路径,且满足操作系统路径命名规则。 -q, --quiet 安静模式,执行时不会打印出额外信息。 缺省时gsql将打印许多其他输出信息。 -s, --single-step 单步模式运行。意味着每个查询在发往服务器之前都要提示用户,用这个选项也可以取消执行。此选项主要用于调试脚本。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -S, --single-line 单行运行模式,这时每个命令都将由换行符结束,像分号那样。 - 表3 输出格式参数 参数 参数说明 取值范围 -A, --no-align 切换为非对齐输出模式。 缺省为对齐输出模式。 -F, --field-separator=STRING 设置域分隔符(默认为“|”)。 - -H, --html 打开HTML格式输出。 - -P, --pset=VAR[=ARG] 在命令行上以\pset的风格设置打印选项。 说明: 这里必须用等号而不是空格分隔名称和值。例如,把输出格式设置为LaTeX,可以键入-P format=latex - -R, --record-separator=STRING 设置记录分隔符。 - -r 开启客户端操作历史记录功能。 缺省为关闭。 -t, --tuples-only 只打印行。 - -T, --table-attr=TEXT 允许声明放在HTML table标签里的选项。 使用时请搭配参数“-H,--html”,指定为HTML格式输出。 - -x, --expanded 打开扩展表格式模式。 - -z, --field-separator-zero 设置非对齐输出模式的域分隔符为空。 使用时请搭配参数“-A, --no-align”,指定为非对齐输出模式。 - -0, --record-separator-zero 设置非对齐输出模式的记录分隔符为空。 使用时请搭配参数“-A, --no-align”,指定为非对齐输出模式。 - -g 显示所有SQL语句和指定文件的分隔符。 说明: -g参数必须和-f参数一起设置。 - 表4 连接参数 参数 参数说明 取值范围 -h, --host=HOSTNAME 指定正在运行服务器的主机名或者Unix域套接字的路径。 如果省略主机名,gsql将通过Unix域套接字与本地主机的服务器相连,或者在没有Unix域套接字的机器上,通过TCP/IP与localhost连接。 -p, --port=PORT 指定数据库服务器的端口号。 可以通过port参数修改默认端口号。 默认为8000。 -U, --username=USERNAME 指定连接数据库的用户。 说明: 通过该参数指定用户连接数据库时,需要同时提供用户密码用于身份验证。您可以通过交换方式输入密码,或者通过-W参数指定密码。 用户名中包含有字符$,需要在字符$前增加转义字符才可成功连接数据库。 字符串。默认使用与当前操作系统用户同名的用户。 -W, --password=PASSWORD 当使用-U参数连接远端数据库时,可通过该选项指定密码。 说明: 用户密码中包含特殊字符“\”和"`"时,需要增加转义字符才可成功连接数据库。 如果用户未输入该参数,但是数据库连接需要用户密码,这时将出现交互式输入,请用户输入当前连接的密码。该密码最长长度为999字节,受限于GUC参数password max length的最大值。 符合密码复杂度要求。 父主题: gsql
  • 查看表属性 右键单击表,选择“属性”查看表属性。 Data Studio在不同页签显示所选表的属性(“一般”、“列”、“约束”和“索引”)。可在每个页签上对指定对象进行编辑,可双击单元格执行编辑操作。 查看表格数据时,Data Studio会自动调整列宽以获得表视图。用户可以根据需要调整列的大小。如果单元格的文本内容超出了可用的显示区域,则调整单元格列的大小可能会导致DS无法响应。 一个表显示一个属性窗口。 如果一个已打开的表格的属性被修改,刷新并重新打开该表格的属性查看更新后的表格属性信息。 如果列的内容包含空格,会在空格处自动断行以适应该列的显示区域。不包含空格的内容不会自动断行。 列的大小取决于内容最长的列的长度。 刷新“属性”页签后,将显示在“对象浏览器”对表属性所做的任何更改。 “Data Type”列不允许粘贴操作。
  • 编辑表数据 右键单击表,选择“编辑数据”。页面显示“编辑表数据”页签。 有关复制、搜索工具栏和字符编码下拉列表选项的说明,请参阅查看数据。 Data Studio仅识别单元格中的如下数据类型:Bigint、bit、Boolean、char、date、decimal、double、float、integer、numeric、real、smallint、tinyint和varchar。 不支持编辑数组数据类型、包含时区的时间列和包含时区的时间戳列。 数据库上报的与该操作相关的错误会显示在Data Studio中。
  • 重建索引 使用索引可帮助用户更快地查找数据。以下场景需要重建索引: 索引已破坏,不再包含任何有效数据。虽然理论上不会发生,但事实上,索引可能由于软件或硬件故障而被破坏重建索引提供恢复方法。 索引包含很多空的或几乎为空的页面,DWS数据库的B-tree索引在特定的非常规访问模式下可能会发生这种情况,REINDEX方式可以减少索引的空间消耗,即创建一个新的索引,不再有空页面。 已修改索引的存储参数(如“填充因子”),且希望保证修改完全生效。 执行以下操作重建索引: 右键单击表,选择“重建索引”。弹出消息和状态栏显示已完成操作的状态。 分区ORC表不支持重建索引。
  • 导出DDL和数据 通过导出表DDL和数据,可导出表的DDL和表的数据。 在“对象浏览器”窗格中,右键单击所选表,选择“导出DDL和数据”。 用户需自定义导出路径。如果需要将数据压缩,勾选“.zip”选项。 “Data Studio安全免责声明”必须勾选“我同意”才可以单击“确定”。用户可关闭安全免责声明,关闭后导出DDL时将不会再出现,详情请参见表1。 单击“确定”,右下角的状态栏会显示操作进度。 如果文件名包含Windows中文件名不支持的字符,则文件名的名称会与模式名称不同。 要执行该操作,需要MS Visual C Runtime文件(msvcrt100.dll)。详情请参阅故障处理。 “导出完成”对话框和状态栏显示已完成操作的状态。 表1 支持导出DDL的编码格式 数据库编码 文件编码 支持导出DDL UTF-8 UTF-8 是 GBK 是 LATIN1 是 GBK GBK 是 UTF-8 是 LATIN1 否 LATIN1 LATIN1 是 GBK 否 UTF-8 是 可从普通表和分区表中选择多个对象,以导出DDL和数据。导出的内容包含列、行、索引、约束和分区。
  • 查看数据 右键单击表,选择“查看数据”查看表数据。Data Studio显示“查看数据”页签,可在该页签查看表数据信息。 “查看数据”页签的工具栏菜单: 工具栏名称 说明 复制 用于从“查看数据”页签将数据复制。快捷键为Ctrl+C。 高级复制 用于将结果窗口中的内容复制。可以复制结果以包含行号和/或列标题。请参阅表1以设置此首选项。快捷键为Ctrl+Shift+C。 显示/隐藏搜索栏 用于显示/隐藏搜索文本区域。单击该按钮可在两种状态间切换。 编码 有关如何选择编码,请参见执行SQL查询。 搜索区域中的图标: 图标名称 描述 搜索 用于根据定义的标准,搜索显示的表数据。搜索内容不区分大小写。 清空搜索内容 用于清空在搜索字段中输入的搜索内容。 有关调整列位置或对列进行排序的具体信息,请参阅执行SQL查询。 “查询提交时间”:提供查询的提交时间。 获取的行数和执行时间同时显示,且会显示默认行数。如果有其他记录待获取,此图标将显示为“更多”。用户可将光标滚至表底部读取并显示所有行。 查看表数据时,Data Studio会自动调整列宽。用户可以根据需要调整列的大小。如果单元格的文本内容超出了可用的显示区域,则调整单元格列的大小可能会导致Data Studio无法响应。 表的单元格最多可显示1000个字符,超出部分显示为“...”。 一个表显示一个表数据窗口。 如果已打开的表数据被修改了,刷新并重新打开该表数据并在同一打开的窗口查看更新后的表数据。 数据在加载过程中,表格下方会出现一条“读取中”的消息。 如果列的内容包含空格,会在空格处自动断行以适应该列的显示区域。不包含空格的内容不会自动断行。 要复制单元格中的部分内容,先选中所需部分,然后按下“Ctrl+C”。 列的大小取决于内容最长的列的长度。
  • 添加与删除列 MySQL添加、删除列语句与GaussDB(DWS)存在差异。DSC工具迁移时会根据GaussDB(DWS)的特性进行相应适配。 GaussDB不支持表定义中列序数的变更,工具暂不支持FRIST,AFTER特性的完整迁移。基于当前的临时方案,工具仅仅移除该关键字。 输入示例 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 31 32 33 CREATE TABLE IF NOT EXISTS `runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` FLOAT(10,2), `dataType3` DOUBLE(20,8), `dataType4` TEXT NOT NULL, `dataType5` YEAR NOT NULL DEFAULT '2018', `dataType6` DATETIME NOT NULL DEFAULT '2018-10-12 15:27:33.999999', `dataType7` CHAR NOT NULL DEFAULT '', `dataType8` VARCHAR(50), `dataType9` VARCHAR(50) NOT NULL DEFAULT '', `dataType10` TIME NOT NULL DEFAULT '10:20:59', PRIMARY KEY(`dataType1`) )ENGINE=InnoDB DEFAULT CHARSET=utf8; ## A. ALTER TABLE runoob_alter_test ADD dataType1_1 INT NOT NULL AFTER dataType1; ALTER TABLE runoob_alter_test DROP dataType1_1; ## B. ALTER TABLE runoob_alter_test ADD dataType1_1 INT NOT NULL FIRST; ALTER TABLE runoob_alter_test DROP dataType1_1; ## C. ALTER TABLE runoob_alter_test ADD COLUMN dataType1_1 INT NOT NULL AFTER dataType2; ALTER TABLE runoob_alter_test DROP COLUMN dataType1_1; ## D. ALTER TABLE runoob_alter_test ADD COLUMN dataType1_1 INT NOT NULL FIRST; ALTER TABLE runoob_alter_test DROP COLUMN dataType1_1; ## E. ALTER TABLE runoob_alter_test ADD COLUMN(dataType1_1 INT NOT NULL, dataType1_2 VARCHAR(200) NOT NULL); ALTER TABLE runoob_alter_test DROP COLUMN dataType1_1, DROP COLUMN dataType1_2; 输出示例 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 31 32 33 34 35 36 37 CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" REAL, "datatype3" DOUBLE PRECISION, "datatype4" TEXT NOT NULL, "datatype5" SMALLINT NOT NULL DEFAULT '2018', "datatype6" TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT '2018-10-12 15:27:33.999999', "datatype7" CHAR(4) NOT NULL DEFAULT '', "datatype8" VARCHAR(200), "datatype9" VARCHAR(200) NOT NULL DEFAULT '', "datatype10" TIME WITHOUT TIME ZONE NOT NULL DEFAULT '10:20:59', PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); -- A. ALTER TABLE "public"."runoob_alter_test" ADD COLUMN "datatype1_1" INTEGER NOT NULL DEFAULT 0; ALTER TABLE "public"."runoob_alter_test" DROP COLUMN "datatype1_1" RESTRICT; -- B. ALTER TABLE "public"."runoob_alter_test" ADD COLUMN "datatype1_1" INTEGER NOT NULL DEFAULT 0; ALTER TABLE "public"."runoob_alter_test" DROP COLUMN "datatype1_1" RESTRICT; -- C. ALTER TABLE "public"."runoob_alter_test" ADD COLUMN "datatype1_1" INTEGER NOT NULL DEFAULT 0; ALTER TABLE "public"."runoob_alter_test" DROP COLUMN "datatype1_1" RESTRICT; -- D. ALTER TABLE "public"."runoob_alter_test" ADD COLUMN "datatype1_1" INTEGER NOT NULL DEFAULT 0; ALTER TABLE "public"."runoob_alter_test" DROP COLUMN "datatype1_1" RESTRICT; -- E. ALTER TABLE "public"."runoob_alter_test" ADD COLUMN "datatype1_1" INTEGER NOT NULL, ADD COLUMN "datatype1_2" VARCHAR(800) NOT NULL DEFAULT ''; ALTER TABLE "public"."runoob_alter_test" DROP COLUMN "datatype1_1" RESTRICT, DROP COLUMN "datatype1_2" RESTRICT; 父主题: 表(可选参数、操作)
  • 缩进/取消缩进行 缩进/取消缩进选项用于根据“首选项”页签中定义的缩进大小来移动行。 按照以下步骤在“PL/SQL Viewer”或“SQL终端”中缩进行: 选中目标行。 按下Tab键或单击。 根据“首选项”页签中定义的缩进大小来移动选中的行。可参见表1来修改缩进大小。 按照以下步骤在“PL/SQL Viewer”或“SQL终端”中取消缩进行: 选中目标行。 使用快捷键“Shift+Tab”或单击。 根据“首选项”页签中定义的缩进大小来移动选中的行。可参见表1来修改缩进大小。 如果选中了多行,则只对存在缩进的行取消缩进。例如,假设用户选择了多行,其中有一行从位置1开始。在这种场景下,使用“Shift+Tab”键将取消除该行以外所有行的缩进。
  • 使用模板 在Data Studio中,用户可使用“模板”选项在SQL终端或PL/SQL查看器中插入常用SQL语句。Data Studio中已保存了一些常用SQL语句以便用户使用。您可以修改这些现有模板,或删除或创建模板。有关如何添加、删除和创建模板,请参见表1。 可用的默认模板如下: 名称 说明 df delete from is insert into o order by s* select from sc select row count sf select from sl select 执行以下步骤使用“模板”选项: 在SQL终端或PL/SQL查看器中输入模板名称。 按下“Ctrl+Alt+空格”。 页面显示已有的模板信息列表。列表可按照如下模式显示。 精确匹配 列表显示 是 显示与输入文本大小写相匹配的所有条目。 示例:在SQL终端或PL/SQL查看器中输入“SF”,会显示所有以“SF”开头的条目。 否 显示与输入文本相匹配的所有条目,不考虑文本大小写。 示例:在SQL终端或PL/SQL查看器中输入“SF”,会显示所有以“SF”、“Sf”、“sF”或“sf”开头的条目。 文本选择/光标定位 列表显示 选择文本并使用快捷键 显示与所选内容左侧字符到其左侧首个空格或换行符为止的内容匹配的条目。 未选择文本但使用快捷键 显示与光标位置到其左侧首个空格或换行符为止的内容匹配的条目。 在SQL终端或PL/SQL查看器中,如果不输入文本,直接按下快捷键“Ctrl+Alt+空格”,会显示“模板”中的所有条目。 在SQL终端或PL/SQL查看器中,如果输入的文本只有一个匹配项,则该项会直接替换输入的内容,而不显示模板列表。
  • 自动提交 您可在“首选项”窗口启用或禁用“自动提交”功能,具体参见表1。 若启用“自动提交”功能,“提交”和“回滚”会被禁用,事务将会被自动提交。 若禁用“自动提交”功能,“提交”和“回滚”会被启用,可手动提交或回滚事务。 对于OLAP,服务器会为所有SQL语句,如select,explain select,及set parameter,打开事务。 对于OLTP,服务器仅为DML语句,如INSERT, UPDATE, 及DELETE,打开事务。
  • 创建带索引分区表 如果配置参数tdMigrateRANGE_N为true。 输入: CREATE SET TABLE SC.TAB , NO FALLBACK, NO BEFORE JOURNAL, NO AFTER JOURNAL, CHECKSUM=DEFAULT, DEFAULT MERGEBLOCKRATIO ( ACCOUNT_NUM VARCHAR(255) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL ,ACCOUNT_MODIFIER_NUM CHAR(18) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL ,END_DT DATE FORMAT 'YYYY-MM-DD' ,UPD_TXF_BATCHTD INTEGER COMPRESS ) PRIMARY INDEX XPKT0300_AGREEMENT (ACCOUNT_NUM,ACCOUNT_MODIFIER_NUM) PARTITION BY RANGE_N(END_DT BETWEEN '2001-01-01' AND '2020-12-31' EACH INTERVAL '1' DAY, NO RANGE ,UNKNOWN) INDEX (UPD_TXF_BATCHTD) ; 输出: CREATE TABLE SC.TAB ( ACCOUNT_NUM VARCHAR( 255 ) /* CHARACTER SET LATIN*/ /* NOT CASESPECIFIC*/ NOT NULL ,ACCOUNT_MODIFIER_NUM CHAR( 18 ) /* CHARACTER SET LATIN*/ /* NOT CASESPECIFIC*/ NOT NULL ,END_DT DATE ,UPD_TXF_BATCHTD INTEGER /* COMPRESS */ ) DISTRIBUTE BY HASH ( ACCOUNT_NUM ,ACCOUNT_MODIFIER_NUM ) PARTITION BY RANGE (END_DT) ( PARTITION TAB_1 start ('2001-01-01') END ('2020-12-31') EVERY ( INTERVAL '1' DAY ) ) ; CREATE INDEX ON SC.TAB (UPD_TXF_BATCHTD) LOCAL;
  • 基本功能 连接数据库: 通过gsql客户端远程连接GaussDB(DWS)数据库。 gsql创建连接时,会有5分钟超时时间。如果在这个时间内,数据库未正确地接受连接并对身份进行认证,gsql将超时退出。 针对此问题,可以参考常见问题处理。 执行SQL语句:支持交互式地键入并执行SQL语句,也可以执行一个文件中指定的SQL语句。 执行元命令:元命令可以帮助管理员查看数据库对象的信息、查询缓存区信息、格式化SQL输出结果,以及连接到新的数据库等。元命令的详细说明请参见元命令参考。
  • 环境变量 表5 与gsql相关的环境变量 名称 描述 COLUMNS 如果\set columns为0,则由此参数控制wrapped格式的宽度。这个宽度用于决定在自动扩展的模式下,是否要把宽输出模式变成竖线的格式。 PAGER 如果查询结果无法在一页显示,它们就会被重定向到这个命令。可以用\pset命令关闭分页器。典型的是用命令more或less来实现逐页查看。缺省值是平台相关的。 说明: less的文本显示,受系统环境变量LC_CTYPE影响。 PSQL_EDITOR \e和\ef命令使用环境变量指定的编辑器。变量是按照列出的先后顺序检查的。在Unix系统上默认的编辑工具是vi。 EDITOR VISUAL PSQL_EDITOR_LINENUMBER_ARG 当\e和\ef带上一行数字参数使用时,这个变量指定的命令行参数用于向编辑器传递起始行数。像Emacs或vi这样的编辑器,这只是个加号。如果选项和行号之间需要空白,在变量的值后加一个空格。例如: PSQL_EDITOR_LINENUMBER_ARG = '+' PSQL_EDITOR_LINENUMBER_ARG='--line ' Unix系统默认的是+。 PSQLRC 用户的.gsqlrc文件的交互位置。 SHELL 使用\!命令跟shell执行的命令是一样的效果。 TMPDIR 存储临时文件的目录。缺省是/tmp。
  • CONNECTION GaussDB(DWS)不支持该属性修改表定义信息,DSC迁移时会将该属性删除。 CONNECTION关键字在MySQL中用作引用外部数据源。工具暂不支持该特性的完整迁移。基于当前的临时方案,工具仅仅移除该关键字。 输入示例 1 2 3 4 5 6 7 8 9 10 CREATE TABLE `public`.`runoob_alter_test`( `dataType1` int NOT NULL AUTO_INCREMENT, `dataType2` DOUBLE(20,8), `dataType3` TEXT NOT NULL, `dataType4` YEAR NOT NULL DEFAULT '2018', PRIMARY KEY(`dataType1`) ); ALTER TABLE runoob_alter_test CONNECTION 'hello'; ALTER TABLE runoob_alter_test CONNECTION='hello'; 输出示例 1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE "public"."runoob_alter_test" ( "datatype1" SERIAL NOT NULL, "datatype2" DOUBLE PRECISION, "datatype3" TEXT NOT NULL, "datatype4" SMALLINT NOT NULL DEFAULT '2018', PRIMARY KEY ("datatype1") ) WITH ( ORIENTATION = ROW, COMPRESSION = NO ) NOCOMPRESS DISTRIBUTE BY HASH ("datatype1"); 父主题: 表(可选参数、操作)
  • Flink SQL概述 DWS-connector主要实现了DynamicTableSourceFactory和DynamicTableSinkFactory接口,可用于对接GaussDB(DWS)表作为Flink作业的源表、结果表和维表。 使用DWS-Connector做源表时,DWS-Connector实现了SupportsLimitPushDown和SupportsFilterPushDown接口,支持将limit和where条件下推到数据库执行。 使用DWS-Connector做结果表时,SQL语法格式可能在不同Flink环境下有细微差异,具体以事件环境格式为准。 详情请参见做源表、做结果表和做维表。 父主题: Flink SQL作业类型
  • 导出函数/过程DDL 可通过右键单击“导出DDL”导出该函数/过程定义。 在“对象浏览器”窗格中,右键单击所选函数/过程,选择“导出DDL”。 用户需自定义导出路径。如果需要将数据压缩,勾选“.zip”选项。 “Data Studio安全免责声明”必须勾选“我同意”才可以单击“确定”。用户可关闭安全免责声明,关闭后导出DDL时将不会再出现,详情请参见表1。 单击“确定”,右下角的状态栏会显示操作进度。 如果文件名包含Windows中文件名不支持的字符,则文件名的名称会与模式名称不同。 要执行该操作,需要MS Visual C Runtime文件(msvcrt100.dll)。详情请参阅故障处理。 “导出完成”对话框和状态栏显示已完成操作的状态。 表1 支持导出DDL的编码格式 数据库编码 文件编码 支持导出DDL UTF-8 UTF-8 是 GBK 是 LATIN1 是 GBK GBK 是 UTF-8 是 LATIN1 否 LATIN1 LATIN1 是 GBK 否 UTF-8 是
  • 调试函数/过程 断点用于暂停其所在行中的PL/SQL程序的执行,可用断点控制执行并调试过程。设置并启用断点后,PL/SQL程序会在该断点所在的行停止执行,此时用户可以进行其他调试操作。 设置或添加断点 Data Studio支持为某行设置或创建断点。 打开需要添加断点的函数/过程,双击行号字段左侧的断点标尺,设置断点,断点标志启用表示操作成功。如果函数在调试过程中不会间断或停止执行,则为其设置的断点未生效。 使用“断点”窗格 在“断点”窗格中可查看和管理已有断点。可从最小化窗口窗格中单击断点按钮打开“断点”窗格。 在“断点”窗格中,勾选断点复选框,单击“启用”、“禁用”或“移除”按钮,进行断点启用、禁用或者删除操作。也可双击行号字段左侧的断点标尺设置断点;双击断点图标,将断点删除。 在“PL/SQL Viewer”窗格,双击所需断点信息行,定位该断点。 “断点”窗格会列出每一个断点所在行的行号以及调试对象的名称。 禁用断点后,程序不会在该断点处暂停执行,但该断点仍会保留(以备将来启用)。 删除的断点无法恢复。 按下“Alt+Y”可复制“断点”窗格内容。 修改源代码 调试过程中,如果用户修改了从服务器获取的源代码,并继续进行调试,Data Studio会提示错误:建议刷新该对象,再次执行调试操作。 如果用户修改了从服务器获取的源代码,且在未设置断点的情况下执行或调试了该代码,Data Studio会显示服务器中源代码的执行结果。建议在进行调试或者执行前,进行刷新操作。 使用断点调试函数/过程 在要调试的行创建断点后,单击“调试”按钮或在“对象浏览器”中右键单击函数,选择“调试”。在弹出的“调试函数/过程”对话框中,输入参数信息。 如果没有输入参数,则“调试函数/过程”对话框不会弹出。 对于varchar和date数据类型,参数值需加半角单引号(');对于numeric数据类型,参数值可以不加半角单引号。要将参数值设为NULL,需输入NULL或null。 调试或执行函数或过程期间,相同参数的值会在下次操作中被直接使用。首次执行时,参数值为空,可根据需要输入参数值。单击“确定”,参数值将被缓存。下次查询时,执行/调试期间会显示上次缓存的相同参数的值。某一连接被删除后,缓存的所有参数值都会被清除。 调试过程中“调用堆栈”窗格会填充信息。 “变量”窗格显示当前的变量值。将鼠标悬停在函数/过程中的变量上,也会显示当前的变量值。“变量”窗格默认显示系统变量。必要时,用户可以屏蔽系统变量。按钮默认开启,即默认启用系统变量。 设置/展示变量 说明 设置NULL值 在“变量”窗格中双击一个变量值。 弹出对话框。 设置值为空。 设置字符串值 设置字符串值如下: 要设置为abc,则输入abc。 要设置为Master's Degree,则输入Master''s Degree。 要将变量设置为文本(NULL),在“变量”窗格中设置NULL。 设置Boolean值 Boolean值t或f上加单引号。将t设成一个boolean变量,则在Variable窗格中输入't'。 显示变量值 如果变量值是NULL文本,则显示为NULL。 如果变量值是NULL,则显示为空。 如果变量值为字符串,比如abc,则显示为abc。 调试函数/过程期间,在编辑器中右键单击变量,可将变量添加至“监视器”窗格。如果变量处于被监控状态,“监视器”窗格中的值会随“变量”窗格中值的变化而变。 在Data Studio中调试PL/SQl函数期间,将光标放在变量上方,则会显示该变量的信息。 终止调试 在工具栏中单击“终止调试”按钮或在“调试”菜单中选择“终端调试”。调试完成后,函数会继续正常执行,不会在任何断点暂停。 调试完成后,“结果”页签中显示函数执行结果,“调用堆栈”和“变量”窗格将被清除。 Data Studio支持在调试完成后,提交/回滚查询结果。右键单击执行函数的终端窗格,勾选“使用回滚进行调试”启用回滚功能。 如果启用了“使用回滚进行调试”选项,则调试后获取的函数执行结果不会保存在数据库中。 如果禁用了“使用回滚进行调试”选项,则调试后获取的函数执行结果被提交到数据库中。
  • 创建函数/过程 在“对象浏览器”窗格中,右键单击待创建PL/SQL过程的指定模式下的“函数/过程”,按照要求选择“创建函数”、“创建SQL函数”、“创建过程”或“创建C函数”。 例如右键单击“函数/过程”,弹出如下菜单: Data Studio在新页签中显示所选模板。 完成添加函数/过程后,可选择“编译”按钮或在页签空白处右键单击选在“编辑”选项编译该函数/过程。 编译运行成功后会在“对象浏览器”中显示新函数/过程。 过程名称旁的星号(*),表示该过程不被编译或添加到“对象浏览器”。 刷新(按下“F5”)后,“对象浏览器”中会显示新添加的调试对象。 C函数不支持调试操作。 弹出消息显示已完成操作的状态。状态栏将不显示此操作的状态。
  • 编辑函数/过程 在“对象浏览器”中双击所需过程/函数或SQL函数,或右键单击函数/过程或SQL函数并选择“查看源”。 “PL/SQL Viewer”页签显示所选函数/过程或SQL函数。 用户必须刷新“对象浏览器”才能查看最新DDL。 拥有相同模式、名称和输入参数的函数/过程或SQL函数一次只能打开一个。 编辑或更新后,可以编译并执行该PL/SQL程序或SQL函数。 在编译前若执行函数/过程或SQL函数,会显示一条“改变源代码”的提示。 单击“是”,编译并执行PL/SQL函数/过程。“消息”对话框显示已完成操作的状态。 编译函数/过程或SQL函数后,刷新“对象浏览器”(按下“F5”)查看更新后信息。
  • 控制执行 单步调试PL/SQL函数 调试执行函数时,可使用工具栏中的单步调试命令。通过进行单步控制,可逐行调试程序。如果进行单步操作时遇到断点,则该单步操作会停止,程序也会暂停执行。 “单步”是指一次执行一条语句。单步执行一条语句后,可以在其他调试窗口中查看执行结果。 一次最多可以弹出100个“PL/SQL Viewer”页签。如果打开的页签超过100个,则调用函数页签关闭。例如,如果已打开100个页签,且调试对象调用了新调试对象,则Data Studio会关闭调用函数并打开新的调试对象。 单步进入 在“调试”菜单中选择单步进入,可以逐条语句执行代码。 当单步跳入一个函数,Data Studio执行当前语句,然后进入调试模式,调试位置由左侧标尺区域中的箭头表示。如果执行语句调用另一个函数,Data Studio将单步跳入该函数。一旦函数中的所有语句执行完成,Data Studio将跳回其调用函数的下一语句。 单步进入(F7),进入下一语句如果按“继续”,PL/SQL代码执行将继续。 单步跳过 单步跳过与单步进入相同,除非调用了另一个函数,否则不会跳入该函数。该函数将运行,进入当前函数中的下一个语句。F8是单步跳过的快捷键。如果该调用函数内设置了断点,单步跳过将进入该函数,并命中该断点。 单步退出 子程序单步退出,继续该函数的执行,在该过程返回其调用函数后,暂停执行,确定该函数的剩余部分无需调试后,可单步退出该段函数。然而,如果该函数其余部分设置了断点,在返回调用函数前,该断点将被命中。 单步跳过和单步退出过程都会执行函数。单步退出操作的快捷键是“Shift+F7”。 继续执行 调试进程在某一位置停止时,可在“调试”菜单中选择“继续”(F9)继续PL/SQL函数执行。 查看调用堆栈 “调用堆栈”窗格展示调用过程时的过程链。可从最小化窗口窗格中打开“调用堆栈”窗格。最近的过程在顶部,最早的在底部,每个程序名的末尾是该过程的当前行号。 双击“调用堆栈”窗格中的函数名,通过“调用堆栈”窗格在多个函数中导航。
  • 参数说明 完整选项 缩写选项 数据类型 说明 取值类型 缺省值 应用实例 -t 不涉及 字符串 接口支持多种功能。指定该参数为prepare,执行主备集群准备工作。 -t generate-config -t prepare -t create-publication -t alter-publication -t cancel-publication -t get-current-disaster 不涉及 -t prepare --local-dn-num 不涉及 字符串 本地集群DN数 不涉及 不涉及 --local-dn-num 6 --remote-dn-num 不涉及 字符串 远端集群DB数 不涉及 不涉及 --remote-dn-num 3 --config-file 不涉及 字符串 双集群容灾配置文件存放路径。 说明: 该路径操作系统用户omm必须拥有读权限。 关于配置文件如何配置,请参见生成配置文件命令。 不涉及 不涉及 --config-file /home/userA/config.ini
  • 使用指南 prepare命令需在主集群的主节点上执行。 表1 设置GUC参数 设置集群 参数 参数说明 取值范围 设置值 主集群/备集群 enable_metadata_tracking 在细粒度容灾的主集群上,用于追踪细粒度容灾相关对象的元数据(包括DDL、DCL)变更,用于向备集群同步变更的元数据。 布尔型: on表示开启元数据变化追踪功能,此后发生元数据变更,可以通过细粒度容灾同步到备集群。 off表示不开启元数据变化追踪功能。 on 主集群/备集群 disaster_cluster_dn_nums 用于设置细粒度容灾主备集群DN数,格式是“本地集群DN数,远端集群DB数”,主要用于小集群向大机群同步时的数据分桶。 字符串,根据主备集群DN情况进行设置,比如DN数比例6:3的容灾,大小集群分别设置为“6,3”和“3,6”。 命令行传入参数值 备集群 view_independent 视图解耦功能。 布尔型: on表示开启视图解耦功能。 off表示不开启视图解耦功能。 on
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全