更新时间:2024-09-02 GMT+08:00

PGXC_BULKLOAD_INFO

通过CN查看PGXC_BULKLOAD_INFO视图,可获取互联互通、GDS、COPY、\COPY等业务执行结束后的历史统计信息。该视图汇总当前集群上各个节点已经执行结束的导入导出类业务的历史执行情况(包括互联互通集群地址、导入导出业务类型、DN上落盘的最大、最小以及总和的行数与字节数等),从而可以获取导入导出类业务执行的历史信息,辅助进行性能问题排查。

该视图不会记录异常中断的导入导出作业,数据直接从系统表GS_WLM_SESSION_INFO获取,并将loader_status字段解析获取导入导出类业务信息。

需要有系统管理员权限才可以访问此PGXC_BULKLOAD_INFO视图。

表1 PGXC_BULKLOAD_INFO字段

名称

类型

描述

datid

oid

连接后端的数据库OID。

dbname

text

连接后端的数据库名称。

schemaname

text

模式名。

nodename

text

语句执行的CN名称。

username

text

连接到后端的用户名。

application_name

text

连接到后端的应用名。

client_addr

inet

连接到后端的客户端的IP地址。 如果此字段是null,它表明通过服务器机器上UNIX套接字连接客户端或者这是内部进程,如autovacuum。

client_hostname

text

客户端的主机名,这个字段是通过client_addr的反向DNS查找得到。这个字段只有在启动log_hostname且使用IP连接时才非空。

client_port

integer

客户端用于与后端通讯的TCP端口号,如果使用Unix套接字,则为-1。

query_band

text

用于标示作业类型,可通过GUC参数query_band进行设置,默认为空字符串。

block_time

bigint

语句执行前的阻塞时间,包含语句解析和优化时间,单位ms。

start_time

timestamp with time zone

语句执行的开始时间。

finish_time

timestamp with time zone

语句执行的结束时间。

status

text

语句执行结束状态:正常为finished,异常为aborted。该处记录的语句状态应为数据库服务端执行状态,当服务器端执行成功,结果集返回时报错,该语句应为finished。

queryid

bigint

语句执行使用的内部query id。

query

text

执行的语句。

session_id

text

在数据库系统中唯一标记一个session,格式:session_start_time.tid.node_name。

address

text

互联互通对端集群server的address,非空时即为互联互通业务,源集群会额外获取远端集群端口号。

direction

text

导入导出业务类型,取值包括:gds to file、gds from file、gds to pipe、gds from pipe、copy from、copy to。

min_done_lines

json

语句在所有DN上的最小行数。

max_done_lines

json

语句在所有DN上的最大行数。

total_done_lines

json

语句在所有DN上的总行数。

min_done_bytes

json

语句在所有DN上的最小字节数。

max_done_bytes

json

语句在所有DN上的最大字节数。

total_done_bytes

json

语句在所有DN上的总字节数。

  • 异常中断导入导出类业务不会记录在视图中。
  • gds外表与互联互通外表实现机制不同,查询时gds会记录全量,互联互通会记录实际。
  • 非全量导入导出外表,带limit时会因limit执行计划的特殊,数据显示为从一个DN上收取,即表现为max值为全部,min值为0。
  • 若导入导出表为非分区表时:
    • gds分区表较小的情况下,在一个DN获取完数据后,若其余DN未开始获取数据,将不会在其余DN获取数据,所以在gds from非分区表数据量较小的情况下,min值可能为0,表数据量大时不为0。
    • 互联互通源集群导出非分区表时,所有DN都会被记录,且只会拿取一个DN的数据,所以min值为0。
    • 互联互通远端集群导出复制表时,只有一个DN都会被记录,所以相当于只有一个DN,min值max值相同。
  • 导入导出历史监控通过复用历史TopSQL功能实现,同样遵守TopSQL的注意事项、前提条件、操作步骤等,详情请见历史TopSQL
  • 因TopSQL记录数据量较大,为提高查询性能建议结合start_time、finish_time等字段按需查询使用,或者降低查询频率。

应用示例

使用PGXC_BULKLOAD_INFO视图查询互联互通导入业务:

SELECT * FROM PGXC_BULKLOAD_INFO;
 datid |  dbname  |   schemaname   |   nodename   |    username    | application_name | client_addr | client_hostname | client_port | query_band | block_time |          start_time           |          finish_time          |  statu
s  |      queryid      |                                                                                                                                               query                                                          
                                                                                      |               session_id                |      address      |   direction   | min_done_lines | max_done_lines | total_done_lines | min_done_by
tes | max_done_bytes | total_done_bytes 
-------+----------+----------------+--------------+----------------+------------------+-------------+-----------------+-------------+------------+------------+-------------------------------+-------------------------------+-------
---+-------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------+-----------------------------------------+-------------------+---------------+----------------+----------------+------------------+------------
----+----------------+------------------
 16134 | postgres | "$user",public | coordinator1 | interconn_user | gsql             |             |                 |          -1 |            |          0 | 2023-09-25 10:27:47.184696+08 | 2023-09-25 10:27:48.709665+08 | finish
ed | 72339069014639035 | INSERT INTO interconn_user.lineitem_dest SELECT * FROM interconn_user.ft_lineitem_local;                                                                                                                     
                                                                                      | 1695608841.140482657154648.coordinator1 | 10.90.45.56:63755 | gds from pipe | 19479          | 20971          | 60175            | 3251258    
    | 3500876        | 10038234
 16134 | postgres | "$user",public | coordinator1 | interconn_user | interconnection  | 10.90.45.56 |                 |       47668 |            |          0 | 2023-09-25 10:27:47.256095+08 | 2023-09-25 10:27:48.582366+08 | finish
ed | 72339069014639046 | INSERT INTO pg_temp.ft_lineitem_local_72339069014639035_wo SELECT l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus, l_shipdate, l_c
ommitdate, l_receiptdate, l_shipinstruct, l_shipmode, l_comment FROM public.lineitem; | 1695608867.140482657156768.coordinator1 | 10.90.45.56       | gds to pipe   | 19476          | 20934          | 60175            | 3249308    
    | 3489789        | 10038234
(2 rows)