2021/1 時点では、プレビューの機能となりますが、Power BI データフロー で使用するストレージを、Power BI で提供される内部ストレージではなく、Azure Data Lake Storage Gen2 (ADL Gen2) を使用するという設定があります。
この設定により ADL Gen2 を使用した場合、どのようにデータが格納されるのかを確認したことが無かったので、一度試してみました。
Contents
データフローのドキュメント
データフローのドキュメントもいくつかありますので、今回関連するものを一通りまとめておきたいと思います。
データフローのドキュメントですが、Power BI だけでなく、いくつかの場所で公開が行われています。
Power BI で使用する部分であれば、Power BI のドキュメントを読めば触ることができるかと思いますが、データフロー全体の情報を必要とした場合には、各ドキュメントを参照するようにした方がよいかと思います。
Power BI
Power Query
Power Apps
また、Power BI Pro / Premium では、データフローで使用することができる機能に差があります。
Pro と Premium の基本的な機能差については、価格と製品の比較 に記載されていますが、データフローに特化した差については、次のドキュメントから確認することができますので、データフローの全機能を活用したい場合には、Premium の機能のドキュメントにも目を通した方が良いかと思います。
データフローのストレージを ADL Gen2 に変更する
データフローのストレージを ADL Gen2 に変更する手順については、次のドキュメントから確認できます。
Power BI の Azure Active Directory のテナントに含まれている Azure サブスクリプション内に事前に ADL Gen2 のストレージを作成しておく必要があるのですが、作成後には、ドキュメント内の次の記載に注意をしておく必要があります。
独自の ADLS Gen 2 アカウントを使用するには、ストレージ アカウント、リソース グループ、サブスクリプションのいずれかの層で所有者のアクセス許可が必要です。 管理者であっても、自分自身に所有者のアクセス許可を割り当てる必要があります。
Power BI の管理ポータル の 「Azure 接続 (プレビュー)」 の「テナントレベルのストレージ (プレビュー)」から、データフローで使用するストレージを ADL Gen2 に変更することができます。
Azure のサブスクリプションの管理者で Power BI のポータルにアクセスしていれば、ストレージアカウントの選択までできますが、上記したドキュメントの引用のように、サブスクリプションの管理者であっても「適切なリソースの所有者として明示的に指定」されていなければ、接続を行おうとするとアクセス権のエラーとなります。
接続をするためには、管理ポータルから接続の操作をするユーザーが、選択した ADL Gen2 の所有者として設定されている必要がありますので、ストレージアカウントは選択できるが、接続をしようとするとエラーとなる場合は、ストレージアカウントのアクセス制御 (IAM) の設定を見直した方がよいかと思います。
管理ポータルでストレージアカウントに接続ができると、ストレージ内に、次のコンテナーが作成されます。
ワークスペースで使用するストレージを設定する
データフローの制限事項と考慮事項 に記載されていますが、データフローは「マイ ワークスペース」では利用できませんので、新規に作成したワークスペースでのみ作成ができます。
データフローは、"マイ ワークスペース" においては利用できません
管理ポータルで接続の設定を行っても、データフローが作成できるワークスペースではデフォルトの設定では、Power BI の内部ストレージにデータフローの情報が格納されます。
ADL Gen2 に情報を格納するためには、ワークスペース単位で明示的に設定をする必要があるようです。
ワークスペースの作成後に、「ワークスペースの設定」から、Azure 接続の設定を行うことができます。
管理ポータルで設定をしたストレージを使用する場合は「既定の Azure 接続を使用する」を有効化することで、設定が反映されます。
ワークスペース単位でストレージを変更することもできるようですが、これらの設定を行わないと、データフローで使用されるストレージは、内部ストレージの状態となります。
ディレクトリ構成の理解
ここまでの設定が行えていれば、データフローの作成を行うと、ADL Gen2 にデータフローのファイルが格納されます。
この時に格納されるデータのディレクトリ構成ですが、Power Query の次のドキュメントが参考になるようです。
データフローによって取得されたデータについては、データ更新のタイミングごとに残るようになっており、今回作成したデータフローであれば、次のように格納が行われているようでした。
Power BI から、データフローのデータを取得しようとした場合、model.json に記載されている最新の更新タイミングのファイルが自動で取得されるようです。
ADL Gen2 を直接参照したデータアクセスについては、どのファイルを確認するかを意識しておいた方がよさそうですね。