こんにちは。Deckです。
Qlik Cloudで先日公開されたばかりの「ライトテーブル」機能、みなさんは使っていますか?
ライトテーブルは分析アプリ上でリアルタイムにデータを入力し、変更を共有できる便利な機能です。
この記事ではライトテーブルを使って作成したデータをQVDに永続化し、他のチャートやアプリから参照できるようにする方法を紹介します。
ライトテーブルって何?どういうことができる?という方は、こちらのライトテーブルのファーストインプレッション紹介記事も読んでみてください。
ライトテーブルの保存先は「ストア」
Qlik Senseの他のデータとは異なり、ライトテーブルを使って作成し更新を行ったデータは「ストア」という領域に保存されています。
「ストア」には以下の特徴や主要な制限事項があります。
- ストアの保存先はスペースに紐づいており、ライトテーブルを作成すると各ストアには自動で「ストアID」が割り振られます
- アプリを別スペースに移動したり、管理スペースに向けて公開すると移動先のアプリでは元のストアを参照できなくなります
- ライトテーブルでデータを保存したストアの保存期限は90日間で、期限が経過した後はデータが削除されます
- ライトテーブルのデータの保存先はあくまで「ストア」であり、Qlik Senseの「テーブル」ではないため、そのままでは他の種類のチャート(棒グラフ、ピボットテーブル、etc)からデータを参照することはできません
これらの制限があるライトテーブルですが、ライトテーブルの外にデータを「持ち出す」方法は大きく分けて「ロードスクリプトからデータをストア読み取り、QVDなどに永続化する」「Qlik Automateと連携し、外部サービスにデータを連携する」という2つのアプローチがあります。
ここではロードスクリプトでストアのデータをQVDに永続化する方法を取ってみましょう。
この記事の続きで具体的な方法を解説します。
手順① ストアIDを確認
では、早速ライトテーブルのデータ取得をはじめてみましょう。
前提条件として、Qlik Cloud上の分析アプリにライトテーブルのオブジェクトを配置していくつかの行でデータを更新済みになっているものとします。
ライトテーブルの編集プロパティから「ストアID」を確認します。

画面右側のボタンをクリックするとクリップボードにストアIDがコピーされます。
ストアIDをコピーした後、メモ帳などにIDを控えておきましょう。
手順② APIキーの作成
ロードスクリプトからストアの内容を取得するにはQlik CloudのAPIキーが必要になるため、この手順で作成を行います。
Qlik Cloudの「管理⇒APIキー」の画面を開き、「新しく生成」ボタンをクリックします(適切なユーザー権限が必要です)。

自分のユーザーが作成したキーの一覧が表示されます。
「新規キーの生成」をクリックします。

作成するAPIキーの説明(名前)と有効期限を設定し、キーを生成します。

表示されたAPIキーを安全な場所に控えておきます。
このキーは再表示できないので、キーを紛失してしまった場合はキーを破棄して再生成が必要です。

手順③ データ接続の作成
続いて、ストアに接続するためのデータ接続を作成します。
分析アプリのデータロードエディタを開き、「データ接続」から「接続の新規作成」をクリックします。

データコネクタの種類として「REST」を選択します。

続いて、REST APIの設定項目を入力します。
URLとして以下の内容を入力します。
https://<テナントID.地域>.qlikcloud.com/api/analytics/change-stores/<ストアID>/changes/tabular-views
テナントIDと地域がわからない場合、あなたがQlik Cloudに接続しているブラウザのURL欄にテナントIDと地域が表示されているのでコピーして使いましょう。


クエリーパラメータとヘッダーとして以下の内容を入力します。
- クエリーパラメータ
- 名前:「Limit」
- 値:「100」
- クエリーヘッダー
- 名前:「Authorization」
- 値:「Bearer <APIキー>」

ページネーション(データ件数が多数あるとき、データの残りの部分を取得するための設定)の項目は次のように設定します。
- ページネーションタイプ:「Next URL」
- 「次のURL」パス:「links/next/href」

上記の内容が入力できたら接続テストを行い、正常に接続できることを確認して作成を完了します。

手順④ スクリプト自動生成
データロードエディタ画面の右側にあるデータ接続から「データを選択」ボタンをクリックします。

テーブル一覧から「data」を選択し、プレビューで表示される項目名を調整してスクリプトを挿入します。

ストアのデータを取り込むためのスクリプトが生成されました。

続いて、分析アプリが配置されているスペースにあるデータ接続の「Storeステートメントを挿入」をクリックします。

保存対象のテーブル名、保存先パス、ファイル名を入力します。

テーブルをQVDに保存するSTORE文が生成されました。
必要に応じて、データの増分ロードや差分を別のファイル名として保存する処理を追加するのもよいでしょう。
![]()
データをロードし、正常に完了することを確認します。

ロード完了後にデータモデルビューアを確認すると、ストアから取得したデータがQlik Senseのテーブルとして認識できていますね。
ここまでの手順で、ライトテーブルにあったデータをQlik SenseののテーブルやQVDとして永続化し、他のチャートオブジェクトやアプリから参照できるようになりました。
裏を返せばリロードしなければライトテーブルのデータがQlik Senseのテーブルに反映されないということなので、シートのUI側でリロードアクションが設定された「データ反映」ボタンなどが必要なケースも考えられます。作成するアプリの利用シーンによって、必要に応じた設定を行いましょう。

まとめ
この記事では「ライトテーブルのデータ保存先であるストアからデータを取得し、Qlik SenseのテーブルやQVDを作成してデータを永続化する」方法を解説しました。
ライトテーブル自体の作成に比べて少々手間がかかりましたが、これでライトテーブルに保存したデータを外に「持ち出す」ことができるようになりました。
この記事が参考になれば幸いです。それではまたお会いしましょう。














