スケーラビリティガイド

スケーラビリティガイド

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。


このドキュメントでは、Zoho Analytics On-Premiseを使用して大量のデータを分析する場合の仕様と推奨事項について説明します。

最適なパフォーマンスを維持できるスケーラビリティの上限

アプリケーションの最適なパフォーマンスに影響する要因はさまざまです。次の表は、Zoho Analytics On-Premiseを設定する際に考慮すべき推奨上限を示しています。

要因 推奨上限
1つのテーブル内の最大行数(定期的なデータ取得)

2億行

1つのワークスペース内の最大行数(複数のテーブルに分割) 5億行
アプリケーション内の最大行数(複数のワークスペースに分割)

サーバーの処理能力(コア数とメモリー)によって異なります。1つのワークスペース内の行数が増えても、同じ環境内の他のワークスペースのパフォーマンスには影響しません。ただし、同時接続ユーザー数が増えると、アプリケーションの応答時間が長くなる場合があります。

データを1つのワークスペースに集中させるよりも、複数のワークスペースに分割した環境の方が、優れたパフォーマンスを得られます。

アプリケーションに同時アクセスできる最大ユーザー数 100人のユーザー(登録ユーザーまたは同時接続ゲスト)が、パフォーマンスを低下させることなく同時にアプリケーションを使用できます。同時にアクセスするデータ量が5億行未満の場合、この上限を増やすことができます。

メモ:アプリケーションの同時接続ユーザー数が少ない場合は、パフォーマンスを損なうことなくデータ行数を増やすことができます。

大量のデータを処理する際のパフォーマンスを向上させるには、アプリケーション層とデータベース層を別々の2台のサーバーで実行する分散モードをお勧めします。アプリケーションとデータベースを同じサーバーで実行する場合と比べて、分散モードではパフォーマンスが25%向上します。

次のいずれか1つに該当する場合は、アプリケーションを分散モードで実行できます。

  1. Zoho Analytics On-Premiseを使用して1億行を超えるデータを分析する場合
  2. 任意の時点で50人を超えるユーザーがアプリケーションに同時アクセスすると予想される場合

分散モードのシステム要件

アプリケーション内のデータが最大5億行であることを前提とした場合、スケーラビリティとパフォーマンスを向上させるための最小システム要件は次のとおりです。

アプリケーションサーバーのシステム要件:
  • 32GB RAM
  • 250GB SSD
  • 6コアプロセッサー
  • ダウンロード速度975MB/sec、アップロード速度947MB/sec
データベースサーバーのシステム要件:
  • 128GB RAM
  • 2TB SSD
  • 32コアプロセッサー

さらに大量のデータを扱う場合は、onprem-support@zohoanalytics.comまでお問い合わせください。

分散モードでの実行

別のサーバーにデータベースを設定するには、次の手順を実行します。
手順1:サーバーにZoho Analyticsをインストールします(前のセクションに記載されているサーバー仕様を参照してください)。データベースを別のサーバーに移動するには、Zoho Analyticsアプリケーションを停止します。アプリケーションの停止方法については、こちらのドキュメントを参照してください。

手順2:<Zoho Analytics home>/pgsql フォルダーをコピーし、その内容を2台目のサーバーに貼り付けます。このサーバーがデータベースサーバーになります。Zoho Analyticsアプリケーションをホストするサーバーがアプリケーションサーバーになります。

手順3:アプリケーションサーバーで<Zoho Analytics home>/conf フォルダーに移動し、app.propertiesファイルを開きます。変更を加える前に、ファイルのコピーを別の場所に保存しておくことをお勧めします。<Zoho Analytics home>/conf フォルダー内のファイルを開き、該当する行の値を以下のとおり更新して保存します。

  • zrop.non.txn.cp.max.size = 40
  • zdb.querytable.refresh.skipfilewrite = true

メモ:Linux環境では、さらに<Zoho Analytics home>/confフォルダー内のwrapper_linux.conf ファイルに移動し、該当する行の値を以下のとおり更新して保存します。

  • wrapper.java.initmemory=16384
  • wrapper.java.maxmemory=26624

手順4:同じ<Zoho Analytics home>/conf フォルダー内のserver.xmlファイルに移動し、次の変更を加えて保存します。

  • maxThreads='1200'
  • acceptCount='600'

手順5:<Zoho Analytics home>/confフォルダー内のcustomer-config.xml ファイルに移動します。末尾に次の行を追加して保存します。

  • <configuration name='StartDBServer' value='false'/>

手順6:同じフォルダー内のdatabase_params.conf ファイルを開き、次の行を検索します。

  • url=jdbc:postgresql://localhost:<portnumber>/zreportsdb?OpenSourceSubProtocolOverride=true&charSet=UTF-8

localhostをデータベースサーバーのホスト名またはIPアドレスに置き換えます。

手順7:データベースサーバーに切り替え、<pgsql home>/data フォルダーに移動します。pg_hba.conf ファイルを開き、次の行を入力して保存します。

  • host all all <IP address>/32 md5

<IP address>をアプリケーションサーバーのIPアドレスに置き換えます。たとえば、アプリケーションサーバーのIPアドレスが192.168.1.1の場合、入力内容はhost all all 192.168.1.1/32 md5となります。

手順8:同じフォルダー内のpostgresgl.conf ファイルに移動し、ファイルの末尾に次の行を追加して保存します。

  • listen_addresses = '<IP address>'

<IP address>をアプリケーションサーバーのIPアドレスに置き換えます。

手順9:データベースサーバーの<pgsql home>/dataフォルダーにあるpostgresql.auto.confファイルを開きます。ファイル内で次の項目を検索し、対応する値を以下のとおり更新します。

  • maintenance_work_mem = 2 GB
  • min_wal_size = 4 GB
  • max_parallel_workers_per_gather = 32
  • effective_cache_size = 204800 MB
  • effective_io_concurrency = 0
  • shared_buffers = 32 GB
  • max_wal_size = 20 GB
  • checkpoint_completion_target = 0.9
  • wal_buffers = 32 MB
  • default_statistics_target = 100
  • max_worker_processes = 64
  • max_parallel_workers = 64
  • work_mem = 1 GB

手順10:データベースサーバーの<pgsql home>/binフォルダーに移動し、次のコマンドを実行してデータベースを起動します。

  • Windows環境:set 'PATH=%PATH%;<pgsql home>\lib' pg_ctl.exe -D ..\data -o'-p <portnumber>' start
  • Linux環境:./pg_ctl -D ../data -o'-p <portnumber>' start

データベースを停止するには、次のコマンドを実行します。

  • Windows環境:pg_ctl.exe -D ..\data -o'-p <portnumber>' stop
  • Linux環境:./pg_ctl -D ../data -o'-p <portnumber>' stop

<portnumber>をデータベースが使用するポート番号に置き換えます。初期設定のポート番号は33366です。アプリケーションサーバーの<Zoho Analytics home>/confディレクトリーにあるdatabase_params.confファイルで、このポート番号を確認してください。
メモ:アプリケーションサーバーとデータベースサーバー間で通信できるよう、データベースのポートが開いていることを確認してください。

手順11:これで、アプリケーションサーバーとデータベースサーバーの分離は完了です。2台のサーバー間で推奨される帯域幅は次のとおりです。

  間隔 転送量 帯域幅
アプリケーションサーバー 0.0~10.0秒 1.18GB 1.01GBits/second
データベースサーバー 0.0~10.0秒 1.18GB 1.01GBits/second

手順12:Zoho AnalyticsがインストールされているシステムでZoho Analyticsサーバーを起動します。

  • Windows環境:WindowsサービスからZoho Analytics On-Premiseサービスを起動します。
  • Linux環境:<Zoho Analytics home>/binディレクトリーに移動し、sh app_ctl.sh run コマンドを実行します。

詳しい手順については、こちらのドキュメントを参照してください。これで、リモートデータベースを使用してアプリケーションを実行できます。

メモ:アプリケーションを微調整してパフォーマンスをさらに高めるための推奨事項については、onprem-support@zohoanalytics.comまでお問い合わせください。

パフォーマンスの向上

Zoho Analytics On-Premiseのパフォーマンスを高め、応答時間を短縮するために実施できる追加の対策は次のとおりです。

パフォーマンスの微調整

アプリケーションの応答性を向上させるには、割り当てるヒープメモリーを増やします。<Zoho Analytics home>/conf ディレクトリーに移動し、wrapper.conf ファイル(LinuxまたはMac環境ではwrapper_linux.confファイル)を開きます。「Maximum Java Heap Size (in MB)」という文字列を検索し、wrapper.java.maxmemoryの値を4096に変更します。これにより、Zoho Analyticsのプロセスに4GBのメモリーが割り当てられます。

メモ:サーバー上の使用可能なメモリーをすべてZoho Analyticsに割り当てないでください。32GB、または使用可能なメモリーの半分をアプリケーションに割り当てることをお勧めします。

データのインポートに関するベストプラクティス

Zoho Analyticsにデータをインポートする際は、次のベストプラクティスに従うことでパフォーマンスを向上できます。

ファイルとフィードから

1. 大容量ファイル(500MB超)をアップロードする場合は、CSVファイルとしてアップロードすることをお勧めします。小容量ファイルは、サポートされている任意の形式でアップロードしても、アプリケーションのパフォーマンスには影響しません。

ローカルデータベースとクラウドデータベースから

1. データは、単一の統合された(非正規化された)テーブルにまとめることをお勧めします。通常、データの冗長性を排除して整合性を高めるため、参照元データベースのデータは複数のテーブルに分割されています。ただし、これによりレポートの効率が低下します。SQL結合を使用し、参照元データベースの複数のテーブルに分割されている関連項目のみをインポートしてください。

2. Unixタイムスタンプとして保存されている日付値は、アプリケーションにデータをインポートする前に、人が読み取れる形式に変換してください。Zoho Analyticsで日付形式を変換すると、特に大量のデータを処理する場合に表示速度が低下します。

3. 頻繁に更新される参照元テーブルは、Zoho Analyticsにインポートする前に静的コピーを作成してください。インポート処理中にテーブルが更新されると、データの不一致が発生する可能性があります。稼働中のテーブルではなく静的コピーからインポートすることで、不一致を回避できます。これは、Amazon RDSなどのクラウドデータベースや、頻繁に更新されるその他のデータベースで特に重要です。

4. 必要なデータのみをインポートしてください。たとえば、過去3か月分のレポートを作成する場合は、その期間のデータのみをインポートします。SQLクエリーで「where」句を使用すると、データのインポートをカスタマイズできます。

5. データをインポートする際に、不要な列の選択を解除してください。これにより、不要な列がインポートされなくなり、アプリケーション全体のパフォーマンスが向上します。

6. レポートを表示する頻度と、業務におけるレポートの重要度に基づいて、インポート頻度を指定してください。たとえば、毎月初めにのみアクセスするダッシュボードを1時間ごとに更新する必要はありません。また、複数のクエリーテーブルがあるワークスペースでデータを頻繁に更新すると、クエリーの実行に多くのリソースが使用されるため、効率が低下する可能性があります。営業時間外にデータのインポートを予約すると、リソースをより効率的に利用できます。

7. データのインポートを予約する際、一定間隔で新しく追加されたデータのみをアプリケーションにインポートしたい場合があります。その場合は、[インポート方法]のドロップダウンから[末尾にデータを追加]を選択することをお勧めします。特に大量のデータをインポートする場合に、インポート時間を短縮できます。

メモ:[末尾にデータを追加]を使用するには、前回の同期以降に追加された新しいデータ行のみが表示されるように参照元テーブルを変更する必要があります。この設定を効果的に使用するには、onprem-support@zohoanalytics.comまでお問い合わせください。

数式とクエリーテーブル

1. Zoho Analyticsでは、強力な数式を使用して生データからKPIを算出できます。(数式の作成方法については、こちらをクリックしてください。)ただし、アプリケーション内に多数の数式を作成することは避け、データソース自体に作成することをお勧めします。これにより、数式の計算が繰り返されるのを防ぎ、アプリケーションでのレポートの読み込み時間を短縮できます。

2. クエリーテーブルは、複数のデータソースやテーブルのデータを結合する場合に便利です。Zoho Analyticsではネストされたクエリーを使用できませんが、あるクエリーテーブルの結果を別のクエリーテーブルに含めることは可能です。目安として、このような処理は3つのクエリーまでに制限してください。ネストが3階層を超えると、ネストされたテーブルから作成したレポートの読み込みに時間がかかり、アプリケーションのパフォーマンスに影響します。代わりに、データソース内にネストされたビューを作成し、アプリケーションに直接インポートできます。

レポートとダッシュボード

Zoho Analyticsで各種レポートを作成する際は、以下のヒントを参考にしてパフォーマンスを向上できます。

グラフ

レポートを作成する際は、X軸とY軸のデータポイント数を制限することをお勧めします。これにより、読みやすさが向上し、レポートをすばやく描画できます。

以下のレポートではX軸のデータポイントが多すぎるため、フィルターを使用して減らすことができます。フィルターの作成方法については、こちらをクリックしてください。

2番目のレポートには、[上位5件]フィルターが適用されています。

ピボットビューとサマリービュー

表形式のレポートに多数の列を追加することは避けてください。このようなレポートでは多くの処理が必要となるため、アプリケーションのパフォーマンスが大幅に低下します。代わりに、列数を減らした複数の表形式レポートを作成すると、読みやすさも向上します。また、コンパクトレイアウトのオプションを使用すると、複数の列を1つの列にまとめることができます。通常、表形式のビューでは、テーブルの主キーなど、一意の値が多数含まれる項目の使用を避けることで、パフォーマンスが向上します。ピボットビューの列数を減らすと、より多くの行を表示することもできます。

ダッシュボード

1. KPIウィジェットは、ダッシュボードにKPIを表示するために使用します。ウィジェットの表示指標として数式列を使用すると、ウィジェットの読み込み時間が長くなる場合があります。KPIウィジェットの詳細については、こちらをクリックしてください。

2. ユーザーフィルターを使用すると、閲覧者がレポートやダッシュボードの値を絞り込むことができます。特定のフィルター値を頻繁に使用することが分かっている場合は、その値を初期値に設定できます。初期値を設定すると、表示されるデータ量が制限され、読み込み時間が短縮されます。ユーザーフィルターの詳細については、こちらをクリックしてください。

3. ダッシュボード全体のグラフ、KPIウィジェット、ユーザーフィルターの数を制限してください。ダッシュボードに多数のビューを追加すると、読み込み時間が長くなります。

アプリケーションのメンテナンス

1. 古いデータを削除し、データベースを定期的に整理してください。使用されていないデータは、時間の経過とともに蓄積されがちです。レポート作成の要件に応じて、データ整理のサイクルを設定できます。たとえば、過去3か月分のデータのみを使用してレポートを作成する場合は、四半期ごとに整理を行い、不要なデータを削除します。データの整理にさらに複雑な対応が必要な場合は、onprem-support@zohoanalytics.comまでお問い合わせください。データに適した整理サイクルの作成と維持をお手伝いします。

2. 使用しなくなった一時的なレポート、テーブル、ダッシュボードは必ず削除してください。これにより、アプリケーションのリソースが解放され、パフォーマンスが向上します。

3. 新機能やアプリケーションのアップデートは、四半期ごとに少なくとも2回リリースされます。最新の機能強化や不具合修正を利用できるよう、Zoho Analyticsアプリケーションを定期的にアップグレードしてください。アップデートについては、このページで確認できます。