GBase 8a MPP Cluster 加载日志自动汇总与查询功能使用方法

  GBase 8a MPP(下文简称8a集群)加载日志自动汇总功能用于将一次加载的错误数据日志与溯源信息日志汇总至加载发起节点,并提供相应的查询,检索日志的功能。本文简单介绍加载日志自动汇总功能的设置与使用方法。

注:本功能依赖 GNS 功能,请确保 _gbase_gns_share_connection 参数为1。

日志文件汇总功能开关

  • 变量名:gbase_loader_logs_collect
  • 有效值:0,关闭;1,开启(默认值)

  通过该变量控制集群加载日志汇总功能的开启与关闭,该变量支持 set 方式修改与配置文件方式修改。
  对于集群加载,如果 gbase_loader_logs_collect = 1,错误数据与溯源信息汇总到加载发起节点,并存储到 gbase_loader_logs_dir 指定目录,否则不进行错误数据与溯源信息日志的汇总。

日志文件汇总路径设置

  • 变量名:gbase_loader_logs_dir
  • 有效值:本地路径;FTP/SFTP 路径

  通过该变量指定日志文件汇总路径,默认汇总至加载发起节点的 gcluster 日志目录($GCLUSTER_HOME/log/gcluster)下的 loader_logs 目录,并在该路径下建一个以本次 TASK_ID 命名的子目录,将汇总日志存放在该目录中。加载完成时,在该子目录下创建一个以 TASK_ID_loader_result.log 命名的日志,并将本次加载的结果信息写入该日志文件。该变量支持 set 方式修改和配置文件方式修改。

gbase_loader_logs_dir 变量设置示例
gbase> set global gbase_loader_logs_dir='/tmp/gbase_logs/';
Query OK, 0 rows affected (Elapsed: 00:00:00.01)

gbase> show variables like '%loader_logs%';
+---------------------------+------------------+
| Variable_name             | Value            |
+---------------------------+------------------+
| gbase_loader_logs_collect | ON               |
| gbase_loader_logs_dir     | /tmp/gbase_logs/ |
+---------------------------+------------------+
2 rows in set (Elapsed: 00:00:00.00)

加载日志汇总目录内容示例
[gbase@bogon gbase_logs]$ ls -l
total 0
drwx------ 2 gbase gbase 144 Sep 28 11:00 2946

[gbase@bogon gbase_logs]$ ls -l 2946
total 37256
-rw------- 1 gbase gbase      217 Sep 28 11:00 2946_loader_result.log
-rw------- 1 gbase gbase 24196143 Sep 28 11:00 2946_test_t_n1_10.1.1.1_20210928110013.err
-rw------- 1 gbase gbase 13946370 Sep 28 11:00 2946_test_t_n1_10.1.1.1_20210928110013.trc

日志文件说明

1. loader_result.log
  • 加载完成时,8a集群将加载结果信息写入加载结果日志文件中。加载结果列信息包括以下内容:

    字段含义
    TASK_ID加载ID
    DB_NAME加载数据库名
    TB_NAME加载表名
    USER当前加载用户名
    ACCESS_IP加载发起点IP
    HOST_IP客户端IP
    START_TIME加载开始时间
    END_TIME加载结束时间
    ELAPSED_TIME加载耗时
    TOTAL_SIZE加载文件总大小
    AVERAGE_SPEED加载平均速度
    LOADED_RECORDS加载数据条数
    SKIPPED_RECORDS加载数据跳过条数
    IGNORED_FILES加载跳过的文件数
    RESULT加载结果
    SQL_CMD加载SQL
    MESSAGE错误信息
  • 文件内容如下所示:

    2946|test|t|gbase|10.1.1.1|10.1.1.1|2021-09-28 11:00:00|2021-09-28 11:00:02|2|24196143|12098071|0|150000|0|SUCCESS|load data infile '/tmp/load_data.txt' into table t|
    

  1) 加载结果信息存储以 ‘|’ 为列分隔符,以 ‘\n’ 为行分隔符的普通文本文件
  2) SQL_CMD 和 MESSAGE 中的包含 ‘\n’ 的情况,日志文件中以空格代替

2. *.err 错误数据
  • 该日志中存储无法加载的错误数据。

3. *.trc 溯源信息
  • 该日志中存储错误数据的偏移量和错误原因

  • 文件中内容如下:

    file_name    |file_offset|record_len|column|reason
    /tmp/load.txt|2          |2         |1     |Validate error
    
  • 字段说明:

    字段名称含义说明
    file_name加载文件名
    file_offset错误数据偏移量
    record_len错误数据行长
    column错误数据列号
    reason错误数据具体原因

加载错误数据与溯源信息检索

  • 该功能用于错误数据与溯源信息的检索。
  • 语法格式:
SHOW [GCLUSTER] LOAD LOGS <task_id> LIMIT {[<offset>,] <row_count>};
  • 参数说明:

    字段名称含义说明
    GCLUSTER可选参数,增加这个参数显示全部coordinator节点的信息
    task_id要追溯的加载任务的进程ID
    offset信息起始
    row_count记录条数
  • 查询结果信息表定义:

    字段名称含义说明
    TASK_ID加载ID
    DB_NAME加载库名
    TB_NAME加载表名
    ERR_DATA_IP产生错误数据的节点IP
    FILE_NAME加载文件名
    FILE_OFFSET错误数据偏移量
    RECORD_LEN错误数据行长
    ERR_COLUMN错误数据行号
    ERR_REASON错误数据具体原因
    ERR_DATA错误数据
示例
  • 加载数据:

    [gbase@bogon tmp]$ cat load.txt
    1
    a
    2
    b
    c,d
    

  • 表结构:

    gbase> desc t;
    +-------+---------+------+-----+---------+-------+
    | Field | Type    | Null | Key | Default | Extra |
    +-------+---------+------+-----+---------+-------+
    | id    | int(11) | YES  |     | NULL    |       |
    +-------+---------+------+-----+---------+-------+
    1 row in set (Elapsed: 00:00:00.00)
    

  • 执行加载:

    gbase> LOAD DATA INFILE 'file:///tmp/load.txt' INTO TABLE t SKIP_BAD_FILE 1;
    Query OK, 2 row affected (Elapsed: 00:00:00.13)
    Task 2948 finished, Loaded 2 records, Skipped 3 records, Ignored 1 files
    

  • 查询错误信息及溯源记录

    --- 显示Task 2948任务的错误数据信息
    gbase> SHOW LOAD LOGS 2948;
    +---------+---------+---------+-------------+---------------+-------------+------------+------------+-------------------+----------+
    | task_id | db_name | tb_name | err_data_ip | file_name     | file_offset | record_len | err_column | err_reason        | err_data |
    +---------+---------+---------+-------------+---------------+-------------+------------+------------+-------------------+----------+
    | 2948    | test    | t       | 10.1.1.1    | /tmp/load.txt | 2           | 2          | 1          | Validate error    | a        |
    +---------+---------+---------+-------------+---------------+-------------+------------+------------+-------------------+----------+
    | 2948    | test    | t       | 10.1.1.1    | /tmp/load.txt | 6           | 2          | 1          | Validate error    | b        |
    +---------+---------+---------+-------------+---------------+-------------+------------+------------+-------------------+----------+
    | 2948    | test    | t       | 10.1.1.1    | /tmp/load.txt | 8           | 4          | 2          | text parser error | c,d      |
    +---------+---------+---------+-------------+---------------+-------------+------------+------------+-------------------+----------+
    3 rows in set (Elapsed: 00:00:00.00)
    
    --- 显示Task 2948任务的前 2 条错误数据信息
    gbase> SHOW LOAD LOGS 2948 LIMIT 2;
    +---------+---------+---------+-------------+---------------+-------------+------------+------------+-------------------+----------+
    | task_id | db_name | tb_name | err_data_ip | file_name     | file_offset | record_len | err_column | err_reason        | err_data |
    +---------+---------+---------+-------------+---------------+-------------+------------+------------+-------------------+----------+
    | 2948    | test    | t       | 10.1.1.1    | /tmp/load.txt | 2           | 2          | 1          | Validate error    | a        |
    +---------+---------+---------+-------------+---------------+-------------+------------+------------+-------------------+----------+
    | 2948    | test    | t       | 10.1.1.1    | /tmp/load.txt | 6           | 2          | 1          | Validate error    | b        |
    +---------+---------+---------+-------------+---------------+-------------+------------+------------+-------------------+----------+
    2 rows in set (Elapsed: 00:00:00.00)
    
    --- 显示Task 2948任务的从第 1 条开始的后面 2 条错误数据信息
    gbase> SHOW LOAD LOGS 2948 LIMIT 1,2;
    +---------+---------+---------+-------------+---------------+-------------+------------+------------+-------------------+----------+
    | task_id | db_name | tb_name | err_data_ip | file_name     | file_offset | record_len | err_column | err_reason        | err_data |
    +---------+---------+---------+-------------+---------------+-------------+------------+------------+-------------------+----------+
    | 2948    | test    | t       | 10.1.1.1    | /tmp/load.txt | 6           | 2          | 1          | Validate error    | b        |
    +---------+---------+---------+-------------+---------------+-------------+------------+------------+-------------------+----------+
    | 2948    | test    | t       | 10.1.1.1    | /tmp/load.txt | 8           | 4          | 2          | text parser error | c,d      |
    +---------+---------+---------+-------------+---------------+-------------+------------+------------+-------------------+----------+
    2 rows in set (Elapsed: 00:00:00.00)
    

  • 加载日志汇总目录中的文件内容:

    [gbase@bogon gbase_logs]$ ls -l 2948
    total 12
    -rw------- 1 gbase gbase 173 Sep 28 16:43 2948_loader_result.log
    -rw------- 1 gbase gbase   8 Sep 28 16:43 2948_test_t_n1_10.1.1.1_20210928164327.err
    -rw------- 1 gbase gbase 183 Sep 28 16:43 2948_test_t_n1_10.1.1.1_20210928164327.trc
    
    [gbase@bogon gbase_logs]$ cat 2948/2948_loader_result.log
    2948|test|t|gbase|10.1.1.1|10.1.1.1|2021-09-28 16:43:27|2021-09-28 16:43:28|1|0|0|2|3|1|SUCCESS|load data infile 'file:///tmp/load.txt' into table t skip_bad_file 1|
    
    [gbase@bogon gbase_logs]$ cat 2948/2948_test_t_n1_10.1.1.1_20210928164327.err
    a
    b
    c,d
    
    [gbase@bogon gbase_logs]$ cat 2948/2948_test_t_n1_10.1.1.1_20210928164327.trc
    file_name     | file_offset | record_len | column | reason
    /tmp/load.txt | 2           | 2          | 1      | Validate error
    /tmp/load.txt | 6           | 2          | 1      | Validate error
    /tmp/load.txt | 8           | 4          | 2      | text parser error
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值