Yellowfin 選定ガイド
Yellowfinは、エンタープライズアナリティクス、および組み込みアナリティクス両方のユースケースで使用され、独自のアナリティクスアプリケーションを構築します。本ガイドを活用することで、Yellowfinが要件に対して技術的に最適であるかどうかを確認できます。
導入概要
-
概要
Yellowfinはどのような導入オプションをサポートしますか?
Yellowfinはプラットフォームに依存しないため、どこにでも導入できます。これにはオンプレミス、またはクラウドが含まれます。JVMをサポートするOSであれば、どれを選択しても構いません。また、構成データベースには幅広い選択肢があります。
数多くの顧客が、Dockerのようなコンテナ技術を使用してYellowfinを導入することを選択しています。
Yellowfinではどのクラウドプロバイダーを使用できますか?
YellowfinはAWS、Azure、GCPなどの主要なクラウドプロバイダーと連携しています。
-
環境
Yellowfinはどのプラットフォームで動作しますか?
YellowfinはWindows、Linux、またはMac OSXベースのデスクトップ、またはノートPCにインストールをして評価やトレーニングを行い、Windows、Linux、Mac OSXベースのサーバにインストールをして評価、トレーニング、および運用を行うことができます。
さらに詳細な情報は、こちらを参照してください。
-
データベース
Yellowfinは構成データをどこに保存しますか?
構成データはYellowfin データベースに保存され、このデータベースは標準インストールプロセスの一部として作成されます。インストールでは、このデータベースのロケーション、タイプ、接続の詳細を定義します。
データベースにはどのような選択肢がありますか?
Yellowfinの構成は、様々なデータベースでホストできます。
-
クラウド&オンプレミス
Yellowfinはどのようなクラウドプラットフォームをサポートしていますか?
YellowfinはAWS、Azure、GCPなどの主要なクラウドプロバイダーと連携しています。
オンプレミスに導入できますか?
YellowfinはOSに依存せず、自己ホスト型であるため、どのような環境にも導入できます。これには、プライベートな内部ネットワーク上の物理サーバから、AWS ECSやKubernetesのような高度に動的なクラウドコンテナサービスまでが含まれます。
YellowfinはDockerやコンテナ化をどのようにサポートしていますか?
Dockerの導入では、コンテナ自体がクラスタノードとして動作する個別のアプリケーションサーバを保持し、静的な構成データベース(AWS RDSなどに配置されることが多い)と通信します。アプリケーションは、追加のコンテナを導入することで、水平方向にスケーリングされます。
-
地域ごとの導入&同期
Yellowfinを地理的に異なる地域に導入するにはどのようにすればよいですか?どのようなモデルがサポートされていますか?
いくつかの異なる実装モデルを使用することで、Yellowfinをグローバルで導入することができます。
ユーザーやグループのローカル管理を可能にするために、Yellowfinの個別のインスタンスを地域に展開して、同じレポートコンテンツへのアクセスを可能にすることができます。これには、インスタンス間でのコンテンツの同期が必要になります。ローカルのシステム管理者は、ローカルユーザーとその共有コンテンツへのアクセスを管理できます。
Yellowfinの単一のグローバルインスタンスを、中心となる地域に導入し、個別の地域エントリーポイントも持つことができます。各エントリーポイントは地域内の静的コンテンツをキャッシュし、動的コンテンツのリクエストのみをサーバに転送します。(同じデータセンター内でクラスタ化できる)単一のインスタンスを中央に持つことで、コンテンツの移行をする必要がなく、比較的簡単にアップグレードすることができます。このモデルのグローバルエントリーポイントは、特定のプロキシおよびキャッシュルールを持つwebサーバを使用して実装できます。位置ベースのDNSサービスは、共通のURLを使用する場合、ユーザーを最も近い地域のエントリーポイントに誘導できます。
また、地域に配置されたアプリケーションサーバと、Yellowfin リポジトリデータベースのローカルコピーを使用して、Yellowfinのグローバルクラスターを実装することもできます。この導入方法は、複数書き込みデータベースクラスターに依存し、Yellowfinの分散ノードが同じリポジトリデータベースを共有できるようにします。Yellowfinは、このタイプの導入のために、TiDBリポジトリデータベースをサポートしています。
-
国際化
Yellowfinは多言語展開をサポートしていますか?
Yellowfinは、異なるユーザーが同じインスタンス内で特定の言語を使用できる多言語展開をサポートしています。ユーザーの言語選択はインターネットブラウザから、またアプリケーション内のプロファイル設定により継承できます。
Yellowfinは2バイト文字をサポートしていますか?
Yellowfin インターフェースは、2バイト対応です。また、コンテンツをPDFなどにエクスポートする際に特定のフォントセットを選択して、読みやすいコンテンツが生成されるようにすることもできます。
Yellowfinはどの言語に対応していますか?
現在、次の言語をサポートしています。
- 英語
- スペイン語
- フランス語
- 日本語
- 簡体字中国語
- ドイツ語
- ブラジルポルトガル語
- イタリア語
- オランダ語
ユーザーが希望する言語に基づいてコンテンツを動的に翻訳することはできますか?
Yellowfinには、コンテンツをアプリケーションインスタンスがサポートする言語に翻訳するメカニズムがあります。これにより、レポートタイトル、レポートの説明、フィールド名
などのコンテンツメタデータを、ユーザーの希望する言語で表示できます。このコンテンツの翻訳は、一括エクスポート・インポート処理で実行できます。
ユーザーの地域に合わせて日付形式を動的に変更できますか?
できます。日付形式は、地域や個人の好みに合わせて異なる形式で表示できます。
ユーザーのプロフィールに基づいて単位を動的に変更(例:マイルからkm)することはできますか?
できます。メタデータレイヤーに動的フィルターを作成し、テーブルに適用することで、ユーザーに応じて、好みの形式でメトリック(数値)を表示できるようになります。
これは、次のような場合に使用できます。
個人の好みの通貨で売上を変換する
好みの形式で量や距離を変換する
適用可能な地域ごとに設定できるYellowfinの要素は何ですか?
Yellowfinはデータソース、レポート、ダッシュボード、ビューメタデータを、サポートしている言語に翻訳することができます。その他の地域設定では、ユーザーの地域に基づきタイムゾーン、日付、時刻の形式を設定できます。
-
高可用性
高可用性を実現するためにYellowfinをクラスタ化するにはどのようにすればよいですか?
Yellowfinは、単一の共有構成データベースのうえに複数のアプリケーションサーバを重ねることで、クラスタ化できます。アプリケーションノードは相互に通信できる限り、どこにでも配置できます。また、各クラスタノードを特定のタスクを実行するように構成して、サーバをシグナルやブロードキャストなどの高リソースプロセス専用にすることもできます。
さらに詳細な情報は、こちらを参照してください。
Yellowfinのクラスタ化については、こちらを参照してください。
Yellowfinのディザスターリカバリーについては、こちらを参照してください。
ライセンスはどのように機能しますか?
Yellowfinは単一のライセンスファイルを提供し、アプリケーションのUIを介してアップロードされます(WSを介して実行することもできます)。ライセンスが適用されると、ライセンスパラメーターが共有構成データベースに保存されます。新しいアプリケーションノードがそのデータベースに接続すると、格納されているライセンスと比較されます。
-
アップグレード
Yellowfinはどのくらいの頻度で新しいバージョンをリリースしていますか?
Yellowfinは四半期ごとにアプリケーションの「マイナー」アップデートをリリースし、適宜「メジャー」バージョンアップデートをリリースしています。マイナーリリースには小さな改善や変更、修正が含まれていますが、メジャービルドでは、新機能や再実装された機能の形式で大きな変更を追加しています。
Yellowfinはどのようにアップグレードを管理しますか?
セルフホスト型ソリューションとして、アップグレードのスケジュール設定や管理はユーザーが行います。アップグレードを実行するには、Yellowfin サポートサイトから実行可能なアプリケーションをダウンロードし、そのアプリケーションを現在インストールされているYellowfinに指定します。これにより、必要なスキーマやアプリケーション更新が自動的に実行されます。
アップグレード管理のベストプラクティスは何ですか?
アップグレードを実行する場合は、まずは開発環境でプロセスをテストすることを推奨します。Yellowfinのアップグレードは一般的にスムーズですが、変更を検証したり、一般ユーザーコミュニティへのリリース前に新機能へのアクセスを制限することができます。
また、必要に応じて簡単にロールバックできるように、最初に構成データベースとアプリケーションサーバの両方をバックアップすることも推奨します。
24×7のクラスタ環境を使用している場合、システムを停止することなくアップグレードするにはどのようにすればよいですか?
シングルノードサーバでは、アップグレード前にYellowfin アプリケーションサーバをシャットダウンする必要があります。ただし、クラスタ環境では、アプリケーションノード間で更新をロールアップすることで、ダウンタイムなしにアップグレードすることができます。各バージョンにひとつずつ、構成データベースのコピーを2つ保持することで、ユーザーが気付かないうちにノードを確実にオフラインにし、新しいバージョンに移行・アップグレードすることができます。
-
デバッグ&監査
自己管理型のソリューションとして、顧客は、インスタンス内で何が起きているのかを明確にし、問題が発生した場合にどこを調べるべきかを把握する必要があります。これを容易にするために、Yellowfinは、アプリケーションの内外でいくつかのリソースを提供しています。
使用状況の監視
Yellowfin 構成データベースは、アプリケーション内に現在存在するコンテンツやユーザーだけでなく、発生したイベントの記録も保持します。このデータベースにクエリーを発行することで、アプリケーションがどのように使用されているかを明確に把握できます。
これを実現するために、Yellowfinは、インポート可能な「監査コンテンツ」のセットを提供しています。これは基本的に、Yellowfinの典型的なシステム管理者が持っているであろう最も一般的な質問に答えるようにデザインされ、事前構築されたビューとレポートの集合です。
- どのレポートが最も人気があるか
- 今日は何人のユーザーがログインしたか
- 最近作成および削除されたコンテンツは何か
- 特定のユーザーがアクセスしている(していた)テーブルおよびカラム(列)はどれか
機密データがありますが、ユーザーがアクセスしたすべてのデータの記録を取得することはできますか?
デフォルトでは、Yellowfinはレポートデータを保存しません。しかし、実行されたすべてのレポートの結果セットを、どのユーザーがいつ実行したかの記録とともに保存し、すべてのデータトランザクションの明確な監査履歴を提供するようにYellowfinを設定することは可能です。
Yellowfin サーバをスケールするには、どのサーバメトリック(数値)を監視する必要がありますか?
Yellowfin アプリケーションをスケールする場合は、次の2つの主なメトリック(数値)を監視する必要があります。
CPU:Yellowfinの各プロセスはスレッドを消費するため、任意の時間に実行できるプロセスの数は、CPUで使用可能なスレッドの数により決定されます。アプリケーション内のユーザー数が多いほど、そのアクティビティにより消費されるスレッド数も多くなります。これは、サーバのCPU使用率に直接反映されます。CPU使用率が限界に近づくと、追加のリクエストは遅延し、パフォーマンスが急激に低下します。
メモリ:Yellowfinの多くのプロセスは、処理されるデータのサイズと、そのデータに対して実行する必要のある作業量に比例して、アプリケーションメモリを消費します。YellowfinがJVMに割り当てられるメモリの限界に近づくにつれて、追加のプロセスのためにスペースを解放しなくてはいけなくなり、最終的にはクラッシュする可能性があります。
パフォーマンスの監視
Yellowfinのパフォーマンスは、いくつかの異なる要素で構成されているため、パフォーマンスを監視するには、これら各コンポーネントを個別に確認する必要があります。
Yellowfinのレポートはどのくらい速いですか?
主にダイレクト読み取りアプリケーションとして、Yellowfinレポートの速度は、大きく2つの要因に基づいています。
1. クエリーにかかる時間
各レポートの実行は、少なくともひとつのデータベースクエリーで構成され、データベースがクエリーの処理にかかる時間は、Yellowfin内での表示にかかる時間に直接影響します。
2. 結果セットの大きさと、その結果セットで発生する後処理の量
高度な関数やグラフなど、クエリーが戻された後のレポートの後続の処理は、Javaで実行され、そのレポートの複雑さに応じて適切なサーバ上のリソースを消費します。
実行中のレポートを監視するにはどのようにすればよいですか?
Yellowfinの監査コンテンツは、レポートの使用状況を監視および最適化するために使用できる便利なレポートが含まれています。これには、実行されたすべてのレポートのレコードとともに、返されたロウ(行)数やクエリーの処理にかかった時間など、実行に関する重要な情報が含まれます。
リソースを大量に消費する長時間のクエリーの作成をユーザーに制限するにはどのようにすればよいですか?
クエリーが長時間実行されないようにするには、データベースにタイムアウトを設定します。デフォルトでは、3分に設定されています。
結果セットが極端に大きくならないようにするには、そのデータベースのすべてのクエリーにロウ(行)制限を設定します。
大部分のコンテンツは、レポートクエリーの実行回数を制限するライブデータではなく、「ダミーデータ」を使用して作成することもできます。
データソース制限について、さらに詳細な情報は、こちらを参照してください。
使用率の低い時間帯にバックグラウンドタスクを実行するようにスケジュール設定することはできますか?
Yellowfinのすべてのバックグラウンドタスクは、通常、タスクが最初に作成されたときに定義される、設定されたスケジュールで実行されます。これらのスケジュールは、管理コンソールの「スケジュール管理」ページから実行できます。これにより、高リソースプロセスの実行を最適化できます。
長時間実行しているプロセスを停止できますか?
長時間実行されているバックグラウンドプロセスはすべて、管理コンソールの「バックグラウンド実行」ページから停止できます。
アプリケーション内で長時間実行されているプロセスを開始するユーザーは、リクエストをいつでもキャンセルするオプションが提供されます。
デバッグとエラーログ
時々問題が発生することもありますが、大抵の場合、Yellowfinはその理由を示す明確なエラーを表示します。それ以外の場合は、まずログファイルを調べることを推奨します。各Yellowfin サーバには「/appserver/logs」というフォルダーがあり、アプリケーションの様々なコンポーネントをトラッキングする複数のファイルが含まれています。一般的なロギングは、「yellowfin.log」ファイルに保存されます。
これらのログは、log4jプロパティファイルを構成することで、表示する情報の増減を切り替えることができます。
ログをdatadogやsplunkなどの監視プログラムに転送できますか?
クラスタ環境では、ログ転送サービス(AWSクラウドウォッチ、splunk転送など)を使用して、すべてのアプリケーションノードのエラーを同時に分析できるようにするのが一般的です。