Amazon Web Services ブログ

BI トランスフォーメーションを加速する Amazon QuickSight API の新機能

このブログの定期読者やAWS のお客様であれば、Infrastructure as Code (IaC) の利点をご理解のことと思います。IaC では、インフラストラクチャをプログラミング言語を使用して記述することが可能なので、複数の環境または AWS リージョンへのインフラストラクチャのデプロイに、一貫性を持たせることができます。他にも、アプリケーションのソースコード管理に使用するのと同じ開発ツールとワークフローを使用して、インフラストラクチャのバージョンを管理できる、という利点があります。さらに IaC には、インフラストラクチャーの一部について、デプロイする前にプログラムによる検証を行う機能も備わっています。

現在、当社ではダッシュボード、分析、テンプレートをプログラムにより作成および管理できるようにするため、QuickSight API の機能を拡張中です。これらの機能により、BI チームは、IaC を使用する場合と同様に、BI 資産をコードとして管理できるようになります。この機能拡張は、BI チームの俊敏性を大幅に向上させます。プログラムを使用する移行のオプションにより、レガシー製品からの BI 移行を高速化することが可能です。

ビジネスインテリジェンスと IT オペレーション (BIOps) は、DevOps から数十年にわたって学んだベストプラクティスにヒントを得たものです。BiOps は、データに関するインサイトを迅速に提供することで、顧客がより素早くイノベーションを行えるようにします。BI のオーサリングは UI 駆動型であるため、通常、ダッシュボードの開発とデプロイは、は手動で実行されます。このデプロイ中、ダッシュボードの変更は完全には検証されません。本番環境に移行された変更内容が不適切な場合、エラーやダウンタイムの原因となり得るので、この点は、BIOps における課題の 1 つです。新しい QuickSight API を使用すると、QuickSight 分析やダッシュボードをプログラムで作成および変更することや、コードリポジトリ内でこれらのアセットのバージョン管理を行うことが可能になります。また、AWS クラウドへの移行も加速します。

同時に、分析、テンプレート、ダッシュボードに関するプログラムを使用した作成と管理は、古い BI ソリューションからアセットを移行する際にも役立ちます。データや分析ワークロードを従来のオンプレミスソリューションからクラウドに移行する際にも、ビジネスインテリジェンスの移行は、最も後回しにされる傾向があります。多くの場合、BI チームは何十年にもわたって構築された何千ものカスタムレポートやダッシュボードを保持しており、その移行は面倒な作業です。これらのレポートの移行は、BI チームが 1 つずつ手動で行うために、アセットの移行作業には、何ヶ月もの時間を費やすこととなります

関連用語
今回リリースされた QuickSight では、API に新しく describe セットが追加されています。また、createupdatelist といった既存のAPI 動詞に関する更新も行いました。新規、または更新されたこれらの API により、分析テンプレートダッシュボードの各データモデルに対するきめ細かな制御を、API から行えるようになります。

  • QuickSight の分析は、グラフィカルな表現を作成してデータを可視化するための、使いやすいワークスペースです。各分析には、ユーザーにより調整およびカスタマイズされた、可視化機能のコレクションが含まれています。
  • QuickSight のダッシュボードでは、インタラクティブな可視化機能や、分析から取得した静的レポートを他のユーザーと共有できます。
  • QuickSight のテンプレートは、分析またはダッシュボードの作成に必要なメタデータを、カプセル化するためのエンティティです。ここでは、抽象化のために、分析に関連するデータセットをプレースホルダーに置き換えます。

新しい API (DescribeAnalysisDefinition, DescribeTemplateDefinition, DescribeDashboardDefinition) を使用すれば、デベロッパーはサポートされているすべてのグラフとビジュアルコンポーネントを管理できるようになります。

実際の動作
QuickSight 分析を、プログラムにより作成する必要があると想定してみましょう。

新しいビジネスインテリジェンス分析をプログラムで作成する際には、分析用のデータを提供するデータソースの作成、そのデータソースに基づくデータセットの作成、そして QuickSight 分析の作成という、3 つのステップが必要となります。

QuickSight をプログラムまたはユーザーインターフェイスから使用する場合、まず最初の手順としてデータソースの定義を行います。データソースでは、分析対象のデータを含むデータベースのプロパティを定義します。データソースをプログラムにより作成し管理することは、さほど新規なことではありません。「QuickSight API Operations to Control Data Sources」(データソースを制御するための QuickSight API オペレーション) ページが参考になります。

2 番目のステップは、データセットを作成して、1 つまたは複数のデータソースとリンクすることです。繰り返しになりますが、プログラムによるデータセットの管理は、特に新しいものではありません。

新しい describe API を使用する場合、分析、ダッシュボード、テンプレートは完全にモデル化された JSON オブジェクトとして、AWS SDK 内に定義されます。このデモでは、AWS コマンドラインインターフェイス (CLI) を通じて、JSON オブジェクトを使用しています。Java、または別の AWS SDK を使用する場合には、すべての要素をプログラムで操作できます。

新しい分析またはダッシュボードをプログラムで作成する最も簡単な方法は、それらを先にコンソールで作成しておき、定義し直すことです。

3 番目のステップでは、分析を作成します。初めに、describe-analysis-definition を呼び出して、既存の分析の記述を取得します。この API 呼び出しの完全なレスポンスが、JSON ファイルの形で提供されます。describe-analysis-definition のレスポンス内で、Definition を検証および変更することで、新しい分析を作成できます。

aws quicksight describe-analysis-definition      \
        --aws-account-id 0123456789              \
        --analysis-id linechart-kpi-donut-pivot
> ./AWS\ Blog\ Sample\ Code/linechart-kpi-donut-pivot.json

注: この JSON ファイルは、create API の入力としてそのまま使用することはできません。それには、いくつか変更を加える必要があります。

新しい分析を作成する準備ができたら、--generate-cli-skeleton 引数を使用して JSON ファイルを生成します。次に、先に describe-analysis-definition 呼び出しを実行した際に変更した (またはオリジナルの) Definition オブジェクトを、create-sales-analysis.json に対しコピーします。

aws quicksight create-analysis \ 
      --generate-cli-skeleton > create-sales-analysis.json

aws quicksight create-analysis  \
      --cli-input-json file://./AWS\ Blog\ Sample\ Code/create-sales-analysis.json

Definition フィールドは、ダッシュボード、テンプレート、そして分析全体で同じ形状を共有していいます。したがって、ここで分析の作成に使用した Definition は、必要に応じて create-dashboard API を使用することで、他のダッシュボードの作成のために再利用することもできます。

aws quicksight create-dashboard \
      --generate-cli-skeleton > create-dashboard.json

その後、create-dashboard.json を変更して、create-sales-analysis.json ファイル内から Definition をインクルードします。さらに、他のパラメータを更新した後で、create-dashboard を呼び出します。

aws quicksight create-dashboard \
       --cli-input-json file://./AWS\ Blog\ Sample\ Code/create-dashboard.json

以下に、私が使用した JSON ファイルの抜粋を示します。

QuickSight API – ダッシュボードの作成

明らかなことですが、API を使用したダッシュボードの開発は反復的な作業です。数回の作業を経た後の結果を、以下に示します。

QuickSight API – 新しいダッシュボード

この同じ手法を、古い BI ソリューションからアセットをプログラムによって移行する場合にも適用できます。

料金と可用性
今回の新しい API では、ビジネスインテリジェンス用ダッシュボードを、プログラム可能なオブジェクトとして定義することが可能になりました。これにより、古い BI ツールからの移行がスピードアップします。これの全体に関する詳細は、QuickSight の API ドキュメントページに記載されています。

この API は、QuickSight が利用可能なすべての AWS リージョンにおいて、すべての QuickSight Enterprise Edition のお客様に追加料金なしでご利用いただけます。これらの API で新たにサポートされたデータモデルに対する、AWS CloudFormation のサポートも、近日中にリリース予定です。

さっそく、初めてのプログラムによるダッシュボードの構築を、試してください。

— seb

原文はこちらです。