概要
Spotfire Server 12.0 LTSからライブラリ圧縮機能が新規追加されました。この機能が利用されている場合、ライブラリに保存されているファイルはgzipで圧縮された形でリポジトリDB内に格納されるようになり、リポジトリDBのディスク容量を節約できます。
ライブラリ圧縮機能は裏で自動的に動作しているため、一般ユーザー(Analyst、Consumer)は意識せずに従来通りにSpotfireを利用いただけます。
動作検証環境
この記事は以下の環境で動作検証を行ったうえで作成しております。
- Spotfire Server 12.0.4 LTS
- Spotfire Analyst 12.0.3 LTS
圧縮率の確認
Spotfire AnalystまたはサードパーティーDBツールを利用してリポジトリDBへ接続して以下のSQL文(PostgreSQLの例)を実行して圧縮前後の合計サイズや圧縮率を取得できます。
※直接リポジトリDBを読み取る際には読み取り専用でのアクセスを強く推奨します。
select
round(sum(ld.content_size)/ 1024 / 1024, 2) as "圧縮前(MB)" ,
round(sum(ld.compressed_content_size) / 1024 / 1024, 2) as "圧縮後(MB)" ,
round(sum(ld.compressed_content_size)/ sum(ld.content_size), 3) as "圧縮率"
from
public.lib_data ld;
例(DBeaverで取得した結果の例です):
また、ライブラリに格納できる各種ファイルのそれぞれの圧縮率は以下のように予想されます。
- DXPファイル:圧縮率小(DXPファイル自身が既に圧縮されているため)
- SBDFファイル:圧縮率大(バイナリ形式でデータが未圧縮のため)
- インフォメーションリンクや各種要素、データソース:圧縮率大(テキストファイルとなっているため)
- その他(データ関数定義、データ接続定義、カラースキームなど):圧縮率大(ほぼテキストファイルとなっているため)
DXPやSBDF以外のファイルのサイズ(ほとんどは数KBや数十KBまで)は小さいためライブラリ圧縮機能により得られるメリットが少ないと思われます。
ライブラリ圧縮機能の有効・無効の設定確認
Spotfire Serverのログファイル(server.log)に出力されている以下の情報からライブラリ圧縮機能が有効または無効を確認できます(INFOログのためデフォルト設定でも出力)。
C:\tibco\tss\12.0.X\tomcat\logs\server.log
INFO 2023-04-28T08:58:30,469+0900 [*Initialization*] ws.library.LibraryManagerImpl: Compressed library content enabled : true
説明:
- true:ライブラリ圧縮機能が有効
- false:ライブラリ圧縮機能が無効
ライブラリ圧縮機能の有効・無効の切り替え
新規インストールした12.0 LTS環境、または旧バージョンからアップグレードしてきた12.0 LTS環境のいずれもデフォルト設定ではライブラリ圧縮機能が有効になっています。
以下の手順でライブラリ圧縮機能を有効・無効に切り替えることができます。
1.Spotfire Server端末内でOS管理者権限でコマンドプロンプトを起動してSpotfire Serverのインストール先フォルダ(下記例)へ移動してください。
C:\tibco\tss\12.0.X\tomcat\spotfire-bin
2.以下のコマンドを実行して現行設定をエクスポートしてください。
config.bat export-config -f
設定内容は同フォルダの下で「configuration.xml」ファイルにエクスポートされます。
引数「-f」は既存ファイルを強制的に上書きすることを指示します。
エクスポートされたファイル「configuration.xml」をテキストエディタで開いて以下の部分(<library><compressed-content><enabled>)の設定値をご確認ください。
- <enable>true</enable>:有効
- <enable>false</enable>:無効
- <compressed-content>が存在しない:有効(<enable>true</enable>に相当)
例:
3.以下のコマンドを実行してライブラリ圧縮機能を無効に設定できます。(設定項目参考資料)
config.bat set-config-prop -n library.compressed-content.enabled -v false
設定変更が上記でエクスポートしたファイル「configuration.xml」に反映されます。
代わりに以下のコマンドを実行してライブラリ圧縮機能を有効に設定できます。
config.bat set-config-prop -n library.compressed-content.enabled -v true
4.以下のコマンドを実行して設定変更後の設定ファイル「configuration.xml」をインポートします。
config.bat import-config -c "disable library compression"
引数「-c」の後ろには任意文字列でコメントを記載します。
5.Spotfire Serverサービスを再起動して設定変更を反映させてください。
サービス再起動後に、有効⇒無効の切り替えを実施した場合にはライブラリ内にあるすべての項目(圧縮済み)が自動的に解凍され、無効⇒有効の切り替えを実施した場合にはライブラリ内にあるすべての項目(圧縮なし)が自動的に圧縮されます。既存項目の解凍または圧縮はバックグラウンドで処理されますが、ファイル数やサイズによって完了までに時間がかかる可能性があります。また、圧縮・解凍処理中にもSpotfire Serverは通常通りに利用できます。
※注意事項
圧縮・解凍処理時には一時ファイルが以下のフォルダに出力されますので、十分なディスク空き容量(ライブラリファイルの最大サイズ×2の目安)が必要です。
C:\tibco\tss\12.0.X\tomcat\temp
ライブラリのエクスポート
ライブラリ圧縮機能が有効になっている環境からライブラリファイルを圧縮あり、または圧縮なしのオプション(エクスポートされたファイルが圧縮されている、または圧縮されない)でエクスポートすることができます。ライブラリ圧縮機能が無効の場合は必ず圧縮なしでのエクスポートになり、従来通りに動作しますので詳細は省略いたします。
・Analyst機能(ツール⇒「ライブラリーの管理」画面、ライブラリ管理権限が必要)では必ず圧縮ありでのエクスポートになります。Analystからは圧縮なしでのエクスポートを行えません。
・Spotfire Server端末内でコマンドプロンプトを起動して、コマンド「export-library-content」を利用してエクスポートを行う場合には圧縮あり、または圧縮なしのオプションを指定して実施できます。
例(圧縮なしでのエクスポート):
C:\tibco\tss\12.0.X\tomcat\spotfire-bin\config.bat export-library-content --include-access-rights=true --item-type=all_items --library-path=/folder/path -f --file-path=exported-filename --user=admin --compressed-content=false
上記例では引数「--compressed-content=false」が指定されているため圧縮なしでのエクスポートになります。
注意事項:
- 引数「--user=admin」はエクスポートの実行Spotfireユーザを指定します。(本例:admin)
- 引数「--compressed-content=false」が未指定の場合は「--compressed-content=true」での動作になります。
- 引数「--compressed-content=true」が指定され、かつライブラリ圧縮機能が有効になっている場合は圧縮ありでのエクスポートになります。
- ライブラリ圧縮機能が無効に設定されている環境からは必ず圧縮なしでのエクスポートになります。
- 引数「--compressed-content=true」が指定されても圧縮されません。
- エクスポートされたファイル(「--file-path引数の指定値」.part0.zip)はコマンドプロンプトからコマンドを実行する際の作業フォルダに格納されます。
ライブラリのインポート
ライブラリ圧縮機能の有効・無効にかかわらず、任意バージョンのSpotfireからエクスポートしたファイルを任意バージョンのSpotfireへインポート(例、11.4⇒12.0、12.0⇒11.4)できます。インポート時には圧縮あり・圧縮なしのオプションは指定できません。
ただし、圧縮の有無が一致しない場合にはインポートされたファイルが正しく動作しないことがありますので要注意です。
下記の表が示している通りに、圧縮ありでエクスポートしたファイルを圧縮機能が無効の環境へインポートした場合にはファイルが正しく動作しません。
エクスポート元の バージョン |
エクスポート元の 圧縮機能設定 |
エクスポート・ オプション |
インポート先の バージョン |
インポート先の 圧縮機能設定 |
動作結果 |
12.0より前 | -(無効) | -(圧縮なし) | すべて | 有効・無効 | 正常 |
12.0 | 無効 | -(圧縮なし) | すべて | 有効・無効 | 正常 |
12.0 | 有効 | 圧縮なし | すべて | 有効・無効 | 正常 |
12.0 | 有効 | 圧縮あり | 12.0 | 有効 | 正常 |
12.0 | 有効 | 圧縮あり | 12.0より前 | -(無効) | 異常 |
12.0 | 有効 | 圧縮あり | 12.0 | 無効 | 異常 |
該当DXPファイルを開こうとする際には下記例のように有効なファイルでないとのエラーが発生し、ファイルが開けません。
Error message:ファイル xxx を読み取ることができません。このファイルは有効な DXP ファイルではありません。
圧縮処理の状況確認
Spotfire ServerにDEBUGログを有効にした場合、圧縮処理が行われている際にはログファイル(server.log)に以下の情報(圧縮処理時間や圧縮前後のサイズなど)が出力されます。
C:\tibco\tss\12.0.X\tomcat\logs\server.log
例:
DEBUG 2023-04-27T15:27:36,023+0900 [*ActivityService*] ws.library.CompressedLibraryContent: Compression complete for item a7c6b7b2-3876-4c21-a038-978cff74a6f7. time taken 5726 ms to compress 124165750, post compression size 88533512
説明:
- 圧縮されたファイルのライブラリID:a7c6b7b2-3876-4c21-a038-978cff74a6f7
- 処理時間:5726 ms
- ファイルサイズ:圧縮前(124165750)、圧縮後(88533512)
参考資料
Spotfire Server 12.0.0 LTSリリースノート
SPOT1670 12.0.0 Library compression
Library items imported into, or exported from, the Spotfire library are now compressed using the gzip format. This change provides more efficient use of library space, whether the library is stored in the spotfire database or in an external storage mechanism. Library compression works with all supported databases.
Spotfire library introduction(製品マニュアル)
By default, library items created by users of Spotfire Analyst or Spotfire Business Author are imported into the Spotfire library, are compressed using the gzip format. Items exported from the library are also compressed using gzip.(※一部抜粋)