# 部分的なリロード

フル リロードは、常に既存のデータ モデルのすべてのテーブルを削除することから始まり、次にロード スクリプトを実行します。

情報メモ

部分的なリロードは、スクリプトのロード スクリプトではサポートされていません。スクリプトの詳細については、「[カタログ内のスクリプトの操作](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/ScriptEditor/using-the-script-editor.htm)」を参照してください。

部分的なリロードはこれを行いません。代わりに、データ モデル内のすべてのテーブルを保持し、[Add]、[Merge]、または [Replace] プレフィックスが前に付いた [Load] ステートメントと [Select] ステートメントのみを実行します。他のデータ テーブルはコマンドの影響を受けません。引数 only は、ステートメントが部分的なリロード中にのみ実行され、フル リロード中には無視されることを示します。次の表は、部分的および完全なリロードのステートメントの実行の概要です。

| ステートメント | 完全なリロード | 部分的なリロード |
| --- | --- | --- |
| Load ... | ステートメントが実行されます | ステートメントが実行されません |
| 追加/置換/マージ ロード... | ステートメントが実行されます | ステートメントが実行されます |
| 追加/置換/マージのみのロード... | ステートメントが実行されません | ステートメントが実行されます |

部分的なリロードには、完全なリロードと比較していくつかの利点があります。

* 最近変更されたデータのみをロードする必要があるため、より高速です。データセットが大きい場合、違いは大きくなります。

* ロードされるデータが少ないため、消費されるメモリも少なくなります。

* ソース データへのクエリがより高速に実行され、ネットワークの問題のリスクが軽減されるため、信頼性が向上します。

情報メモ部分的なリロードが正しく機能するためには、部分的なリロードがトリガーされる前に、アプリケーションをデータで開く必要があります。

[リロード] ボタンを使用して部分的なリロードを実行します。詳細については、「[ボタン](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Visualizations/Button/button.htm)」を参照してください。Qlik Engine JSON API を使用することもできます。

スケジュールで部分的なリロードを実行するには、アプリケーションで the 詳細 icon をクリックしてから、 [リロードをスケジュール] を選択します。開いたダイアログ ボックスで、[部分的なリロード] をオンにします。

## 制限事項

部分的なリロード中ではなく、完全なリロード中に存在したテーブルに関するコマンドがある場合、部分的なリロードは失敗します。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/PartialReload.htm)

#### 例

### コマンドの例

```
LEFT JOIN(<Table_removed_after_full_reload>)
```

```
CONCATENATE(<Table_removed_after_full_reload>)
```

この場合、&lt;Table\_removed\_after\_full\_reload&gt; は部分的なリロードではなく、完全なリロードに存在したテーブルです。

### 対処方法

回避方法として、次の IF ステートメントのあるコマンドを囲むことができます:

```
IF NOT IsPartialReload() THEN ... ENDIF.
```

部分的なリロードにより、データから値を削除できます。ただし、これは、内部で維持されるテーブルである個別の値のリストには反映されません。したがって、部分的なリロード後、リストには、最後の完全なリロード以降に項目に存在したすべての個別の値が含まれます。これは、部分的なリロード後に現在存在する値よりも多い場合があります。これは、FieldValueCount() および FieldValue() 関数の出力に影響します。FieldValueCount() は、現在の項目値の数よりも大きい数を返す可能性があります。

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/PartialReload.htm)

#### 例

## 例 1

### ロード スクリプト

例のスクリプトをアプリケーションに追加し、部分的なリロードを実行します。結果を表示するには、結果列に含まれている項目をアプリケーションのシートに追加します。

```
T1:
Add only Load distinct recno()+10 as Num autogenerate 10;      
```

### 結果

Resulting table

| Num | Count(Num) |
| --- | --- |
| 11 | 1 |
| 12 | 1 |
| 13 | 1 |
| 14 | 1 |
| 15 | 1 |
| 16 | 1 |
| 17 | 1 |
| 18 | 1 |
| 19 | 1 |
| 20 | 1 |

### 説明

ステートメントは、部分的なリロード中にのみ実行されます。「distinct」プレフィックスが省略されている場合、[Num]フィールドの計測は、後続の部分的なリロードごとに増加します。

## 例 2

### ロード スクリプト

サンプル スクリプトをアプリケーションに追加します。フル リロードを実行し、結果を表示します。次に、部分的なリロードを実行し、結果を表示します。結果を表示するには、結果列に含まれている項目をアプリケーションのシートに追加します。

```

T1:
Load recno() as ID, recno() as Value autogenerate 10;

T1:
Replace only Load recno() as ID, repeat(recno(),3) as Value autogenerate 10; 
```

### 結果

Output table after full reload

| ID | Value |
| --- | --- |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5 | 5 |
| 6 | 6 |
| 7 | 7 |
| 8 | 8 |
| 9 | 9 |
| 10 | 10 |

Output table after partial reload

| ID | Value |
| --- | --- |
| 1 | 111 |
| 2 | 222 |
| 3 | 333 |
| 4 | 444 |
| 5 | 555 |
| 6 | 666 |
| 7 | 777 |
| 8 | 888 |
| 9 | 999 |
| 10 | 101010 |

### 説明

最初のテーブルは完全なリロード中にロードされ、2番目のテーブルは部分的なリロード中に最初のテーブルを置き換えるだけです。

## 詳細を見る

* [Load](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)
* [Add](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Add.htm)
* [マージ](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Merge.htm)
* [Replace](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Replace.htm)