QHMMシェルスクリプトの使い方

このトピックでは、qhmm_usr_export.shqhmm_import_sre.sh の2つのシェルスクリプトを使ってQHMMの診断データを扱う方法を説明します。

前提条件

管理者はIBMサポートチームからQHMMシェルスクリプトを入手する必要があります。

qhmm_usr_export.sh

このスクリプトにより、ユーザーはQHMM診断バケットから診断データファイルをバンドルし、圧縮された診断ファイルをサポートチームと共有することができます。 (これは、強化された顧客データリポジトリ(ECuRep)にアップロードすることで可能です)。 スクリプトは、設定のためのコマンドライン引数を受け付けるか、デフォルト値で実行することができる。

  • -e: ENDPOINT (default: none)- ストレージ・エンドポイント。

  • -r:REGION (default: none)- ストレージ領域。

  • -b: BUCKET_NAME (default: none)- バケツの名前。

  • -a:ACCESS_KEY (default: none)- ストレージのアクセス・キー。

  • -s: SECRET_KEY (default: none)- ストレージの秘密鍵。

  • -i:WXD_INSTANCE_ID (default: none)- WXDのインスタンスID。

  • -t: ENGINE_TYPE (default: none)- エンジンのタイプ (例: Presto).

  • -d: ENGINE_ID (default: none)- エンジンの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 (default: none)- ストレージ・エンドポイント。

  • -r:REGION (default: none)- ストレージ領域。

  • -b: BUCKET_NAME (default: none)- バケツの名前。

  • -a:ACCESS_KEY (default: none)- ストレージのアクセス・キー。

  • -s: SECRET_KEY (default: none)- ストレージの秘密鍵。

  • -i:WXD_INSTANCE_ID (default: none)- WXDのインスタンスID。

  • -t: ENGINE_TYPE (default: none)- エンジンのタイプ (例: Presto).

  • -d: ENGINE_ID (default: none)- エンジンのID。

  • -p:COMPRESSED_FILE (default: /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']
);`