Microsoft Azure Power BI Service (リポジトリー) - インポート
ブリッジの要件
このブリッジ:ドライバーを<TDC_HOME>/data/download/MIMB/にダウンロードするためには、https://repo.maven.apache.org/maven2/ やその他のツールサイトへのインターネットアクセスが必要です。
ブリッジの仕様
ベンダー | Microsoft |
ツール名 | Azure Power BI |
ツールバージョン | 2.x |
ツールのWebサイト | https://powerbi.microsoft.com/ |
サポートされている方法論 | [ビジネスインテリジェンス] マルチモデル、メタデータリポジトリー、データストア(物理データモデル、OLAPディメンショナルモデル、ストアドプロシージャー式解析)、BIレポート(リレーショナルソース、ディメンショナルソース、式解析、レポートストラクチャー) Java REST API経由の |
データプロファイリング | |
増分収集 | |
マルチモデル収集 | |
モデル選択のためのリモートリポジトリーの参照 |
仕様
ツール: Java REST API経由のMicrosoft / Azure Power BIバージョン2.x
https://powerbi.microsoft.com/をご覧ください。
メタデータ: [ビジネスインテリジェンス] マルチモデル、メタデータリポジトリー、データストア(物理データモデル、OLAPディメンショナルモデル、ストアドプロシージャー式解析)、BIレポート(リレーショナルソース、ディメンショナルソース、式解析、レポートストラクチャー)
コンポーネント: MicrosoftAzurePowerBIバージョン11.2.0
免責事項
このインポートブリッジでは、インターネットに接続して次のサードパーティライブラリーをダウンロードする必要があります。
- オープンソースのサードパーティライブラリーのダウンロードはhttps://repo.maven.apache.org/maven2/などへ
- その他のサードパーティソフトウェア(データベース特定のJDBCドライバーなど)は該当するサイトへ
ダウンロードされたサードパーティライブラリーは、$HOME/data/download/MIMB/に格納されています。
HTTPSが失敗した場合、インポートブリッジはHTTPを試します。
- インターネットへのアクセスにプロキシを使用している場合は、JREでそのプロキシを設定する必要があります(Miscellaneousパラメーターで -j オプションをご覧ください。)。
- インポートブリッジではインターネットにフルにアクセスできない場合は、インターネットアクセスがある別のサーバーから$HOME/data/download/MIMB/ディレクトリーをコピーします。$HOME/bin/MIMB.sh (または.bat) -dというコマンドを使えば、すべてのブリッジで使用される全サードパーティライブラリーを一度にダウンロードできます。
このインポートブリッジを実行すると、ライセンス規約の責任、およびダウンロードしたサードパーティソフトウェアライブラリーによって生じる潜在的なセキュリティの脆弱性を受け入れることになります。
概要
このインポートブリッジは、Power BI REST API (デフォルトでは管理者API)を使い、Microsoft AzureクラウドでホストされているMicrosoft Power BIサービスからビジネスインテリジェンス(BI)レポートメタデータをインポートします。
このインポートブリッジでは、次のオブジェクトタイプのカタログを作成できます:
- ワークスペース(グループ)
- ダッシュボード
- Power BIレポート
- ページ番号付きレポート
- データセット(セマンティックモデル)
- データフロー
- データソース
要件
- 認証要件:
Microsoft AzureクラウドでホストされているPower BIサービスに接続する場合、インポートブリッジはAzure Active Directory認証を使います。
このブリッジは、Microsoft Authentication Library (MSAL)に依存してAzure Active Directoryを認証します。
Azureグローバルクラウドにアプリケーションを登録するためには、次の設定手順が必要です。
- Azure管理コンソール: https://portal.azure.com/
に接します - 組織に対応するAzure Active Directoryを作成するか、開きます。
- アプリの登録ページで[ネイティブクライアント]タイプの[MIMB]という名前のアプリケーションの登録を作成し、そのクライアントID (アプリケーションID)を書き留めておきます。
- Power BIサービスアプリケーションに必ず権限を追加し、必要な権限を付与します。
たとえば、Power BI Serviceの次の権限を付与できます:
Dashboard.Read.All、Dataflow.Read.All、Dataset.Read.All、Gateway.Read.All、Report.Read.All、Tenant.Read.All、Workspace.Read.All
アプリケーションをAzureナショナルソブリンクラウドに登録する場合は、政府のクラウド環境に合わせて、Azure管理コンソールに別のURLを使用して同様の手順を実行する必要があります。
詳細は、次をご覧ください。: https://docs.microsoft.com/en-us/azure/active-directory/develop/authentication-national-cloud
[Azure環境]パラメーターを使って、政府のクラウド環境を指定してください。
インポートブリッジはクライアントID (アプリケーションID)情報を使用してAzureに接続し、認証トークンを取得します。
詳細:
https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-integrating-applications
または、このページを使用してアプリケーションをAzure Active Directoryに登録することも可能です:
https://dev.powerbi.com/apps
Azure管理コンソールを使って特定の権限に関する承認を与えなければならない場合もあります。
また、Azure Active Directory管理コンソール(画面左下)とPower BIサブスクリプション(ライセンス)を介してOffice 365 Admin Centerでユーザーを設定することもできます:
https://admin.microsoft.com/
これによって、ユーザーやグループ、アプリケーションの登録など、きめ細かな設定が可能になります。
Azure Active Directoryに対する認証の方法には次の2つがあります:
- 通常のユーザーとして: 通常、ログインユーザーはメールアドレスの形式となります。例:
UserName@DirectoryName.onmicrosoft.com
- サービスプリンシパルとして: ユーザー名パラメーターは空のままにしておき、テナントIDは入力する必要があります。
インポートブリッジでは、データセットテーブルストラクチャーとPowerQueryマッシュアップ式を取得できるよう、Microsoftの強化済みメタデータスキャンAPIが必要です。
これらは管理者APIの一部としてのみ使用でき、次の設定ステップに従う必要があります。
サービスプリンシパルとして認証するためには、このページで追加権限を設定できます:
https://app.powerbi.com/admin-portal/tenantSettings
- 開発者設定 / サービスプリンシパルがPower BI APIを使用することを許可
- 管理者API設定 / サービスプリンシパルが読み取り専用Power BIの管理者APIを使用することを許可
- 管理者API設定/詳細なメタデータが含まれている管理者APIレスポンス(データセットテーブルおよびカラムに対して)を強化
- 管理者API設定/DAXおよびマッシュアップ式が含まれている管理者APIレスポンス(データセット来歴メタデータに対して)を強化
また、レポートのダウンロードを有効にするためには、次のように設定します:
- 設定をエクスポートおよび共有共有 / レポートをダウンロード
- APIの要件:
このインポートブリッジはデフォルトでPower BI Admin APIを使用します。
管理者APIを使うためには、以下の操作が必要です:
- 委任された権限(サインイン済みユーザーとしてログイン)の使用時、ユーザーにはPower BI管理者ロールが必要です。
- サービスプリンシパル認証をお使いの場合に、Azure Active Directoryコンソール経由で、アプリ(Tenant.ReadWrite.All、Tenant.Read.All)に付与されているPower BIロールを削除します。
- Azure ActiveDirectoryで、セキュリティグループを作成し、そこにサービスプリンシパルアカウントを追加します。
- サービスプリンシパルとセキュリティグループ(またはそのいずれか)に対し、ワークスペースへのアクセスを有効にします:
Powerbi.comサービスを使って自分のアカウントにログインし、ワークスペースを選択します
[アクセスを管理 / 人またはグループを追加]に移動します
ユーザーまたはグループ(またはサービスプリンシパルアカウント)を選択します
[管理者]として設定します
- レポートをダウンロードする場合は、ユーザーまたはグループがワークスペースにコントリビューターまたは管理者として割り当てられている必要があります
詳細は、以下をご覧ください。:
https://docs.microsoft.com/en-us/power-bi/admin/service-admin-metadata-scanning
https://docs.microsoft.com/en-us/power-bi/admin/service-admin-metadata-scanning-setup
https://docs.microsoft.com/en-us/power-bi/admin/read-only-apis-service-principal-authentication
https://docs.microsoft.com/en-us/power-bi/developer/embedded/embed-service-principal#service-principal-vs-master-account
このインポートブリッジは、次の方法で(Admin APIの代わりに)通常のAPIを使用することもできます:
- Miscellaneousパラメーターである-api.userを設定します
このような場合、詳細な来歴メタデータは抽出されません。
よくある質問
- If you experience the error message below, you may need the administrator to grant consent.
AADSTS65001: ユーザーまたは管理者は、ID '{client-id}'がMIMBであるアプリケーションの使用に同意していません。このユーザーとリソースに対する対話型認証リクエストを送信します。
次のようなURLを使って、管理者に同意を求めます: https://login.microsoftonline.com/{tenant-id}/adminconsent?client_id={client-id}
詳細: https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/grant-admin-consent
制限事項
現在判明している一般的な制限事項は、https://metaintegration.com/Products/MIMB/Help/#!Documents/mimbknownlimitations.htmlをご覧ください。
- 管理者APIの制限事項:
- 管理者API経由で抽出されるDataSetメタデータは(Datasetsのテーブル構造やPowerQueryのマッシュアップ式が抽出されるなど)充実していますが、PBITインポートブリッジから完全に抽出されるTabular Object Model (TOM)ほど完全ではありません。
- 管理者API経由で抽出されるレポートメタデータは、PBITインポートブリッジから抽出されるものに比べると非常に限定的です。
- その他の管理者APIの制限事項は以下に記載されています: https://docs.microsoft.com/en-us/power-bi/admin/service-admin-metadata-scanning
- 詳細なレポートのメタデータについては、ブリッジはレポートをダウンロードする機能に依存しています。
レポートダウンロードの制限はこちらに記載されています: https://learn.microsoft.com/en-us/power-bi/create-reports/service-export-to-pbix#limitations
- 標準APIの制限事項:
- 来歴メタデータは、テーブルレベルとカラムレベルではなく、モデルレベルか接続レベルでのみ使用できます。
- Power BIは、[Push]、[Streaming]、[PushStreaming]、[AzureAS]、[AsOnPrem]というデータセットの6つのタイプと、アップロードされたPBIXファイルからのデータセットをサポートしています。
- APIの制限事項があるため、データセットのストラクチャー(テーブルおよびカラムに関して)は、[Push]および[PushStreaming]に対してのみ公開されます。
- PowerQuery M言語解析の制限事項:
- ブリッジは、各テーブルクエリーの来歴を理解するためにPowerQuery M言語解析に依存します。
PowerQuery言語の一部のコンセプトは十分にサポートされていない場合があります:
- 一部の関数(データアクセス関数、データ操作関数)
- サブクエリー、パラメーター、またはカスタム/ラムダ関数に依存する複合クエリー
- 他のスクリプト言語(Kusto、Python、R)に依存するクエリー
サポート
トラブルシューティングパッケージを次の項目と共に提供してください。
- デバッグログ(UIまたはconf/conf.propertiesでMIR_LOG_LEVEL=6を使って設定可能)
- 利用できる場合はメタデータバックアップ(技術的理由によりこの共通オプションが実装されていないブリッジがあるものの、Miscellaneousパラメーターで-backupオプションを使って設定可能)
ブリッジパラメーター
パラメーター名 | 説明 | タイプ | 値 | デフォルト | スコープ | ||
Azure環境 | このパラメーターでは、接続するAzureクラウド環境を選択できます。 大半のユーザーは、パブリックであるGlobalCloudを使用できます。 ナショナル(ソブリン)クラウドに接続するユーザーは、次のような他の値を指定できます: - ChinaCloud (21Vianetが運営するMicrosoft Azure China) - GermanyCloud (Microsoft Azure Deutschland) - USGovCloud (米国政府コミュニティクラウド(GCC)) - USGovDoDL4Cloud (米国政府コミュニティクラウド[高] (GCC High)) - USGovDoDL5Cloud (米国国防総省(DoDインパクトレベル5)) - USSecCloud (米国政府機密情報(DoDインパクトレベル6)) - USNatCloud |
REPOSITORY_MODEL | GlobalCloud | ||||
ログインユーザー | インポートブリッジがログインに使用するユーザー名。 このユーザー名には、インポートしたいオブジェクトにアクセスするための権限が必要です。 Microsoft Azure Power BIの場合、Azure Active Directoryに対する認証方法には次の2つがあります: - 通常のユーザーとして: 通常、ログインユーザーはメールアドレスの形式となります。例: UserName@DirectoryName.onmicrosoft.com - サービスプリンシパルとして: ユーザー名パラメーターは空のままにしておき、テナントIDは入力する必要があります。 |
STRING | |||||
ログインパスワード | インポートブリッジがログインに使用するユーザー名に関連付けられているパスワードを入力します。 Microsoft Azure Power BIの場合、Azure Active Directoryに対する認証方法には次の2つがあります: - 通常のユーザーとして: 通常、ログインユーザーはメールアドレスの形式となります。例: UserName@DirectoryName.onmicrosoft.com - サービスプリンシパルとして: パスワードパラメーターはクライアントシークレットに対応します。 |
パスワード | |||||
クライアントID | アプリケーション用のMicrosoft AzureクライアントIDを入力します。 | STRING | |||||
[Tenant ID] (テナントID) | Microsoft Azure ActiveDirectoryのテナントIDを入力します。 Microsoft Azure Power BIの場合、Azure Active Directoryに対する認証方法には次の2つがあります: - 通常のユーザーとして: 通常、ログインユーザーはメールアドレスの形式となります。例: UserName@DirectoryName.onmicrosoft.com - サービスプリンシパルとして: ユーザー名パラメーターは空のままにしておき、テナントIDは入力する必要があります。 |
STRING | |||||
個人用ワークスペース | 個人用ワークスペースを含めるかどうかを指定します。 - True: 個人用ワークスペースは含められます - False 個人用ワークスペースは除外されます |
BOOLEAN |
|
True | |||
ワークスペースフィルター | フィルターを使用して、含めるワークスペースを指定します。 このパラメーターは利用可能なワークスペースのリストを参照する時に使用し、ワークスペースの完全なリストではなく、ワークスペースのサブセットをリスト表示させます。 フィルターを指定した後は、Workspacesパラメーターを使って一致するワークスペースを参照し、さらに選択を絞り込んでください。 例: name eq 'Sales' or name eq 'Marketing' contains(name,'Sales') or contains(name,'Marketing') startswith(name,'Sales') or endswith(name,'Sales') type eq 'Group' or type eq 'Workspace' type ne 'Personal' and type ne 'PersonalGroup' state eq 'Active' state ne 'Deleted' and state ne 'Removing' isOnDedicatedCapacity eq true |
STRING | |||||
ワークスペース | このパラメーターを使用すれば、Azure Power BIテナントの可能性がある全ワークスペースではなく、利用可能なワークスペースを参照し、インポートするサブセットを選択できます。 一部のワークスペースのみが対象である場合では、テナントに多数のワークスペースがある時に役立つことがあります。 Power BI テナント環境にワークスペースが非常に多く含まれている場合、ワークスペースの全リストを参照することは現実的でないことがあります。 そのような場合は、[ワークスペースフィルター]パラメーターを使ってフィルタリング条件を指定することで、完全なリストの取得を避け、選択範囲がより管理しやすくなります。 ワークスペースをセミコロンで区切ったリストをここで指定できます。 利用可能なワークスペースがすべてインポートするためには、デフォルトである空の値を指定します。 Power BIはquid一意識別子でワークスペースを識別します。例: a3713590-d5aa-488d-82cc-e8cc52c085d7 通常のユーザーとしてログインする場合: - 現在のユーザーのワークスペースは次のように識別されます: me - Power BI は、ワークスペースのリストを、現在ログインしているユーザーがアクセスできるものに制限します。 サービスプリンシパルとしてログインする場合(Admin APIを使用): - すべてのワークスペース(個人用ワークスペースを含む)はguid一意識別子で識別されます。 |
REPOSITORY_SUBSET | |||||
Miscellaneous | はじめに ダッシュで始まるMiscellaneousオプションを指定し、必要であればその後にパラメーターを追加できます。例: - connection.cast MyDatabase1="MICROSOFT SQL SERVER" 該当する場合は複数回使用できるオプションもあります。例: - connection.rename NewConnection1=OldConnection1 -connection.rename NewConnection2=OldConnection2; オプションのリストは長い文字列になるため、${MODEL_BRIDGE_HOME}\data\MIMB\parametersにあり拡張子が.txtであるファイルからロードすることもできます。その場合、オプションはすべて、このパラメーターの唯一の値としてそのファイル内で定義されることが必要です。例: ETL/Miscellaneous.txt JAVA環境のオプション -java.memory <Javaメモリの最大サイズ> (以前の-m) 64ビットJREではデフォルトで1G、またはconf/conf.properties内の設定に従います。例: -java.memory 8G -java.memory 8000M -java.parameters <Javaランタイム環境コマンドラインオプション> (以前の-j) -java.parameters -Dname=value -Xms1G のように、-java.parametersの後ろのテキストはすべてそのままJREに渡されるため、このオプションはMiscellaneousパラメーター内の最後に来る必要があります。インターネットへのアクセスにプロキシを使用している場合は、必要なサードパーティのソフトウェアライブラリーをダウンロードできるよう、次のオプションを設定する必要があります(このオプションはhttps://repo.maven.apache.org/maven2/にアクセスするため、そして例外的にいくつかの他のツールサイトにアクセスするために不可欠です)。 注: プロキシは、(会社の)外部トラフィックをHTTPSで暗号化しながら、HTTPでプロキシにアクセスできる内部トラフィックを信頼しているものがほとんどです。この場合、HTTPSリクエストはHTTPでプロキシに到達し、プロキシはそれをHTTPSで暗号化します。 -java.parameters -java.parameters -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Dhttp.proxyUser=user -Dhttp.proxyPassword=pass モデルインポートのオプション -model.name <モデル名> モデル名をオーバーライドをオーバーライドします。例: -model.name "My Model Name" -prescript <スクリプト名> このオプションによって、ブリッジの実行前にスクリプトを実行できるようになります。 スクリプトはbinディレクトリー(またはconf/conf.propertiesのM_SCRIPT_PATHで指定)にあり、拡張子が.batか.shであることが必要です。 スクリプトのパスに親ディレクトリーの記号( .. )を含めることはできません。 スクリプトは、成功した場合は終了コードである0を、失敗した場合は別の値を返します。 例: -prescript "script.bat arg1 arg2" -postscript <スクリプト名> このオプションによって、ブリッジが正しく実行された後にスクリプトを実行できるようになります。 スクリプトはbinディレクトリー(またはconf/conf.propertiesのM_SCRIPT_PATHで指定)にあり、拡張子が.batか.shであることが必要です。 スクリプトのパスに親ディレクトリーの記号( .. )を含めることはできません。 スクリプトは、成功した場合は終了コードである0を、失敗した場合は別の値を返します。 例: -postscript "script.bat arg1 arg2" -cache.clear インポート前にキャッシュをクリアするため、増分収集せずにフルインポートを実行します。 モデルが変更されず、-cache.clearパラメーターが使われていない場合(増分収集)、新しいバージョンは作成されません。 モデルが変更されず、-cache.clearパラメーターが設定されている場合(増分ではなくフルソースインポート)、新しいバージョンが作成されます。 -backup <directory> さらなるトラブルシューティングのため、入力メタデータを保存できるようにします。指定された<directory>は空であることが必要です。 -restore <ディレクトリー> 復元するバックアップ<ディレクトリー>を指定します。 データ接続オプション 使用するソースとターゲットのデータストアを参照するよう、通常はETL/DIツールとBIツールのインポートブリッジによってデータ接続が生成されます。これらのデータ接続はメタデータ管理ツールによって実際のデータストア(データベースやファイルシステムなど)への接続(メタデータスティッチング)に使われ、完全なエンドツーエンドのデータフローの来歴とインパクト分析が行われます。各データ接続の名前はインポートモデルごとに一意です。DI/BIデザインツールで使われているデータ接続名を可能な限り使用します。そうでない場合は、データベース/スキーマ名、ファイルシステムのパス、Uniform Resource Identifier (URI)など、短くても意味のある接続名が生成されます。次のオプションを使えば、接続を操作できます。これらのオプションによって、レガシーオプションである-c、-cd、-csが置き換えられます。 -connection.cast ConnectionName=ConnectionType SQL解析のためにジェネリックデータベース接続(ODBCやJDBCなど)を正確なデータベースタイプ(ORACLEなど)にキャストします。例: -connection.cast "My Database"="MICROSOFT SQL SERVER" サポートされているデータストア接続タイプのリストは次のとおりです。 ACCESS APACHE CASSANDRA DB2/UDB DENODO GOOGLE BIGQUERY HIVE MYSQL NETEZZA ORACLE POSTGRESQL PRESTO REDSHIFT SALESFORCE SAP HANA SNOWFLAKE MICROSOFT SQL AZURE MICROSOFT SQL SERVER SYBASE SQL SERVER SYBASE AS ENTERPRISE TERADATA VECTORWISE HP VERTICA -connection.rename OldConnection=NewConnection 既存の接続を新しい名前に変更します。例: -connection.rename OldConnectionName=NewConnectionName 既存の複数のデータベース接続の名前を変更し、新しい1つのデータベース接続に統合できます。例: -connection.rename MySchema1=MyDatabase -connection.rename MySchema2=MyDatabase -connection.split oldConnection.Schema1=newConnection データベース接続を1つまたは複数のデータベース接続に分割します。 1つのデータベース接続をスキーマごとの1つの接続に分割できます。例: -connection.split MyDatabase すべてのデータベース接続をスキーマごとの1つの接続に分割できます。例: -connection.split * データベースにスキーマ名を追加することで、データベース接続を明示的に分割し、新しいデータベース接続を作成できます。例: -connection.split MyDatabase.schema1=MySchema1 -connection.map SourcePath=DestinationPath ソースパスをデスティネーションパスにマッピングします。これは、異なるパスが同じオブジェクト(ディレクトリーまたはファイル)をポイントしている場合にファイルシステム接続にとって便利です。 Hadoopでは、あるプロセスがHDFSの完全パスで指定されたCSVファイルに書き込む一方、別のプロセスが、デフォルトのファイル名と拡張子を持つ相対パスで指定されている同じファイルによって実装されたHiveテーブル(外部)から読み取ります。例: -connection.map /user1/folder=hdfs://host:8020/users/user1/folder/file.csv Linuxでは、/users/johnや/users/paulといった複数のシンボリックリンクによって、/dataのような特定のディレクトリー(またはファイル)が参照されます。例: -connection.map /data=/users/John -connection.map /data=/users/paul Windowsでは、M:やN:といった複数のネットワークドライブによって、C:\dataのような特定のディレクトリーが参照されます。例: -connection.map C:\data=M:\ -connection.map C:\data=N:\ -connection.casesensitive ConnectionName... 検出されたデータストアのタイプがこの設定(Microsoft SQL ServerやMySqlなど)をサポートしている場合は、指定された接続内のオブジェクト識別子に対し、大文字と小文字を区別しないデフォルトのマッチングルールがオーバーライドされます。例: -connection.casesensitive "My Database" -connection.caseinsensitive ConnectionName... 検出されたデータストアのタイプがこの設定(Microsoft SQL ServerやMySqlなど)をサポートしている場合は、指定された接続内のオブジェクト識別子に対し、大文字と小文字を区別するデフォルトのマッチングルールがオーバーライドされます。例: -connection.caseinsensitive "My Database" -connection.level AggregationLevel 外部接続の集計レベルを指定します。例: -connection.level catalog サポートされている値のリスト: server catalog schema (デフォルト) MICROSOFT POWER BIのオプション -columns.notpropagated PowerQuery Mのスクリプトステップの解析中に見つかったカラムをソーステーブル/ファイルにプロパゲートして戻さないようにしてください。 -api.user 管理者APIではなく、Power BI Azureサービスの通常の(ユーザーモードの)APIを使用できるようにします。 このような場合、詳細な来歴メタデータは抽出されません。 -summarizePowerQuerySteps ソースからターゲットへの直接的な来歴リレーションシップで、PowerQueryデータ変換を要約するステップを可能にします。 -scanResult <ファイルパス> Rest APIを使ってメタデータを取得する代わりに、メタデータをインポートするファイルパスを指定できるようになります このファイルは、PowerBI GetScanResult Admin Rest API仕様に従って、json形式であることが期待されます。 |
STRING |
ブリッジのマッピング
マッピング情報は利用できません