华为云用户手册

  • reload_cold_partition(relname text,partname text) 描述:用于将指定冷热表的特定冷分区转换成热分区。返回的数值为执行该函数切换分区的个数。该函数仅8.3.0及以上版本支持。 参数: relname:表名(指定冷热表表名,使用其他非冷热表表名,并不会报错,返回值为0) partname:分区名(指定冷热表下的分区名) 返回值类型:integer 1 2 3 4 5 SELECT reload_cold_partition('multi_temper_table','p1'); reload_cold_partition --------------------- 1 (1 row)
  • refresh_hot_storage(relname text,partname text) 描述:用于将指定冷热表的分区数据刷到OBS上。返回的数值为执行该函数切换分区的个数。该函数仅8.2.1.100及以上版本支持。 参数: relname:表名(指定冷热表表名,使用其他非冷热表表名,并不会报错,返回值为0) partname:分区名(指定冷热表下的分区名) 返回值类型:integer 1 2 3 4 5 SELECT refresh_hot_storage('multi_temper_table','p1'); refresh_hot_storage --------------------- 1 (1 row)
  • reload_cold_partition(relname text) 描述:用于将指定冷热表的所有冷分区转换成热分区。返回的数值为执行该函数切换分区的个数。该函数仅8.3.0及以上版本支持。 参数: relname:表名(指定冷热表表名,使用其他非冷热表表名,并不会报错,返回值为0) 返回值类型:integer 1 2 3 4 5 SELECT reload_cold_partition('multi_temper_table'); reload_cold_partition --------------------- 4 (1 row)
  • pg_refresh_storage() 描述:切换所有冷热表,将符合冷热切换规则的数据由热数据切换至冷数据(OBS中)。 返回值类型:int 返回值字段: success_count int:切换成功的表个数 failed_count int:切换失败的表个数 示例: 1 2 3 4 5 SELECT * FROM pg_refresh_storage(); success_count | failed_count ---------------+-------------- 1 | 0 (1 row)
  • pg_lifecycle_table_data_distribute(table_name) 描述:查看某个冷热表的数据分布情况。 table_name为表名,不可缺省。 返回值:record 示例:根据节点数量形成多条记录,如下示例为只有一个dn节点时w1表数据分布情况。 1 2 3 4 5 SELECT * FROM pg_catalog.pg_lifecycle_table_data_distribute('w1'); schemaname | tablename | nodename | hotpartition | coldpartition | switchablepartition | hotdatasize | colddatasize | switchabledatasize ------------+-----------+----------+--------------+---------------+---------------------+-------------+--------------+-------------------- public | w1 | dn_1 | p2 | p1 | | 80 KB | 0 bytes | 0 bytes (1 row)
  • pg_lifecycle_node_data_distribute() 描述:查看所有冷热表数据分布情况。 返回值:record 示例:数据库中当前存在两个冷热表,其数据分布情况如下。 1 2 3 4 5 6 SELECT * FROM pg_catalog.pg_lifecycle_node_data_distribute(); schemaname | tablename | nodename | hotpartition | coldpartition | switchablepartition | hotdatasize | colddatasize | switchabledatasize ------------+-----------+----------+--------------+---------------+---------------------+-------------+--------------+-------------------- public | w1 | dn_1 | p2 | p1 | | 81920 | 0 | 0 public | w2 | dn_1 | p2 | p1 | | 81920 | 0 | 0 (2 rows)
  • pg_obs_cold_refresh_time(table_name, time) 描述:用来修改冷热表的冷数据切换至OBS上的时间,默认为每日0点。 table_name为冷热表表名,类型为name,time为数据切换任务调度时间,类型为Time。 返回值:SUC CES S,任务时间修改成功。 示例: 1 2 3 4 5 SELECT * FROM pg_obs_cold_refresh_time('lifecycle_table', '06:30:00'); pg_obs_cold_refresh_time -------------------------- SUCCESS (1 row)
  • pg_task_reset_interval(text, interval) 描述:修改某个同步任务的调度周期,第一个入参为任务的task_id,第二个入用于指定任务的调度周期,取值范围为5秒至24小时。函数返回被修改周期的任务的个数。该函数仅8.2.1.300及以上版本支持。 返回值类型:integer 示例: 1 2 3 4 5 select pg_task_reset_interval('64bfd69c-a016-0000-120e-1e802978fffe', '10 hours 30 minutes'); pg_task_reset_interval ------------------------ 1 (1 row)
  • hudi_sync_custom(regclass, regclass, text) 描述:存储过程,Hudi自动同步任务调用入口,支持用户自定义目标表和数据源表的字段同步对应关系。使用pg_catalog.hudi_sync_task_submit(regclass, regclass, text, text)提交的任务会执行该存储过程。其中text为json风格字符串,表示两张表字段间的同步对应关系。执行成功会提示同步的行数和时间戳。 返回值类型:text 示例: 1 2 3 4 5 6 7 CALL hudi_sync_custom('public.hudi_sync_i', 'public.hudi_mor_ft', '{"_hoodie_commit_time" : "_hoodie_commit_time", "col_bigint" : "col_bigint", "col_text" : "col_text"}'); NOTICE: execute full sync CONTEXT: PL/pgSQL function hudi_sync_custom(regclass,regclass,text) line 14 at RETURN hudi_sync_custom -------------------------------------- sync 1 rows up to 20230511114021573. (1 row)
  • pg_task_resume(text) 描述:恢复某个自动调度任务执行,入参为该任务的task-id。函数返回被恢复执行任务的个数。该函数仅8.2.1.300及以上版本支持。 返回值类型:integer 示例: 1 2 3 4 5 SELECT pg_task_resume('64661705-8ada-0100-d07f-b57e89a0fffe'); pg_task_resume ---------------- 1 (1 row)
  • hudi_set_sync_commit(regclass, regclass, text) 描述:设置Hudi自动同步任务首次同步的起点时间戳,避免在已经同步了部分数据的情况下,重新同步已有数据。第一个参数为同步目标表,第二个参数为hudi外表,第三个参数为用户期望的同步起点。该函数需要在提交同步任务之前使用。该函数仅8.2.1.210及以上版本支持。 返回值类型:text 示例: 1 2 3 4 5 6 7 select hudi_set_sync_commit('public.hudi_sync_i', 'public.hudi_mor_ft', '20230511114021573'); NOTICE: set sync commit successfully, the next synchronization will start from 20230511114021573 CONTEXT: referenced column: hudi_set_sync_commit hudi_set_sync_commit ---------------------- 20230511114021573 (1 row) 用户需要有同步目标表的insert和update权限、HUDI外表的select权限,否则无法正常设置同步进度。
  • pg_task_show(text) 描述:查询当前自动调度任务信息,对于hudi同步任务,入参应该是'SQLonHudi'。 返回值类型:setof record 示例: 1 2 3 4 5 SELECT * FROM pg_task_show('SQLonHudi'); task_id | what | category_id | userid | is_broken | interval | time_cons | start_time | end_time | parameter | task_rank | next_start_time | next_end_time | last_log | failure_times --------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+--------+-----------+------------+-----------+-------------------------------+----------+-----------+-----------+-------------------------------+-------------------------------+----------+--------------- 64d257e9-1e9b-0d00-3ce3-7e61b5e0fffe | call pg_catalog.hudi_sync_custom('public.hudi_read_target', 'public.hudi_read101', '{"_hoodie_commit_seqno" : "_hoodie_commit_seqno", "id" : "id", "ts" : "ts", "long_field" : "ts"}'); | SQLonHudi | 10 | f | '00:00:10' | | 2023-08-08 22:58:15.846903+08 | | | 5 | 2023-08-08 22:58:15.846903+08 | 2023-08-08 22:58:24.846903+08 | | 0 (1 row) last_log和failure_times字段用于记录上一次任务的状态。 last_log于任务结束时刷新,若任务成功,则清空内容;若任务失败则记录任务的失败日志。 failure_times于时间窗结束时刷新,若任务成功,置为0,失败则累加1,本轮未拉起则不变,可用于推断第一次失败出现的时间。
  • hudi_set_sync_commit(text, text) 描述:设置Hudi自动同步任务下一次同步的起点时间戳,可以用于重复同步历史数据或者跳过某些数据。第一个参数为任务id,第二个参数为用户期望的下一次同步起点。该函数需要在提交同步任务后使用,并且使用前需要暂停任务。该函数仅8.2.1.210及以上版本支持。 返回值类型:text 示例: 1 2 3 4 5 6 7 select hudi_set_sync_commit('6524c8e3-aae9-0000-5a14-be8ec000fffe', '20230511114021573'); NOTICE: set sync commit successfully, the next synchronization will start from 20230511114021573 CONTEXT: referenced column: hudi_set_sync_commit hudi_set_sync_commit ---------------------- 20230511114021573 (1 row) 只有拥有目标任务权限的用户才能成功调用该函数。 调用该函数前,目标任务需要处于暂停状态,且至少成功执行过一次。
  • pg_task_pause(text) 描述:暂停某个自动调度任务,入参为该任务的task-id,函数返回被暂停任务的个数。 返回值类型:integer 示例: 1 2 3 4 5 SELECT pg_task_pause('64661705-8ada-0100-d07f-b57e89a0fffe'); pg_task_pause --------------- 1 (1 row)
  • pg_task_remove(text) 描述:删除某个自动调度任务,入参为该任务的task-id,函数返回被删除任务的个数。 返回值类型:integer 示例: 1 2 3 4 5 SELECT pg_task_remove('64661705-8ada-0100-d07f-b57e89a0fffe'); pg_task_remove ---------------- 1 (1 row)
  • hudi_sync_task_submit(regclass, regclass, interval) 描述:功能与hudi_sync_task_submit(regclass, regclass)一致。不同之处在于,用户可以额外指定一个interval类型入参,用于指定任务的调度周期,取值范围为5秒至24小时。提交任务成功会返回任务的task-id。该函数仅8.2.1.300及以上版本支持。 返回值类型:text 同步目标表必须包含主键,且主键需要与hudi recordkey一致。 如果hudi表包含precombine字段,那么同步目标表也必须包含与之对应的字段。 如果同步目标表只包含主键(除了主键外没有其他字段),则无法正常提交同步任务。 用户需要有同步目标表的insert和update权限、HUDI外表的select权限,否则无法正常提交同步任务。 示例: 1 2 3 4 5 SELECT hudi_sync_task_submit('public.hudi_sync_i','public.hudi_mor_ft','1 hour'); hudi_sync_task_submit -------------------------------------- 6465efe2-3ea1-0b00-dde5-b57dfb30fffe (1 row)
  • hudi_show_sync_state() 描述:获取Hudi自动同步任务的同步状态。 返回值类型:setof record 示例: 1 2 3 4 5 SELECT * FROM hudi_show_sync_state(); target_tbl | source_ftbl | payload_type | precombine_key | latest_commit --------------------+--------------------+-------------------------------------------------------------+----------------+------------------- public.hudi_sync_i | public.hudi_mor_ft | org.apache.hudi.common.model.OverwriteWithLatestAvroPayload | col_int | 20230511114021573 (1 row)
  • hudi_sync(regclass, regclass) 描述:存储过程,Hudi自动同步任务调用入口。使用pg_catalog.hudi_sync_task_submit(regclass, regclass)提交的任务会执行该存储过程。执行成功会提示同步的行数和时间戳。 返回值类型:text 示例: 1 2 3 4 5 6 7 CALL hudi_sync('public.hudi_sync_i', 'public.hudi_mor_ft'); NOTICE: execute full sync CONTEXT: PL/pgSQL function hudi_sync(regclass,regclass) line 11 at RETURN hudi_sync -------------------------------------- sync 1 rows up to 20230511114021573. (1 row)
  • hudi_sync_task_submit(regclass, regclass) 描述:提交Hudi自动同步任务。第一个入参为同步目标表,第二个入参为HUDI外表。提交任务成功会返回任务的task-id。 返回值类型:text 同步目标表必须包含主键,且主键需要与hudi recordkey一致。 如果hudi表包含precombine字段,那么同步目标表也必须包含与之对应的字段。 如果同步目标表只包含主键(除了主键外没有其他字段),则无法正常提交同步任务。 用户需要有同步目标表的insert和update权限、HUDI外表的select权限,否则无法正常提交同步任务。 示例: 1 2 3 4 5 SELECT hudi_sync_task_submit('public.hudi_sync_i','public.hudi_mor_ft'); hudi_sync_task_submit -------------------------------------- 6465efe2-3ea1-0b00-dde5-b57dfb30fffe (1 row)
  • hudi_get_max_commit(regclass) 描述:获取当前Hudi外表最新commit的时间戳和数据写入时间。 返回值类型:record 示例: 1 2 3 4 5 SELECT * FROM hudi_get_max_commit('public.hudi_mor_ft'); max_commit | write_time ----------------+------------------------ 20221207141822 | 2022-12-07 14:18:30+08 (1 row)
  • hudi_sync_task_submit(regclass, regclass, text, text, interval) 描述:功能与hudi_sync_task_submit(regclass, regclass, text, text)一致,不同之处在于,用户可以额外指定一个interval类型入参,用于指定任务的调度周期,取值范围为5秒至24小时。该函数仅8.2.1.300及以上版本支持。 返回值类型:text 同步目标表必须包含主键,且主键需要与hudi recordkey一致。 如果hudi表包含precombine字段,那么同步目标表也必须包含与之对应的字段。 如果同步目标表只包含主键(除了主键外没有其他字段),则无法正常提交同步任务。 用户需要有同步目标表的insert和update权限、HUDI外表的select权限,否则无法正常提交同步任务。 示例: 1 2 3 4 5 SELECT hudi_sync_task_submit('public.hudi_sync_i','public.hudi_mor_ft','_hoodie_commit_time, col_bigint, col_text', '_hoodie_commit_time, col_bigint, col_text', '10 minute 30second'); hudi_sync_task_submit -------------------------------------- 646610bc-cdd1-0d00-d07d-b57e89a0fffe (1 row)
  • hudi_sync_task_submit(regclass, regclass, text, text) 描述:功能与hudi_sync_task_submit(regclass, regclass)一致,不同之处在于,用户可以额外指定两个text入参,表示用户期望哪些字段被同步。字段之间使用','分隔,支持引号和转义字符的解析。两个text参数的字段数量和顺序应当一致,表示同步字段之间的对应关系。提交任务成功会返回任务的task-id。 返回值类型:text 同步目标表必须包含主键,且主键需要与hudi recordkey一致。 如果hudi表包含precombine字段,那么同步目标表也必须包含与之对应的字段。 如果同步目标表只包含主键(除了主键外没有其他字段),则无法正常提交同步任务。 用户需要有同步目标表的insert和update权限、HUDI外表的select权限,否则无法正常提交同步任务。 示例: 1 2 3 4 5 SELECT hudi_sync_task_submit('public.hudi_sync_i','public.hudi_mor_ft','_hoodie_commit_time, col_bigint, col_text', '_hoodie_commit_time, col_bigint, col_text'); hudi_sync_task_submit -------------------------------------- 646610bc-cdd1-0d00-d07d-b57e89a0fffe (1 row)
  • pg_show_custom_settings() 描述:查询Hudi外表参数设置详情。 返回值类型:setof record 示例: 1 2 3 4 5 6 7 8 9 10 11 12 SELECT * FROM pg_show_custom_settings(); name | setting | unit | category | short_desc | extra_desc | context | vartype | source | min_val | max_val | enumvals | boot_val | reset_val | sourcefile | sourceline ----------------------------------------------------+-------------------+------+--------------------+--------------------------+------------+---------+---------+---------+---------+---------+ ----------+----------+-----------+------------+------------ hoodie.public.hudi_mor_ft.consume.ending.timestamp | 20230404172329544 | | Customized Options | GUC placeholder variable | | user | string | session | | | | | | | hoodie.public.hudi_mor_ft.consume.mode | incremental | | Customized Options | GUC placeholder variable | | user | string | session | | | | | | | hoodie.public.hudi_mor_ft.consume.start.timestamp | 20230404172329543 | | Customized Options | GUC placeholder variable | | user | string | session | | | | | | | (3 rows)
  • hudi_get_options(regclass) 描述:查询Hudi外表的属性信息(hoodie.properties)。以key-value键值对表示。 返回值类型:setof record 示例: 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 SELECT * FROM hudi_get_options('public.hudi_mor_ft'); key | value -------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------- hoodie.table.precombine.field | col_int hoodie.datasource.write.drop.partition.columns | false hoodie.table.partition.fields | hoodie.table.type | MERGE_ON_READ hoodie.archivelog.folder | archived hoodie.compaction.payload.class | org.apache.hudi.common.model.OverwriteWithLatestAvroPayload hoodie.timeline.layout.version | 1 hoodie.table.version | 4 hoodie.table.recordkey.fields | col_bigint hoodie.database.name | default hoodie.datasource.write.partitionpath.urlencode | false hoodie.table.name | lt_test_mor_014 hoodie.table.keygenerator.class | org.apache.hudi.keygen.ComplexKeyGenerator hoodie.datasource.write.hive_style_partitioning | true hoodie.table.create.schema | {"type"\:"record","name"\:"lt_test_mor_014_record","namespace"\:"hoodie.lt_test_mor_014","fields"\:[{"name"\:"_hoodie_commit_time","type"\:[ "string","null"]},{"name"\:"_hoodie_commit_seqno","type"\:["string","null"]},{"name"\:"_hoodie_record_key","type"\:["string","null"]},{"name"\:"_hoodie_partition_path","type"\:["string","null "]},{"name"\:"_hoodie_file_name","type"\:["string","null"]},{"name"\:"col_bigint","type"\:["long","null"]},{"name"\:"col_int","type"\:["int","null"]},{"name"\:"col_text","type"\:["string","nu ll"]},{"name"\:"col_text2","type"\:["string","null"]}]} hoodie.table.checksum | 515660817 (16 rows)
  • XMLSERIALIZE ( { DOCUMENT | CONTENT } value AS type 描述:从XML类型的值生成一个字符串。 返回值类型:type,可以是character,character varying或text(或其别名) 示例: 1 2 3 4 5 SELECT xmlserialize(content 'good' AS CHAR(10)); xmlserialize -------------- good (1 row)
  • pg_rm_residualfiles() 描述:用于删除当前实例中所有的残留文件列表中的文件。该函数为实例级函数,与当前所在的数据库无关,可以在任意实例上运行。 参数类型:无 返回值类型:record 函数返回字段如下: 表2 pg_rm_residualfiles()返回字段 名称 类型 描述 result bool 是否已经完成删除。 filepath text 残留文件记录路径。 notes text 注释。 示例: 1 2 3 4 5 SELECT * FROM pg_rm_residualfiles(); result | filepath | notes --------+---------------------------+------- t | pgrf_20200908160211441546 | (1 row) 残留文件只有在调用pg_verify_residualfiles()进行验证后才能被真正删除。 删除动作不区分数据库,指定文件中所有已经验证的文件都会被删除。 如果指定文件中记录的所有文件都已经被删除,指定文件会被移除并备份到$PGDATA/pg_residualfile/backup目录下。
  • pgxc_rm_residualfiles() 描述:pgxc_rm_residualfiles的CN统一查询函数。该函数为集群级函数,与当前所在的数据库无关,在CN实例上运行。 参数类型:无 返回值类型:record 函数返回字段如下: 表3 pgxc_rm_residualfiles()返回字段 名称 类型 描述 nodename text 节点名。 result bool 是否已经完成删除。 filepath text 残留文件记录路径。 notes text 注释。 示例: 1 2 3 4 5 6 SELECT * FROM pgxc_rm_residualfiles(); nodename | result | filepath | notes --------------+--------+---------------------------+------- cn_5001 | t | pgrf_20200910170129360401 | dn_6001_6002 | t | pgrf_20200908160211441546 | (2 rows)
  • pg_rm_residualfiles(filepath) 描述:用于删除当前实例中指定残留文件列表中的文件。该函数为实例级函数,与当前所在的数据库无关,可以在任意实例上运行。 参数类型:text 返回值类型:record 函数返回字段如下: 表1 pg_rm_residualfiles(filepath)返回字段 名称 类型 描述 result bool 是否已经完成删除。 示例: 1 2 3 4 5 SELECT * FROM pg_rm_residualfiles('pgrf_20200908160211441599'); result -------- t (1 row) 残留文件只有在调用pg_verify_residualfiles()进行verify后才能被真正删除。 删除动作不区分数据库,指定文件中所有已经verify的文件都会被删除。 如果指定文件中记录的所有文件都已经被删除,指定文件会被移除并备份到$PGDATA/pg_residualfile/backup目录下。
  • pg_is_residualfiles(residualfile) 描述:用于查询当前库中指定的relfilenode是否为残留文件。该函数为实例级函数,与当前所在的数据库相关,可以在任意实例上运行。 参数类型:text 返回值类型:bool 函数返回字段如下: 表4 pg_is_residualfiles(residualfile)返回字段 名称 类型 描述 result bool 是否是残留文件 示例: 1 2 3 4 5 SELECT * FROM pg_is_residualfiles('base/49155/114691'); result -------- t (1 row) 本函数只能验证记录的文件在当前登录的database中是否为残留文件。如果记录的文件不属于当前登录的数据库,则会被检测为是残留文件。 例如:针对gaussdb数据库中的非残留文件 base/15092/14790,如果在gaussdb库中查询,则认为是非残留文件;在其他数据库中查询,则认为是残留文件。 SELECT * FROM pg_is_residualfiles('base/15092/14790'); result -------- f (1 row) \c db2 db2=# SELECT * FROM pg_is_residualfiles('base/15092/14790'); result -------- t (1 row)
  • pg_verify_residualfiles() 描述:用于验证当前实例上所有残留文件列表中记录的文件是否为残留文件。该函数为实例级函数,与当前所在的数据库相关,可以在任意实例上运行。 参数类型:无 返回值类型:record 函数返回字段如下: 表2 pg_verify_residualfiles()返回字段 名称 类型 描述 result bool 是否完成验证 filepath text 残留文件记录路径 notes text 注释 示例: 1 2 3 4 5 SELECT * FROM pg_verify_residualfiles(); result | filepath | notes --------+---------------------------+------- t | pgrf_20200908160211441546 | (1 row) 本函数只能验证记录的文件在当前登录的数据库中是否是残留文件。如果记录的文件不属于当前登录的数据库,则不会进行校验行为。
共100000条