QHMM Shell 脚本的使用

本主题介绍如何使用 qhmm_usr_export.shqhmm_import_sre.sh 这两个 shell 脚本在 QHMM 中处理诊断数据。

先决条件

管理员必须从 IBM 支持团队获取 QHMM Shell 脚本。

qhmm_usr_export.sh

该脚本允许用户从 QHMM 诊断桶中捆绑诊断数据文件,并与支持团队共享压缩诊断文件,以便进一步分析。 (可以通过将它们上传到增强型客户数据存储库 (ECuRep)来实现)。 脚本接受用于配置的命令行参数,也可以使用默认值运行。

  • -e: ENDPOINT(默认值:无)- 存储端点。

  • -r:REGION(默认值:无)- 存储区域。

  • -b: BUCKET_NAME(默认值:无)-- 料桶的名称。

  • -a:ACCESS_KEY(默认值:无)- 存储的访问密钥。

  • -s:SECRET_KEY(默认值:无)- 用于存储的密钥。

  • -i:WXD_INSTANCE_ID(默认值:无)- WXD 的实例 ID。

  • -t:ENGINE_TYPE(默认值:无)- 引擎类型(例如,Presto)。

  • -d: ENGINE_ID(默认值:无)- 引擎的 ID。

• --data-type- 导出数据(支持Dump、QueryEvent, 和 QueryHistory )。

  • -p:DOWNLOAD_DIR (默认值:/root/data)- 下载文件的目标文件夹。

  • -x: START_DATE(默认值:最近 24 小时)- 筛选对象的开始日期。

  • -y:END_DATE(默认值:当前日期)- 筛选对象的结束日期。

  • -h, --base-path- 文件桶中的基本路径。

示例命令:

./qhmm_usr_export.sh -e <ENDPOINT> -r <REGION> -b <BUCKET_NAME> -a <ACCESS_KEY> -s <SECRET_KEY> -i <WXD_INSTANCE_ID> -t <ENGINE_TYPE> -d <ENGINE_ID> -p <DOWNLOAD_DIR> -x <START_DATE> -y <END_DATE>

qhmm_import_sre.sh

此脚本用于支持团队从增强型客户数据存储库 (ECuRep)中检索诊断数据,并将其上传到支持团队的存储桶,以便进一步分析。 与第一个脚本类似,它可以使用命令行参数进行配置,也可以使用默认值运行。

  • -e: ENDPOINT(默认值:无)- 存储端点。

  • -r:REGION(默认值:无)- 存储区域。

  • -b: BUCKET_NAME(默认值:无)-- 料桶的名称。

  • -a:ACCESS_KEY(默认值:无)- 存储的访问密钥。

  • -s:SECRET_KEY(默认值:无)- 用于存储的密钥。

  • -i:WXD_INSTANCE_ID(默认值:无)- WXD 的实例 ID。

  • -t:ENGINE_TYPE(默认值:无)- 引擎类型(例如,Presto)。

  • -d: ENGINE_ID(默认值:无)- 引擎的 ID。

  • -p:COMPRESSED_FILE(默认值:/root/data/bundle.zip)- 压缩文件的源文件夹。

示例命令:

./qhmm_import_sre.sh -e <ENDPOINT> -r <REGION> -b <BUCKET_NAME> -a <ACCESS_KEY> -s <SECRET_KEY> -i <WXD_INSTANCE_ID> -t <ENGINE_TYPE> -d <ENGINE_ID> -p <COMPRESSED_FILE>

bucket_data_migration.sh

该脚本允许用户将 QHMM 数据从源数据桶传输到目标数据桶。 迁移脚本可以使用以下命令行参数进行配置,也可以使用默认值运行:

-se:--source-endpoint- 源 S3-compatible 存储的端点 URL (默认值:http://localhost:9000 )

-se:--source-endpoint- 源 S3-compatible 存储的端点 URL (默认值:http://localhost:9000 )

-sr:--source-region- 源 S3-compatible 存储的区域(默认值:us-east-1 )

-sb: --source-bucket- 源数据桶的名称(必填)

-sa:--source-access-key- 源存储的访问密钥(必填)

-ss:--source-secret-key- 源存储密钥(必填)

-sbp:--source-base-path- 源数据桶中的基本路径(默认值:qhmm)

-de:--dest-endpoint- 目的地 S3-compatible 存储的端点 URL (默认值:http://localhost:9000 )

-dr:--dest-region- 目标 S3-compatible 存储的区域(默认值:us-east-1 )

-db: --dest-bucket- 目标存储桶的名称(必填)

-da:--dest-access-key- 目标存储的访问密钥(必填)

-ds:--dest-secret-key- 目的地存储密钥(必填)

-dbp:--dest-base-path- 目标数据桶中的基本路径(默认值:qhmm)

-bp:--base-path- 文件桶中的基本路径(默认值:qhmm)

  • -i: --instance-id- 实例 ID(必填)

  • -t: --engine-type- 发动机类型(必填项)

  • -d: --engine-id- 发动机 ID(必填项)

  • -x: --start-date- 筛选对象的起始日期(DD-MM-YYYY,可选)

  • -y: --end-date- 筛选对象的结束日期(DD-MM-YYYY,可选)

  • --data-type- 要导出的数据(支持的类型:Dump、QueryEvent, QueryHistory, 可选)

  • --max-size- 以 MB 为单位的最大下载大小(默认值:500MB )

  • --help- 显示本帮助并退出

示例命令:

./bucket_data_migration.sh \
    --source-endpoint <source-endpoint> \
    --source-bucket <source-bucket> \
    --source-access-key <source-access-key> \
    --source-secret-key <source-secret-key> \
    --source-base-path <source-base-path> \
    --dest-endpoint <dest-endpoint> \
    --dest-bucket <dest-bucket> \
    --dest-access-key <dest-access-key> \
    --dest-secret-key <dest-secret-key> \
    --dest-base-path <dest-base-path> \
    --instance-id <instance-id> \
    --engine-type <engine-type> \
    --engine-id <engine-id> \
    --start-date <start-date> \
    --end-date <end-date> \
    --data-type <data-type> \
    --max-size <max-size>

通过手动方法管理诊断数据

  1. 运行以下命令创建一个表,用于存储使用 qhmm_import_sre.sh 生成的查询事件数据:
` CREATE TABLE IF NOT EXISTS <catalog>.diag.query_event_raw (
  record VARCHAR,
  dt VARCHAR
)
WITH (
  external_location = 's3a://<bucket>/qhmm/<instance-id>/<engine>/<engine-id>/QueryEvent/',
  format = 'textfile',
  partitioned_by = ARRAY['dt']
);`
  1. 运行以下命令创建一个表,以 JSON 格式存储查询历史数据:
` CREATE TABLE IF NOT EXISTS <catalog>.diag.query_history(
  query_id VARCHAR,
  query VARCHAR,
  state VARCHAR,
  source VARCHAR,
  created VARCHAR,
  started VARCHAR,
  "end" VARCHAR,
  dt VARCHAR,
  user VARCHAR)
WITH (
  external_location = 's3a://<bucket>/qhmm/<instance-id>/<engine>/<engine-id>/QueryHistory/',
  format = 'JSON',
  partitioned_by = ARRAY['dt','user']
);`