---
title: 【Qlik Sense】部分的なリロード（Partial Reload）
description: Qlik Senseにおける「通常リロード（Full Reload）」とは異なるリロード方法をご存知でしょうか。今回は新たなアプローチ方法「部分的なリロード（Partial Reload）」についてご紹介いたします。
---

[Qlik Senseナレッジ - INSIGHT LAB](https://knowledge.insight-lab.co.jp/qliksense)

# [【Qlik Sense】部分的なリロード（Partial Reload）](https://knowledge.insight-lab.co.jp/qliksense/-qlik-sense-partial-reload)

 作成者: [Shine](https://knowledge.insight-lab.co.jp/qliksense/author/shine)｜2024年5月31日

## はじめに

　Qlik Senseにおける「通常リロード（Full Reload）」とは異なるリロード方法をご存知でしょうか。今回は新たなアプローチ方法「部分的なリロード（Partial Reload）」についてご紹介いたします。

## Partial Reload - 概要編 -

　部分的なリロード（Partial Reload）は、通常リロード（Full Reload）のように既存のデータモデルをすべて新規に作成するのではありません。

　データモデル内の全テーブルを保持し、Replace、Add、またはMerge接頭辞が付いたLoad文を利用して、指定された部分的なリロードのみを実行します。

　これにより、データの変更分のみを追加、更新、または削除することが可能となります。

 

###  Partial Reload - 利点 - 

- **高速処理**：変更されたデータのみをロードするため、処理速度が向上します。
- **メモリ効率**：ロードされるデータ量が少なくなるため、メモリ消費が抑えられます。
- **ネットワーク負荷軽減**：ソースデータへのクエリがより高速に実行されます。

 

###  Partial Reloadで利用できるスクリプト

　Partial Reloadで利用できるスクリプトには以下のものがあります。

| **スクリプト** | **内容** | **基本構文** |
| --- | --- | --- |
| Add | 指定したテーブルにレコードを追加可能。 フルリロードの場合、通常のLoad文として機能する。 Concatenateが使用された場合や同じ項目情報を持つテーブルが存在する場合、既存テーブルに追加される。 ※重複チェックは実施されない。 | Add \[only\] \[Concatenate (tablename)\] ... |
| Replace | ロードされたテーブルを別のテーブルに置き換えることが可能。 フルリロードの場合、通常のLoadステートメントとして機能するが、Drop Tableが実行される。 | Replace \[only\] \[Concatenate \[(tablename)\]\] … |
| Merge | ロードされたテーブルに、insert、update、deleteといった３つのオプションを適用することが可能。 | Merge \[only\] \[(SequenceNoField)\] on ListOfKeys \[Concatenate \[(tablename)\]\] … Operation, —-, —-, SequenceNoField：操作の順序を定義するシーケンス番号 ListOfKeys：キーを指定する項目名 Operation：insert, update, deleteを指定 |
| Only | ステートメントが部分的なリロード中にのみ実行される必要がある場合に記載する。 フルリロード中は無視される。 | Add Only … Replace Only … Merge Only … |

 

### Full Reload vs Partial Reload

　以下はFull Reload（通常リロード）とPartial Reload（部分的なリロード）の比較です。

| **Statement** | **Full Reload** | **Partial Reload** |
| --- | --- | --- |
| Load ... | 〇 | ✖ |
| Add / Replace / Merge Load ... | 〇 | 〇 |
| Add / Replace / Merge **Only** Load ... | ✖ | 〇 |

 

　〇：実行される

　✖：実行されない

　【注意点】Partial Reloadを明示的に記載するためには、Only関数を使用します。

 

### Partial Reload - IsPartialReload()関数 -

#### ● IsPartialReload()

> 現在のリロードが、
> 
> 　Partial Reload（部分的なリロード）の場合、True(-1)
> 
> 　Partial Reload以外の場合、False(0)
> 
> を返してくれます。

以下のように、スクリプトがPartial Relaodかどうかを判定することができます。

`//Partial Reloadの処理であることを以下に明示的に記載`  
`If(IsPartialReload() = True()) then`  
`    //Partial Reloadの処理を以下に記載`  
`    …`  
`End if;`

【注意点】Partial Reloadのみ有効なスクリプト（Only）をFull Reloadの処理に対して記載しても無視されてしまいます。

 

## Partial Reload - 活用編 -

　続いて、Partial Reloadの具体的な活用方法をご紹介します。Replace、Add、またはMerge接頭辞が付いたLoad文を使用します。

 

### 1. Replace - テーブルを置換する -

　Replaceを使用して、テーブル名は一緒ですが、データを入れ替えることが可能です。

例 1-1）Full Reloadの場合

 

例 1-2）Partial Reloadの場合 （Replace Only）

 

### 2. Add - 既存テーブルへ行を追加する -

　Addを使用して、既存テーブルへ行を追加することが可能です。

【注意点】重複チェックが実施されないため、データ重複の可能性があることに注意が必要です。

例 2-1）Full Reloadの場合

例 2-2）Partial Reloadの場合 （Add Only）

 

### 3. Merge - 既存テーブルに対する複雑な処理 -

　Mergeを使用して、別のテーブルを既存テーブルに対して挿入、更新、削除を行うことが可能です。

**　　● MergeスクリプトのOperation **

**　　　Merge**はLoad文の最初の項目に、Operationという項目名が必要です。

　　Operationには以下３つの操作を指定できます。今回は特に"Update"についてご紹介します。

> **Insert**：挿入
> 
> **Update**：更新
> 
> **Delete**：削除

#### ● Update - 既存テーブルの行を更新する -

　Merge、かつUpdateというOperationを使用することで、既存テーブルの行を更新することが可能です。

例 3-1）Full Reloadの場合

例 3-2）Partial Reloadの場合（Merge Only）

 

## Partial Reload - 実践編 -

　Qlik Senseにて "Replace" を使用し、Full Reload および Partial Reloadそれぞれの挙動を確認してみます！

 

#### ● Qlik Sense - ロードスクリプト -

　ロードスクリプトは下図になります。下図のように、Table1について IsPartialReload()関数 を使用してFull ReloadとPartial Reloadの処理を区別しています。

目的としては、Partial Reloadにより、Table1が ID = {106, 107, 108} のデータに置き換わるかどうかを確認します。

 

#### ● Qlik Sense - シート (Full Reload バージョン) -

　以下は、Full Reload（通常リロード）を行った際のQlik Senseシート画面になります。

テーブルでデータを確認すると、ID = {101, 102, 103, 104, 105}のレコードが追加されていることがわかります。

#### ● Qlik Sense - シート (Partial Reload バージョン) -

　さて、**Partial Reload**は一体どこで、どのように実行するのでしょうか。

それは...　チャートの『ボタン』になります！

##### 〇 設定方法

1. 1. 1. ボタンのアクション ”データのリロード" を選択する
            2.  ”部分的なリロード”に✅を入れる

　　　（※最終イメージとしては下図のようになります。）

上記実装したボタンを押下することで、Partial Reloadが実行されます。

実際に実行してみます！　下図はPartial Reload実行後の結果です。

Table1が ID = {106, 107, 108} のレコードに置き換わったことが確認できます。

 

## おわりに

　通常リロードでは、多くのメモリが消費され、かつロードに時間がかかってしまいます。そんなときに『部分的なリロード（Partial Reload）』を有効に活用していきましょう！

　この情報が少しでもお役に立てれば幸いです。

 

#### 参考文献

1. 部分的なリロード | Windows 用 Qlik Sense ヘルプ（[https://help.qlik.com/ja-JP/sense/February2024/Subsystems/Hub/Content/Sense\_Hub/Scripting/ScriptPrefixes/PartialReload.htm）](https://help.qlik.com/ja-JP/sense/February2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/PartialReload.htm%EF%BC%89)
2. Qlik Tips: 部分的なリロード (Partial Reload)の実践 ｜Qlik Japan - YouTube（[https://www.youtube.com/watch?v=F1SMm9TWJJg）](https://www.youtube.com/watch?v=F1SMm9TWJJg%EF%BC%89)<https://help.qlik.com/ja-JP/sense/February2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/PartialReload.htm%EF%BC%89>

 

 

[完全な記事を表示](https://knowledge.insight-lab.co.jp/qliksense/-qlik-sense-partial-reload)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Shine"
  },
  "dateModified" : "2024-05-31T03:17:15.380Z",
  "datePublished" : "2024-05-31T03:17:15Z",
  "headline" : "【Qlik Sense】部分的なリロード（Partial Reload）",
  "image" : {
    "@type" : "ImageObject",
    "height" : 126,
    "url" : "https://download.insight-lab.co.jp/hubfs/FullvsPartial.png",
    "width" : 1107
  },
  "mainEntityOfPage" : "https://knowledge.insight-lab.co.jp/qliksense/-qlik-sense-partial-reload",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60,
      "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
      "width" : 60
    },
    "name" : "QlikSenseナレッジ"
  }
}
```