Azure Database for PostgreSQL を使用したインテリジェント アプリ

Azure App Service
Azure AI サービス
Azure Database for PostgreSQL
Azure Machine Learning
Power BI

ソリューションのアイデア

このアーティクルはソリューションのアイデアです。 このコンテンツにさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。

このアーティクルでは、人工知能 (AI) を使用してデータ分析と視覚化を自動化するためのソリューションについて説明します。 ソリューションのコア コンポーネントは、Azure Functions、Azure Cognitive Services、Azure Database for PostgreSQL です。

Architecture

Diagram that shows the dataflow of an intelligent application using Azure Database for PostgreSQL.

このアーキテクチャの Visio ファイルをダウンロードします。

データフロー

  1. Azure 関数アクティビティを使用すると、Azure Data Factory パイプラインで Azure Functions アプリをトリガーできます。 リンクされたサービス接続を作成し、アクティビティでリンクされたサービスを使用して、実行する Azure 関数を指定します。
  2. データは、Azure Storage や大量のデータの Azure Event Hubs を含む複数のソースから取得されます。 パイプラインは、新しいデータを受信すると、Azure Functions アプリをトリガーします。
  3. Azure Functions アプリは、Cognitive Services API を呼び出してデータを分析します。
  4. Cognitive Services API は、分析の結果を JSON 形式で Azure Functions アプリに返します。
  5. Azure Functions アプリでは、データと Cognitive Services API から返された結果を Azure Database for PostgreSQL に保存します。
  6. Azure Machine Learning では、カスタム機械学習アルゴリズムを使用して、データに関するさらなる分析情報を提供します。
    • コードなしの観点で機械学習のステップにアプローチしている場合、機能のハッシュ化、Word2Vector、N-gram 抽出など、さらにテキスト分析操作をデータに実装できます。
    • コード優先のアプローチを好む場合は、Machine Learning Studio で実験としてオープンソースの自然言語処理 (NLP) モデルを実行できます。
  7. Power BI 用 PostgreSQL コネクタを使用すると、Power BI またはカスタム Web アプリケーションで人間が解釈できる分析情報を探索できます。

コンポーネント

  • Azure App Service は、Web アプリと API をすばやく構築、デプロイ、スケーリングするためのフル マネージド プラットフォームを提供しています。
  • Functions は、イベント駆動型のサーバーレス コンピューティング プラットフォームです。 アクティビティを使用して Data Factory パイプラインの一部として関数を実行する方法については、「Azure Data Factory の Azure 関数アクティビティ」を参照してください。
  • Event Hubs は、フル マネージド ビッグ データ ストリーミング プラットフォームです。
  • Cognitive Services には、アプリにコグニティブ インテリジェンスを構築するために使用できる AI サービスと API のスイートが用意されています。
  • Azure Database for PostgreSQL は、フルマネージドのリレーショナル データベース サービスです。 PostgreSQL に対して高可用性、弾力的なスケーリング、パッチ適用、その他の管理機能を提供します。
  • Azure Machine Learning は、機械学習モデルのトレーニング、デプロイ、自動化に、使用できるクラウド サービスです。 Studio では、コード優先アプローチとコードなしのアプローチがサポートされています。
  • Power BI は、分析情報を表示し、データから分析情報を導き出すのに役立つソフトウェア サービスとアプリのコレクションです。

シナリオの詳細

自動パイプラインでは、次のサービスを使用してデータを分析します。

  • Cognitive Services は、質問応答、感情分析、テキスト翻訳に AI を使用しています。
  • Azure Machine Learning には、予測分析用の機械学習ツールが用意されています。

データと結果を保存するために、ソリューションでは Azure Database for PostgreSQL を使用します。 PostgreSQL データベースでは、非構造化データ、並列クエリ、宣言型パーティション分割がサポートされています。 このサポートにより、Azure Database for PostgreSQL は、データを集中的に使用する AI タスクと機械学習タスクに効果的な選択肢になります。

このソリューションにより、データ分析の配信が自動化されます。 コネクタは、Azure Database for MySQL と Power BI などの視覚化ツールをリンクします。

このアーキテクチャでは、Azure Functions アプリを使用して、複数のデータ ソースからデータを取り込みます。 これは、次のベネフィットを提供するサーバーレス ソリューションです。

  • インフラストラクチャのメンテナンス: Azure Functions は、開発者がビジネスに価値を提供する革新的な作業に集中できるようにするマネージド サービスです。
  • スケーラビリティ: Azure Functions は必要に応じてコンピューティング リソースを提供するため、関数インスタンスは必要に応じてスケーリングされます。 要求が少なくなれば、リソースとアプリケーション インスタンスは自動的に解放されます。

考えられるユース ケース

Azure Database for PostgreSQL はクラウドベースのソリューションです。 その結果、このソリューションはモバイル アプリケーションにはお勧めされません。 次の業界などのダウンストリーム分析に適しています。

  • 輸送: メンテナンスの予測
  • 財務: リスク評価と不正行為の検出
  • E コマース: 顧客離反予測エンジンとレコメンデーション エンジン
  • 通信: パフォーマンスの最適化
  • ユーティリティ: 停止防止

考慮事項

以降の考慮事項には、ワークロードの品質向上に使用できる一連の基本原則である Azure "Well-Architected Framework" の要素が組み込まれています。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。

  • ほとんどの機能では、Cognitive Service for Language API の最大サイズは 1 つのドキュメントに対して 5,120 文字です。 すべての機能について、要求の最大サイズは 1 MB です。 データとレートの制限の詳細については、「Azure Cognitive Service for Language のサービス制限」を参照してください。

  • Azure Database for PostgreSQL では、イングレス ボリュームとベロシティーによって、サービスとデプロイ モードの選択が決まります。 2 つのサービスが利用できます。

    • Azure Database for PostgreSQL
    • Azure Cosmos DB for PostgreSQL (以前は Hyperscale (Citus) モードと呼ばれていた)

    顧客の意見やレビューの大規模なワークロードをマイニングする場合は、Azure Cosmos DB for PostgreSQL を使用します。 Azure Database for PostgreSQL 内では、単一サーバーとフレキシブル サーバーの 2 つのモードを使用できます。 各デプロイ モードを使用するタイミングを理解するには、「Azure Database for PostgreSQL とは」を参照してください。

  • このソリューションの以前のバージョンでは、Cognitive Services Text Analytics API が使用されていました。 Azure Cognitive Service for Language では、Cognitive Services に 3 つの個別の言語サービスが統合さました。 Text Analytics、QnA Maker、Language Understanding (LUIS) です。 Text Analytics API から Cognitive Service for Language API に簡単に移行できます。 手順については、「最新バージョンの Azure Cognitive Service for Language に移行する」を参照してください。

セキュリティ

セキュリティは、重要なデータやシステムの意図的な攻撃や悪用に対する保証を提供します。 詳細については、「セキュリティの重要な要素の概要」を参照してください。

Azure Database for PostgreSQL のすべてのデータが自動的に暗号化され、バックアップされます。 脅威をさらに軽減するために、Microsoft Defender for Cloud を構成できます。 詳細は、「オープンソース リレーショナル データベース用 Microsoft Defender を有効にしてアラートに応答する」を参照してください。

DevOps

接続文字列を使用してワークフローを設定することにより、Azure Database for PostgreSQL データベースに接続するように GitHub Actions を構成できます。 詳細については、「クイック スタート: GitHub Actions を使用して Azure PostgreSQL に接続する」を参照してください。

また、Azure Pipelines を使用して、機械学習のライフサイクルを自動化できます。 MLOps ワークフローを実装し、プロジェクトの CI/CD パイプラインを構築する方法については、Azure ML を使用した GitHub リポジトリ MLOps with Azure ML に関するページを参照してください。

コスト最適化

コストの最適化とは、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳しくは、コスト最適化の柱の概要に関する記事をご覧ください。

Cognitive Service for Language には、さまざまな価格レベルが用意されています。 処理するテキスト レコードの数は、コストに影響します。 詳細については、「Cognitive Service for Language の価格」を参照してください。

次のステップ