この記事では
・Power BIのデータフロー機能の使い方と利点
・更新時に起こるエラーの対応方法
について紹介していきます。
Contents
【Summary】
Power BIデータフローの利点は
・データの前処理を一度行っておけば、様々なレポートで繰り返し使いまわせる
・データセットからの取得と違い様々なデータをレポートに接続できる。
点です。
今回対処したエラーは以下の内容です。
・OData: The given URL neither points to an OData service or a feed
・We couldn’t convert to Number… RootActivityId
こちらはどちらも原因はExcelファイル形式によるエラーで.xls、.xlsxでなく.csvにすることで更新エラーの対処できました。
それでは詳細について紹介していきます。
【データフローの機能と利点】
Power BIのデータフロー機能と利点
Power BIデータフローとは
Microsoftの公式HPでは以下のようにデータフローを説明しています。
【Power BI データフローを利用すると、さまざまなデータ ソースに接続し、新しいデータフローを作成したり、新しいエンティティを既存のデータフローに追加したりできます。】
https://docs.microsoft.com/ja-jp/power-bi/transform-model/service-dataflows-data-sources
エンティティとはデータの集合で一つのデータソースのようなイメージで、データフローは一つ以上のエンティティから構成されています。 使用できるデータソースとして以下の画像のように多数存在します。ExcelやsharepointなどMicrosoft製品だけでなくSalesFroceやOracleDatabaseなど他サービスとの接続も可能です。
【Power BIでレポートの自動更新設定にする方法】
Power BIでデータの自動更新を行う場合は
・cloud上に全てのファイルを置く
・データゲートウェイを経由しない場合はcloud上にデータ基を置く
・オンプレミスデータゲートウェイを別途設定することで自動更新可能です。
のいずれかで可能です。オンプレミスの場合は設定したPCが起動していないと自動更新されないので注意が必要です。
レポートの自動更新はワークスペースの
データセット→データセットの資格情報を編集→サインイン→スケジュールされた更新をオン→頻度を指定して適用で完了です。
【データフローの利点】
・前処理したデータを置いておけば、そこから複数のレポートを作成可能 (同じワークスペース内のみ)
・しかも、データセットとの接続と異なり新しく接続するレポートでもQuery側の処理やリレーションをいじれる
理想としてはデータベースからの引き出しは直接レポートにつながずにデータフロー経由にすれば元データへのアクセス権が1つの物でも複数のレポート作成者が扱えそう (セキュリティ上の問題やデータベースへのアクセス過多のなど悪影響もあるので注意が必要かも)。
【データフロー更新時のエラー】
先に結論を書くと
・xls、xlsx形式のファイルを全てcsvに置換して問題なく更新可能になりました。
解決までの試行錯誤は以下に示します。
エラー対処
データフロー作成時に一つのフローに2つのエンティティを作成後、更新時にエラーが発生。データはsharepoin上の物を使用。
出てきたエラーは以下の通り
OData: The given URL neither points to an OData service or a feed.
エラーコードは O Dataがおかしいとか、sharepointの資格情報を認識できていなかったのでサインインし直すが再度上記のエラーが表示される。
しょうがないのでデータフローをエンティティごとに二つに分ける→それでも更新できず。
分割後は先ほどのエラーが表示されず黄色△のエラーマークのみが表示される。
エラー内容のcsvを見てみると文字化けと下記のメッセージ
Error: We couldn’t convert to Number… RootActivityId
クエリ内のデータ型のエラー?かと思い数値型の列でエラーが出そうな列は全て文字列型に変換 しかし、エラー内容も変わらず、更新もできず。
海外でも似たような悩みが・・
正常に動作しているフローに上記のように上手く動作していないファイルを入れるとエラーが出てくるとの事、
エラーファイルを取り除いてもその後もファイルはエラーを掃出すためどうもデータフロー側のバグのような…
ファイルのエラーという事で以前もxlsファイルで読み込めずxlsxファイルでは正常動作していることもありましたが、今回は全てxlsxファイルのため、全てcsvファイルに変換
変換してエンティティを組みなおしたところ、無事更新成功
やはりデータベースに取り込む形式としてはexcelよりもcsvの方が優秀かもしれないです。
Table指定で取り込めないので前処理にひと工夫必要ですがエラーを吐き続けるよりましだと思います。
【データフロー作成時のポイント】
・ファイルはexcel形式でなくcsv形式の方が更新バグも少なく安全
・O Data errorが出た際は原因フォルダを消して確認→それでもだめならエンティティを一旦すべて消して再構築
・RootActivityIdエラーはファイル形式をxls、xlsxからcsvに変換して再確認
【まとめ】
データフローは一度作ってしまえば増分更新や新規レポート作成時の前処理の手間を大きく削減できる非常に便利な機能です。
レポート作成時に少しでも他のレポートでも使うかな?と思うようなデータはデータフローで作成しましょう。
Power BIは無料でも使用できますが拡張機能やプレビュー機能についてはProかPremiumでしか使えません。興味がある方は以下のMicrosoftの公式サイトで細かい機能を確認してください!
コメントいただけましたら分かる範囲で返信させていただきます。
コメントを残す