Upgrade to Pro — share decks privately, control downloads, hide ads and more …

High Performance Unload for Db2をみてみよう/20250729-...

High Performance Unload for Db2をみてみよう/20250729-hpu-dojo

2025/07/29(火)オンライン開催
High Performance Unload for Db2をみてみよう
https://ibm-developer.connpass.com/event/363401/
の資料です。

【内容】『High Performance Unload for Db2をみてみよう』

Optim High Performance Unload for Db2(HPU)は、Db2 LUWのデータを高速にアンロードできる有償のオプション製品です。 当セッションでは、HPUの概要を説明した後に、実際にHPUを使用したデモをお見せします。

今回のデモに使用する製品:

・Optim High Performance Unload for DB2 for Linux, UNIX and Windows V12.1
・Db2 for Linux V12.1/ V11.5
・RDS for Db2

当セッションでは以下のデモを実施予定です:

・Db2データを Db2のEXPORTよりも数倍速くアンロード
・Db2バックアップ・イメージから、テーブル・データの抜き出し
・オープン・ファイル・フォーマット(Parquet)にアンロード
・データ移行:アンロード・データをS3に移動させて、RDS for Db2にデータ投入

Db2データのアンロードに、高速・便利なHPUを見てみましょう!

Avatar for Mayumi Hirano

Mayumi Hirano

July 29, 2025
Tweet

More Decks by Mayumi Hirano

Other Decks in Technology

Transcript

  1. IBM Database Dojo 2025 High Performance Unload for Db2を みてみよう

    平野 真弓 Mayumi Hirano 日本アイ・ビー・エム株式会社 テクノロジー事業本部 西戸 京子 Kyoko Nishito
  2. Optim High Performance Unload(以降HPU)は スタンドアロンでコマンドラインなどから Db2のデータを高速にアンロードするツール(※別料金のユーティリティー製品) – Db2の稼働中でも、Db2の物理ファイルにアクセスしデータを抜き出すことが可能 – 様々なDBや表に対応

    • データベース・パーティショニング(DPF)、pureScaleデータベース • Natie Encryption(暗号化)データベース • パーティション表、カラム・オーガナイズ表、サマリー表、データサンプリング、etc. – バックアップ・イメージからのアンロードも可能(Unloads from : full, incremental, delta, merge backups) Files Tape Named pipe HPU Files Tape Named pipe 3
  3. HPUとDb2 EXPORTユーティリティの比較 HPUは多くのケースで、Db2 のEXPORTよりも性能の観点からメリットがある – HPUは、基本的にDb2エンジンを介さず、ディスクから直接データファイルを読み込む • テーブルスペース または バックアップ・ファイル・イメージからの読み込み

    – 更に性能を向上させるために、 HPUでは、並列処理、並列I/O、複数CPUの使用ができる – 制御ファイルに、複数SELECTステートメントや複数ファイルのフォーマットを指定した場合、 HPUはその回数分、Db2のデータを読み込むわけではなく、一度だけデータを読み込む DB2 Server db2 Container Buffer pool HPU SQL Engine File Manager Request Data db2agent db2pfchr ※注)HPUネイティブモード(Db2 NO)では、索引は使用せず、WHERE句による絞り込み条件のみサポートされます。 アンロードの対象データが表に存在するデータの一部のみである場合、HPUによる全件スキャンと、Db2のSQLエ ンジンを利用した抽出のどちらが効率がよいかは検討が必要です 4
  4. デモ・シナリオ: 1. Db2データを Db2のEXPORTよりも数倍速くアンロード 2. バックアップ・イメージから1つのテーブルを簡単に抜き出し 3. オープン・ファイル・フォーマット(Parquet)にアンロード 4. データ移行:アンロード・データをS3に移動させて、RDS

    for Db2にデータ投入 今回の使用する製品: • Optim High Performance Unload for Db2 for Linux, UNIX and Windows V12.1 • Db2 for Linux V12.1/ V11.5 • RDS for Db2 Demo High Performance Unload for Db2をみてみよう 5
  5. High Performance Unload - シナリオ 1 Db2データを Db2のEXPORTよりも数倍速くアンロード Db2 データ

    ベース・ マネージャー アプリケーション HPU 直接アクセス 処理時間 n分 処理時間 n時間 コンテナ ファイル Db2 EXPORT コマンド connect to sample2; export to exp_salesdata.del of del select * from hpudemo. sales_data; connect reset; HPU Control File: GLOBAL CONNECT TO SAMPLE2; UNLOAD TABLESPACE FLUSH BUFFERPOOLS YES (※1) LOCK YES (※1) DB2 NO (※2) SELECT * FROM hpudemo. sales_data; OUTFILE ("hpu_ salesdata.del" REPLACE) FORMAT DEL; VS (※1)FLUSH BUFFERPOOLS YES LOCK YES:このオプションは安全で整合したアンロードを保証するので、推奨されます。 アンロードが進行中であることが Db2 に通知さ れ、表とその従属関係に対して静止共有ロックが取得され、アンロードが終了するまでロックが保持されます。 関連したバッファー・プール・ページはアンロードの開始に先 立ってディスクにフラッシュされ、アンロードが完了するまで表に対する変更は許可されません (※2)DB2オプション:HPUで処理できないSELECTをDB2に渡すかどうかを指定 NO:HPUで処理できなければ失敗させる YES:HPUで処理できなければDBエンジンで処理 FORCE:必ずDB2で処理させる 6
  6. バックアップ・イメージから1つのテーブルを簡単に抜き出し データベースまたは表領域全体をリストアすることなく、 単一の表をリストア GLOBAL CONNECT TO SAMPLE2; UNLOAD TABLESPACE DB2

    NO USING BACKUP DATABASE SAMPLE2 FROM "/home/db2inst2/work"; SELECT * FROM ORG; OUTFILE("org_backup.del") FORMAT DEL; High Performance Unload - シナリオ 2 ※注)HPUによるオンライン・バックアップからのアンロードでは、整合性面での考慮点があります。 https://www.ibm.com/docs/ja/iohpufdflu-and-w/12.1.0?topic=data-recovering-backup 制限事項 : Optim High Performance Unload はバックアップに存在するテーブルをそのまま抽出します。 フル・オフライン・バックアップからデータを取り出す場合、データは完全で整合した状態になります。 オンライン・バックアップからデータを抽出すると、データに重複レコードや欠落レコードが含まれる場 合があります。これは、 Optim High Performance Unload バックアッププロセス中にデータベースに変 更が加えられたかどうかを判断するために、 Db2® ログファイルを検索しないためです。 7
  7. オープン・ファイル・フォーマット(Parquet,ORC) にアンロード Db2のデータをオープン・ファイル・フォーマットであるParquet形式に アンロードして、オブジェクト・ストレージに保管 ➢ S3上で. >S3 Select * from

    xxx ➢ データレイクハウス watsonx.dataへ受け渡し ➢ Db2 Warehouse SaaSのデータレイクテーブルに取り込み など、利用方法は自由自在! GLOBAL CONNECT TO SAMPLE2; UNLOAD TABLESPACE SELECT * FROM HPUDEMO.SALES_DATA; OUTFILE("sales_data.parq") LOADFILE("sales_data.parq_loadfile") LOADDEST(OBJECT_STORAGE AWS_S3 "s3_cli_alias") FORMAT PARQUET; High Performance Unload - シナリオ 3 ※注)Parquetファイルを生成するための変換は、 Python ライブラリである PyArrow を使用して実行されます。 Parquet >S3 Select * Db2 Warehouse watsonx. data 8
  8. データ移行:アンロード・データをS3に移動させて、RDS for Db2にデータ投入 既存Db2からのデータ移行方法のひとつとして、HPUで高速アンロード したデータをS3に移動して、他Db2へのデータ投入ができます GLOBAL CONNECT TO SAMPLE1; UNLOAD

    TABLESPACE LOCK NO QUIESCE NO SELECT * FROM ORG; OUTFILE("org.del") LOADFILE("org.s3_loadfile") LOADDEST(OBJECT_STORAGE AWS_S3 "s3_cli_alias") FORMAT DEL; High Performance Unload - シナリオ 4 Amazon RDS for Db2 ※注)HPUを使わずに、Db2のEXPORTユーティリティや外部表でも、ファイルの書き出し先をS3に指定することができます。 参考Qiita記事「Amazon RDS for Db2: S3からデータをロード(既存Db2からの移行)」 https://qiita.com/nishikyon/items/2d1052c626bddb6637de 9
  9. まとめ 実施したデモ・シナリオ: 1. Db2データを Db2のEXPORTよりも数倍速くアンロード 2. バックアップ・イメージから1つのテーブルを簡単に抜き出し 3. オープン・ファイル・フォーマット(Parquet)にアンロード 4.

    データ移行:アンロード・データをS3に移動させて、RDS for Db2にデータ投入 今回の使用した製品: • Optim High Performance Unload for Db2 for Linux, UNIX and Windows V12.1 • Db2 for Linux V12.1/ V11.5 • RDS for Db2 10
  10. • Optim High Performance Unload for DB2 for Linux, UNIX

    and Windows マニュアル • https://www.ibm.com/docs/ja/iohpufdflu-and-w/12.1.0 • YouTube(英語) • https://www.youtube.com/watch?v=KAyGAMdKx9Y 資料 11