Power Platformは“大量データ”に弱い!?

🧭 はじめに:データが増えると、動かなくなる?
Power Platformは、業務の自動化やアプリ開発を手軽に実現できるツールとして広く使われています。
特に市民開発者にとっては、ExcelやSharePointなどの身近なデータソースと連携できる点が魅力です。
しかし、実際に業務に組み込もうとすると、こんな問題に直面することがあります:
- 「データが多くなると表示されない…」
- 「フローが途中で止まる…」
- 「処理が遅くて使い物にならない…」
そう、Power Platformは大量データの処理に向いていない場面があるのです。
今回はその理由と、どう工夫すれば乗り越えられるかを解説します。
❓ どこに“大量データの壁”があるのか?
Power Platformには、データ量に関する制約がいくつか存在します。
代表的なものは以下の通りです:
🔹 Power Appsの「Delegation(委任処理)」の制限
Power Appsでは、データソースに対して直接クエリを実行する際、一部の関数や条件が“委任不可”となり、最大500件(既定)しか取得できないという制限があります。
項目 | 内容 |
---|---|
委任可能な関数 | Filter , Sort , Search など(データソースによる) |
委任不可な関数 | Last , Choices , ClearCollect など |
既定の取得件数 | 最大500件(設定で2000件まで拡張可能) |
🔹 Power Automateのループ・実行時間の制限
Power Automateでは、Apply to each(ループ)やDo until(繰り返し)などのアクションに対して、以下のような制限があります:
- ループの最大回数:5000回(有償ライセンスで拡張可能)
- フローの最大実行時間:30日以内(通常は数分〜数時間)
- 実行中のメモリ使用量やステップ数にも制限あり
⚠️ よくあるつまずきポイント
- ❌ SharePointリストに1万件以上のデータがあると、Power Appsで表示できない
- ❌ Excelファイルが大きすぎて、Power Automateで読み込みに失敗する
- ❌ Dataverseのフィルターが複雑すぎて、委任不可になり一部しか表示されない
- ❌ ループ処理が途中で止まり、エラーになる
🧩 解決策1:データの分割とフィルタリング
大量データを扱う場合は、一度にすべてを処理しようとせず、必要な範囲だけを扱うことが重要です。
📌 例:Power Appsで表示件数を制限
Filter(Orders, Status = "未処理" && Date >= Today() - 30)
→ 最近30日以内の未処理データだけを表示することで、委任可能な条件に絞る
📌 例:Power Automateでページング処理
- 「Get items」アクションでページングを有効化
- 1ページあたりの件数を設定し、複数回に分けて取得
🧩 解決策2:データソースの選定と構造化
データソースによって、委任可能な関数や処理性能が大きく異なります。
データソース | 委任処理 | 大量データ対応 | 備考 |
---|---|---|---|
SharePoint | △(制限あり) | 最大30万件程度 | リストビューの工夫が必要 |
Excel | ❌(ほぼ委任不可) | 数千件までが限界 | テーブル化必須、非推奨 |
Dataverse | ◎(委任対応) | 数百万件まで対応 | 高速・安定、Premium必要 |
SQL Server | ◎ | 大量データに強い | On-prem接続は要Gateway |
→ 大量データを扱うなら、DataverseやSQL Serverが推奨です。
🧩 解決策3:バッチ処理・非同期処理の活用
Power Automateでは、一括処理ではなく、バッチ処理や非同期処理に切り替えることで安定性が向上します。
📌 例:Power Automateで Select+Compose によるデータ整形
「Apply to each」アクションの代わりに、Select と Compose を使ってデータを一括整形
- 「Get items」などでデータを取得
- 「Select」アクションで必要なフィールドだけを抽出
- 「Compose」アクションで整形済みデータを確認・利用
🧠 実務での工夫:市民開発者ができること/できないこと
項目 | 市民開発者でも可能 | 開発者の支援が必要 |
---|---|---|
データのフィルタリング | ✅ | - |
委任処理の理解と設計 | ✅(基本) | ✅(複雑な条件) |
データソースの選定 | ✅(SharePoint) | ✅(Dataverse, SQL) |
バッチ処理の設計 | ⚠️ | ✅ |
パフォーマンスチューニング | ❌ | ✅ |
✅ まとめ:Power Platformは“大量データ”に向いていない。でも工夫で乗り越えられる
項目 | 内容 |
---|---|
❌ 一括で大量データを処理 | 表示・実行に制限あり |
✅ フィルタリング・分割処理 | 安定性向上、委任可能に |
✅ DataverseやSQLの活用 | 大量データに強い構成 |
✅ バッチ処理・非同期処理 | 実務での安定運用に有効 |
Power Platformは、少量〜中量のデータを扱うには非常に便利なツールです。
しかし、大量データを扱う場合は、設計の工夫やデータソースの選定が不可欠です。
市民開発者が安心して開発を進めるためには、「どこまでできるか」「どこから支援が必要か」を見極めることが重要です。