

# 付録: Microsoft Power BI でサポートされている AWS データソース
<a name="appendix-microsoft-power-bi-supported-aws-data-sources"></a>

 サポートされているデータソースの完全なリストは Microsoft から提供されています (「[Power BI データソース](https://docs.microsoft.com/en-us/power-bi/connect-data/power-bi-data-sources)」を参照)。ただし、各 AWS データソースに関する以下のセクションでは、一部の読者に役立つ使用方法と設定ガイダンスを提供します。

## Amazon Redshift
<a name="amazon-redshift"></a>

 Amazon Redshift は、AWS クラウド内のペタバイト規模のフルマネージドデータウェアハウスサービスです。Amazon Redshift データウェアハウスは、ノードと呼ばれるコンピューティングリソースの集合で、クラスターと呼ばれるグループに編成されています。各クラスターは Amazon Redshift エンジンを実行し、1 つ以上のデータベースを含みます。

 Amazon Redshift の使用を検討する必要があるのは、次のような場合です。
+  ネイティブのクラウドデータウェアハウスを構築または移行する場合。
+  数テラバイトから数百テラバイトへスケーリングする必要がある場合。
+  Power BI ユーザーが Amazon S3 に保存されているデータレイクのデータに透過的にアクセスし、データウェアハウスのテーブルと結合できるようにする場合。
+  クエリのワークロードには以下が含まれます。
  +  大規模な (数ギガバイトから数テラバイト) テーブルで集計を計算するクエリ。
  +  複数の結合とサブクエリを含む非常に複雑な SQL。
  +  複雑な分析クエリと、ダッシュボードで使用されるシンプルで高度にフィルタ処理されたクエリの組み合わせ。

 Amazon Redshift を Microsoft Power BI で使用する際には、以下の点に注意してください。
+ Amazon Redshift は、Microsoft Power BI Desktop と Power BI サービスの両方で、Power BI データソースとしてネイティブにサポートされており、それぞれでインポートモードと直接クエリモードをサポートしています。
+ Redshift クラスターはパブリックサブネットで起動し、インターネットからのアクセスを許可するように設定できますが、大半のお客様はセキュリティを強化するためにプライベートサブネットで起動するように設定します。プライベートサブネットを使用する場合は、オンプレミスデータゲートウェイを使用して、Power BI サービスから Amazon Redshift に接続します。
+ Redshift コネクタは、Power BI Desktop と Power BI サービスで Azure AD 認証をサポートしています。
+ Spectrum を介してアクセスする外部テーブルは、ネイティブの Redshift テーブルと異なる方法で扱われず、Power BI でそれらのテーブルを区別する方法はありません。外部テーブルのデータにアクセスするときは、次の点を確認してください。
  +  文字列を含む列は、AWS Glue データカタログで「STRING」ではなく「VARCHAR」としてカタログ化されます。そのように処理されない場合、Power BI は次のエラーを返します。` Exception: OLE DB or ODBC error: [Expression.Error] We couldn't fold the expression to the data source. Please try a simpler expression..`
  +  ARRAY などの複雑なデータ型を含む列はサポートされていません。複雑なデータ型を含む列を使用すると、Power BI は次のエラーを返します。`Exception: ODBC: ERROR [42703] [Microsoft]Amazon Redshift Error occurred while trying to execute a query `

    そのような列をモデルに含める必要がある場合は、ユーザーレベルで JSON シリアル化を有効にするか (Amazon Redshift 側)、複合データ型をネイティブテーブルの SUPER 列に保存します。

## Amazon RDS
<a name="amazon-rds"></a>

 Amazon RDS を使用すると、クラウドでリレーショナルデータベースを簡単にセットアップ、運用、スケーリングできます。Amazon RDS では、メモリ、パフォーマンス、I/O に合わせて最適化された複数のデータベースインスタンスタイプを利用でき、Amazon Aurora、PostgreSQL、MySQL、MariaDB、Oracle Database、SQL Server といった 6 つのデータベースエンジンから使い慣れたものを選択できます。

RDS の使用を検討する必要があるのは、次のような場合です。
+  運用データストアを構築している場合。
+  SQL Server または Oracle Database データウェアハウスをクラウドに移行するが、リファクタリングには関心がない場合。
+  クエリのワークロードには以下が含まれます。
  +  簡単にインデックスを作成できるテーブルで、高度にフィルタ処理されたデータにアクセスするクエリ。
  +  中規模から小規模のテーブル (数ギガバイト) に対する分析クエリ。
  +  中程度の複雑さの分析クエリと、ダッシュボードで使用されるシンプルで高度にフィルタ処理されたクエリの組み合わせ。

Microsoft Power BI で Amazon RDS を使用する場合は、次の点に注意してください。
+  Amazon RDS では、SQL Server、MariaDB、MySQL、Oracle Database、PostgreSQL などの複数のデータベースエンジンが用意されています。データベースエンジンは、Amazon RDS サービスではなく、Power BI Desktop および Power BI サービスに表示されます。
+  Amazon Aurora では、選択したデータベースエンジンに応じて、MySQL または PostgreSQL の接続タイプを使用します。
+  Amazon RDS インスタンスはパブリックサブネットで起動し、インターネットからのアクセスを許可するように設定できますが、大半のお客様はセキュリティを強化するためにプライベートサブネットで起動するように設定します。プライベートサブネットを使用する場合は、オンプレミスデータゲートウェイを利用して、Power BI サービスから RDS に接続します。
+  Amazon RDS では、SQL Server (2012、2014、2016、2017、2019) の複数のエディション (Express、Web、Standard、Enterprise など) をデプロイできます。

## Amazon Athena
<a name="amazon-athena"></a>

 Amazon Athena は、Amazon S3 内のデータを標準 SQL を使用して簡単に分析できるインタラクティブなクエリサービスです。Athena は AWS Glue データカタログとすぐに使える状態で統合されており、さまざまなサービスにわたる統合メタデータリポジトリの作成、データソースのクロールによるスキーマの検出、データカタログへの新規および変更されたテーブルとパーティション定義の入力、スキーマのバージョニングの維持が可能です。

Athena をデータソースとして検討する必要があるのは、次のような場合です。
+  データレイクに対して直接クエリを実行する場合。
+  クエリのワークロードには以下が含まれます。
  +  大規模な (数ギガバイトから数テラバイト) テーブルで集計を計算するクエリ。
  +  調査目的のインタラクティブなアドホック SQL。

 Microsoft Power BI で Amazon Athena を使用する場合は、次の点に注意してください。
+ 2021 年 7 月の Microsoft Power BI のリリースで、Amazon Athena 用の Microsoft 認定コネクタが導入されました。Amazon Athena 用の Microsoft Power BI コネクタを使用して、Microsoft Power BI Desktop で Amazon Athena のデータを分析できます。Power BI サービスにコンテンツをパブリッシュした後は、Microsoft オンプレミスデータゲートウェイを使用して、オンデマンドまたはスケジュールされた更新により、コンテンツを最新の状態に保つことができます。
+ Amazon Athena 用の Microsoft Power BI コネクタは、インポートと直接クエリの両方のデータ接続モードをサポートしています。インポートモードでは、選択したテーブルと列がクエリ実行用に Power BI Desktop にインポートされます。ダイレクトクエリモードでは、データは Power BI Desktop にインポートまたはコピーされず、代わりに Power BI Desktop が直接、基になるデータソースに対してクエリを実行します。
+  Amazon Athena 用の Microsoft Power BI コネクタの詳細については、「[Amazon Athena Power BI コネクタの使用](https://docs.aws.amazon.com/athena/latest/ug/connect-with-odbc-and-power-bi.html)」を参照してください。
+ Amazon Athena 用の Microsoft Power BI コネクタを使用するには、Amazon Athena に対してクエリを実行するシステムで、Amazon Athena ODBC ドライバーの使用と ODBC DSN の有効な設定が必要です。最新の ODBC ドライバーをダウンロードし、設定情報を取得するには、「[ODBC を使用した Amazon Athena への接続](https://docs.aws.amazon.com/athena/latest/ug/connect-with-odbc.html)」を参照してください。
+ Amazon Athena 用の Microsoft Power BI コネクタを使用する際の設定手順に関するチュートリアルおよびベストプラクティスについては、「[Amazon Athena を使用した Microsoft Power BI でのダッシュボードの迅速な作成](https://aws.amazon.com/blogs/big-data/creating-dashboards-quickly-on-microsoft-power-bi-using-amazon-athena/)」を参照してください。

## Amazon OpenSearch Service
<a name="amazon-opensearch-service"></a>

 JSON ベースの検索クエリ DSL を使用するのではなく、SQL を使用して Amazon OpenSearch Service に対してクエリを実行できます。SQL を用いたクエリの実施は、その言語に既に精通している場合や、その言語を使用する Microsoft Power BI などのアプリケーションにドメインを統合する場合に役立ちます。

Amazon OpenSearch Service をデータソースとして検討する必要があるのは、次のような場合です。
+ ログファイルや JSON 出力などの半構造化データがあり、情報をすばやく検索、分析、視覚化する必要がある場合。

 Microsoft Power BI で Amazon OpenSearch Service を使用する場合は、次の点に注意してください。
+ Amazon OpenSearch Service への接続には、Windows および macOS 用の読み取り専用 ODBC ドライバーである Open Database Connectivity (ODBC) ドライバーが必要です。このドライバーを使用すると、[Tableau](https://github.com/opendistro-for-elasticsearch/sql/blob/develop/sql-odbc/docs/user/tableau_support.md)、[Microsoft Excel](https://github.com/opendistro-for-elasticsearch/sql/blob/develop/sql-odbc/docs/user/microsoft_excel_support.md)、[Power BI](https://github.com/opendistro-for-elasticsearch/sql/blob/main/sql-odbc/docs/user/power_bi_support.md) などのビジネスインテリジェンス (BI) およびデータ可視化アプリケーションをクラスター上の SQL プラグインに接続できます。このドライバーは OpenSearch の [Download & Get Started](https://opensearch.org/downloads/) ウェブサイトから入手できます。設定手順については、OpenSearch の [ODBC driver](https://opensearch.org/docs/latest/search-plugins/sql/sql/odbc/) ウェブサイトの「Customizing the ODBC driver」セクションを参照してください。
+ 現在、インポートモードのみがサポートされています。
+ 現在、Power BI から Amazon OpenSearch Service への接続には、ベータコネクタを使用する必要があります。開始するには、[Microsoft Power Query のドキュメント - コネクタのリファレンス: Amazon Opensearch Service (ベータ)](https://learn.microsoft.com/en-us/power-query/connectors/amazonopensearchservice) を参照してください。

## AWS Lake Formation
<a name="aws-lake-formation"></a>

 Lake Formation は、データベースやオブジェクトストレージからのデータの収集とカタログ化、新しい [Amazon S3](https://aws.amazon.com/s3/) データレイクへのデータの移動、機械学習アルゴリズムを使用したデータのクリーンアップと分類、機密データへの安全なアクセスを支援します。ユーザーは、利用可能なデータセットとその適切な使用方法を説明する一元化された[データカタログ](https://aws.amazon.com/glue/faqs/#AWS_Glue_Data_Catalog/)にアクセスできます。その後、ユーザーは [Amazon Redshift](https://aws.amazon.com/redshift/)、[Amazon Athena](https://aws.amazon.com/athena/)、[Amazon EMR](https://aws.amazon.com/emr/) for Apache Spark (ベータ) などの選択した分析サービスと機械学習サービスでこれらのデータセットを利用できます。Lake Formation は、[AWS Glue](https://aws.amazon.com/glue/) で使用できる機能に基づいています。

従来の IAM ベースのコントロールではなく、データレイクへの行および列レベルのきめ細かなアクセスが必要な場合は、Lake Formation を検討する必要があります。

Microsoft Power BI で Lake Formation を使用する場合は、次の点に注意してください。
+ Power BI Desktop または Power BI サービスで Lake Formation Data Catalog からクエリを実行するには、Athena でクエリを実行する場合と同じプロセスと設定を使用します。Lake Formation のアクセス許可モデルを利用する場合は、Amazon Athena の ODBC DSN 設定で `LakeformationEnabled` プロパティキーが `true` の値に設定されていることを確認します。これにより、Amazon Athena ODBC ドライバーは、AWS Security Token Service を直接使用するのではなく、Lake Formation サービスを使用して認可を行うようになります。詳細については、「[ODBC を使用した Amazon Athena への接続](https://docs.aws.amazon.com/athena/latest/ug/connect-with-odbc.html#connect-with-odbc-driver-documentation)」のドキュメントを参照してください。
+ 既存のデータカタログの動作との互換性のために有効になっている [IAM アクセスコントロールのみを使用する] 設定により、完全な互換性が確保されます。
+ AWS Glue データアクセス許可を Lake Formation モデルにアップグレードすると、互換性の問題が発生する可能性があるため、使用する前にテストを行う必要があります。予備テストでは、列レベルの付与または拒否は有効であることが示されていますが、行およびセルレベルのフィルタ処理は、まだプレビュー版であり変更される可能性があるため、筆者によるテストは実施されていません。