Qlik Training Blog

運用・管理

Qlik Application Automation活用術#S3へCSVを分割配信する

公開日:
更新日:
運用・管理
#Qlik Sense
#Qlik Cloud
#運用者
#開発者

「Qlik Application Automation」とは、GUIで簡単にアプリケーション同士の連携処理を作成できるQlik Sense SaaSの新機能です。今回は、この「Qlik Application Automation」を用いて「Amazon S3へCSVファイルを分割配信する」方法についてご紹介します。

目次

※本記事は2022年11月時点の[SaaS]で作成しています。

Qlik Application Automationとは

Qlik Application Automationは、キャンバス上でアイコンをドラッグ&ドロップするというノーコードの簡単な操作で、Qlik Sense SaaSを含む様々なクラウドアプリ同士の連携処理を作成できます。

CSV分割配信の処理概要


今回は例として、「支社ごとに売上明細を毎日CSVファイルで配信する」という処理を実装します。(テーブルを取得する際の制限が10万セルのため、データ量がオーバーする場合は、このように分割して配信する方法をご検討ください。)

CSV分割配信の設定方法

1) CSVに出力するデータを「テーブル」チャートとして作成する

※グループ(Ex:支社)ごとに分けて作成する必要はなく、テーブルを1つ作成します。

2) Qlik Application Automationで配信の設定をする

1. ハブ画面に戻り、画面右上の[新規追加]から[新しい自動化]を選択します。

2. 検索欄に「S3」と入力後、Enterキーを押下すると、S3に関するテンプレートが表示されます。
今回は「
Store a straight table as a .csv file on Amazon S3」を選択します。

3. いくつかのアイコンを追加していきます。

▼「上書き保存するためファイルを削除する」処理の追加

ファイル名を固定してCSVファイルを出力する(例:毎日「[支社名].csv」というファイル名で上書き保存する)場合、2回目以降はすでに同じ名前のファイルが存在していることで、処理がエラーとなってしまいます。そうならないために、対象のフォルダに出力されたファイルをリスト化し、事前に削除する処理を追加します。

ファイル名を「[日付 ※変数].csv」などで出力し、日々ファイル名が自動的に変わる場合は、この処理の追加は必要ありません。

①画面左の検索欄に「S3」と入力し、「CONNECTORS IN USE」欄に表示された「Amazon S3」を
選択します。
②「List Files」を「Start」アイコンの下にドラッグ&ドロップします。
③「Delete File」を「List Files on Amazon S3」のループ内にドラッグ&ドロップします。

▼「CSVファイルを対象の項目で分割する」処理の追加

①画面左の「CONNECTORS IN USE」欄に表示された「Qlik Cloud Services」を選択します。
②「List Values Of Field」アイコンを「List Files on Amazon S3」のループ後
 (「Create File on Amazon S3」の前)にドラッグ&ドロップします。
③「Create File on Amazon S3」アイコンを「List Files on Amazon S3」のループの中にドラッグ&ド
ロップで移動させます。

▼「分割するCSVファイルに含むデータを、対象のものに絞りこむ」処理の追加

①画面左の「Select Field Value」アイコンを「Create File on Amazon S3」の後にドラッグ&ドロップします。

4. 以下それぞれのパラメータに設定をしていきます。

■ Start

・Run Mode:自動化の実行タイミングの設定をします。
 ※完成までは「Manual」のままにしておき、手動実行することをおすすめします。

■ List Values on Amazon S3

▽[Connection]タブ
 ・対象のAmazon S3への接続設定を行います。
▽[Inputs]タブ
 ・Connector:Amazon S3
 ・Path:対象のパスを指定します。
    例)S3の対象バケット直下:./
      S3のバケット配下の「test」フォルダ内:./test/
 ・Region:バケットのあるリージョンを選択します。
    例)Asia Pacific(Tokyo)
 ・Bucket:「do lookup」から、対象のバケットを選択します。

■ Delete File on Amazon S3

▽[Inputs]タブ
 ・Connector:Amazon S3
 ・Path:以下の通り入力します。
  {$.listFiles.item.path}
  ※「listFiles」の「F」が大文字である必要があります。
 ・Region:バケットのあるリージョンを選択します。
    例)Asia Pacific(Tokyo)
 ・Bucket:「do lookup」から、対象のバケットを選択します。

■ List Values Of Field

▽[Inputs]タブ
 ・App Id:テーブルチャートを作成したアプリを選択します。
      ※「do lookup」から、アプリ名で検索可能です。
 ・Field Name:CSVファイルを分割したい項目(例:支社)を選択します。
      ※「do lookup」から、検索可能です。

■ Create File on Amazon S3

▽[Inputs]タブ
 ・Connector:Amazon S3
 ・Path:出力するフォルダとファイル名を入力します。
     例)[出力フォルダ名]/List Values Of Field>Item>QText.csv
     入力手順
      - [出力したいS3のフォルダ名(例:test)] とその直後に
      「/(半角スラッシュ)」を入力します。
      - 入力欄の右端にある「v」を選択します。
      -「Item in List Values Of Field」を選択します。
      -「qText」を選択します。
      -入力欄の一番後ろにカーソルをあて「.csv」と入力します。
 ・Region:バケットのあるリージョンを選択します。
    例)Asia Pacific(Tokyo)
 ・Bucket:「do lookup」から、対象のバケットを選択します。

■ Select Field Value

▽[Inputs]タブ
 ・App Id:テーブルチャートを作成したアプリを選択します。
      ※「do lookup」から、アプリ名で検索可能です。
 ・Field Name:CSVファイルを分割したい項目(例:支社)を選択します。
      ※「do lookup」から、検索可能です。
 ・Field Value:List Values Of Field>Item>QText
      ※入力手順は上記「Create File on Amazon S3」をご確認ください。

■Get Straight Table Data

▽[Inputs]タブ
 ・App Id:テーブルチャートを作成したアプリを選択します。
      ※「do lookup」から、アプリ名で検索可能です。
 ・Sheet Id:テーブルチャートを作成したシートを選択します。
      ※「do lookup」から、検索可能です。
 ・Object Id:対象のテーブルチャートを選択します。      
      ※テーブルチャートにタイトルをつけると検索しやすくなります。

■Write Line To File on Amazon S3

▽[Inputs]タブ
 ・File:Create File on Amazon S3
 ・Data:Get Straight Table Data>Item
     入力手順
      - 入力欄の右端にある「v」を選択します。
      - 「Item in Get Straight Table Data」を選択します。
      -「item」を選択します。
 ・Mode:CSV
 ・Delimiter:,
 ・File Encoding:UTF-8

■Save And Close File on Amazon S3

▽[Inputs]タブ
 ・File:Create File on Amazon S3

5. 設定が完了したら、画面上部の「Run」で処理を実行します。

6. 処理が成功すると以下のような画面が表示されます。

7. 「Close」でポップアップを閉じます。

8. 必要に応じて「Start」アイコンで処理のスケジュールを設定します。

出力イメージ

Amazon S3に出力されるイメージは以下のとおりです。
※各CSVは支社ごとの情報に絞り込まれた状態になっています。

■Amazon S3 画面

注意事項
Qlik Application Automation利用時の注意事項は以下のとおりです。

  • 1つの自動化につき、同時刻に1回のみ実行可能

  • 並列処理はできない(SparkやHadoopではない)

  • 最大実行時間は1時間

※実行時間が長い処理の場合は分割する

  • 自動化の最大同時実行数は10(ライセンスによって増加)

  • テナント全体で1分間に最大300回のAPIコールが可能

さいごに

Qlik Application Automationを活用し、「Qlik Application Automation」を用いて「Amazon S3へCSVファイルを分割配信する」方法についてご紹介しました。
Qlik Application Automation を活用すると、この他にも様々な処理の自動化が可能です。
ぜひ、ご希望の処理を「Qlik Application Automation」で実現してみてください!

▼その他のQlik Application Automationに関する記事はコチラ↓