HULFT Square の トランザクション を活用してみた

こちらは HULFT Square の トランザクションを活用する方法について紹介する記事になります。

<目次>

1.概要

1-1. はじめに

HULFT Squareとは、日本発のiPaaS(クラウド型データ連携プラットフォーム)です。
詳しい特徴や機能については、以下のURLをご参照ください。
公式製品ページ:https://www.hulft.com/service/hulft-square

1-2. 記事の目的

皆様がHULFT Squareを利用する際に、
サーバーエラーによる処理中断が発生したり、
中断された処理がファイルやデータベースに反映され困惑したことはございませんか?

この記事を読むことで、以下が理解できるようになります。

  • トランザクションを利用する意義
  • トランザクションを利用する方法

1-3. 作業準備

このページ内の作業を開始するために、以下を準備する必要があります。

  • トランザクション化可能な処理を含むスクリプト
    ※トランザクション化可能な処理とは、ドキュメンテーションに
     以下のような「トランザクション」設定の存在が明記された処理となります。

記事では、以下のスクリプトを利用します。
以下スクリプトのトランザクション化可能な処理は
「出力先」(CSVファイル書き込み)となります。

2. トランザクションを利用する意義

2-1. 概要

この章では、トランザクションを利用する意義を説明します。
トランザクションを利用する意義は、大きく次の点に分かれます。

  • 負荷軽減
  • 処理の一貫性の保持

それぞれの詳細について、以下の項目でご説明します。

2-2. 負荷軽減

規模が大きいスクリプトの実行時等に、画像のようなエラーが発生することがあります。

これは、スクリプトの負荷が高まることにより発生しやすいエラーとなっております。
そのため、トランザクションを利用し、処理の負荷を軽減することで
上記エラーによる処理中断の発生が減ることが期待できます。

2-3. 処理の一貫性の保持

以下の繰り返し処理において、20件目の処理時にエラーが発生した場合を考えます。

トランザクションを実装していない場合、
処理が成功した19件分が記入されたCSVファイルがストレージ上に出力されます。
対して、トランザクションを実装している場合、
処理のロールバックが行われ、ストレージ上にファイルが出力されません。

そのため、「全ての処理に成功した場合のみ実施したい処理」が存在する場合、
トランザクションを実装することで実現することができます。
上記の場合、20件すべてのレコードが正常な場合のみファイルを出力したい場合、
トランザクションを利用することで実現できます。


以上がトランザクションを利用する意義となります。
続いて、実際にトランザクションを利用する手順を説明していきます。

3. トランザクションを利用する方法

3-1. 作業概要

この章では、トランザクションを利用するため、
スクリプトに変更を実施する手順を説明します。

3-2ではスクリプト全体の設定を変更する手順を、
3-3では一部処理のみ設定を変更する手順を記載いたします。

3-2. スクリプト全体に適応する場合の作業手順

1.「1-3. 作業準備」で準備したスクリプトのあるプロジェクトを開きます。

2. 「1-3. 作業準備」で準備したスクリプトを右クリックし、プロパティを開きます。

3. そのスクリプトでトランザクションを開始する場合、
 「トランザクション」タブから「REQUIRESNEW」を選択し、「完了」をクリックします。
 各パラメータの詳細については、
 以下公式ドキュメントの「スクリプトのトランザクション」をご参照ください。
 【公式】トランザクション

4.設定を変更したスクリプト内のコンポーネントのプロパティを確認し、
 「トランザクション」タブが存在する場合は、
 「トランザクション処理を行う」にチェックを付け、「完了」をクリックします。
 記事で利用しているスクリプトでは、
 「出力先」コンポーネントの設定を変更する必要があります。

5. 更新したスクリプトを保存します。

3-3. 特定の処理に適応する場合の作業手順

1.「1-3. 作業準備」で準備したスクリプトを開きます。

2.ツールパレットから「基本」を選択し、「フロー」フォルダの
 「トランザクション」をドラッグしキャンパス上にドロップします。

3.トランザクションを実装したい部分を、「トランザクション」コンポーネントにて
 以下のように挟み込みます。

4.挟み込んだコンポーネントのプロパティを確認し、
 「トランザクション」タブが存在する場合は、
 「トランザクション処理を行う」にチェックを付け、「完了」をクリックします。
 記事で利用しているスクリプトでは、
 「出力先」コンポーネントの設定を変更する必要があります。

5.更新したスクリプトを保存します。


お疲れ様でした!
これでトランザクションを実装できました。

実際のログを確認すると、
以下のようにトランザクションの開始と終了(コミット)が記録されております。


いかがだったでしょうか?
他にも、様々なケースの対処法を紹介していますので、是非目を通してみてください。


<免責事項>
情報の掲載には注意を払っておりますが、掲載された情報の内容の正確性については一切保証しません。また、当サイトに掲載された情報を利用・使用(閲覧、投稿、外部での再利用など全てを含む)するなどの行為に関連して生じたあらゆる損害等につきましても、理由の如何に関わらず自己責任で行う必要があります。

テクバンでは、お客様の業務にある困りごとをETLやBIをはじめ様々なテクノロジーで解決するためのご相談をお受けしております。「HULFT Square」もあわせてご覧下さい。HULFT Squareでデータ分析基盤を構築し、様々な経営判断の材料を可視化していくサービスなども提供してまいります。