13
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Power BI の定期更新で発生しがちなエラー 3種はこう解決する

Last updated at Posted at 2024-12-08

こんな方のための記事です

Power BI デスクトップで「発行」を使い始めて、Power BI サービスのワークスペース(Proライセンスを持っていないユーザーは、マイワークスペースのみ)にアップロードすると、ブラウザ上で最新データに更新されたレポートを見ることができるようになります。

最初はうまく動作していた更新で急にエラーが出始めて修正の仕方がわからない、と困って放置している人のための記事です。よく発生しがちな更新に関するエラーと、その対応方法を紹介するのがこの記事の趣旨です。
image.png

この記事を書いている人

職場でPower BIを使ったり困っている人のサポートをしたりしてます。Qiitaの記事 や 個人的なブログ ではPower AutomateクラウドフローについてのTIPSのようなものを作ったりしているので、良かったら読んだり「いいね!」していただけると励みになります。

エラーメッセージを確認する

セマンティックモデルの場合

更新にエラーが発生したら、その原因をエラーメッセージから確認しましょう。
問題のセマンティックモデルの三点リーダーから「更新履歴」をクリックします。
image.png
更新失敗の状態がわかります。一番左側の詳細列から「表示」をクリックします。
image.png

データフローの場合

データフローも更新履歴の出し方は同じですが、具体的なエラーの内容は画面右端にある↓矢印をクリックすることで、CSVファイルがダウンロードされます。
image.png

エラーの原因とその解決方法

原因1 資格情報がないためのエラー

データセットのエラー表示

image.png

データ ソース エラー:	少なくとも 1 つのデータ ソースの資格情報がないため、スケジュールされている更新が無効です。更新を再度開始するには、このデータセットの設定ページに移動し、すべてのデータ ソースの資格情報を入力してください。その後、スケジュールされている更新を再アクティブ化します。

データフローのエラー表示

image.png

Error: Credentials not found for data source '<Reducted data source>'

Power BIは基本的に1つ以上のデータソースに接続し、そこから情報を吸い上げて表やグラフにするアプリケーションです。インターネット上のWEBサイトなどはID,パスワードが不要なものがほとんどですが、そうはいかないデータソースもあります。

一番よくつかわれるのは、SharePoint Onlineのドキュメントライブラリ上に置かれたCSVファイルやExcelファイル、SharePointリストなどではないでしょうか?

資格情報不足の解決方法

データソースに対する資格情報がうまく設定されていないことが原因なので、設定してやればOKです。

セマンティックモデルの場合

セマンティックモデル>設定>「データソースの資格情報」から警告マークがついているデータソースの「資格情報を編集」をクリックします。
image.png
SharePointの場合は認証方式に「OAuth2」を選択します。
image.png
プライバシーレベルについては、こちらを参考にしてください。

データフローの場合

エラーとして、データソースへの認証情報がないことが記載されています。同じ行の前半を見てみるとテーブル名の列に「financials」とあります。これはデータフローのクエリを表しています。
image.png
ワークフローを編集で開くと確かに資格情報がないことがわかります。「接続の構成」をクリックして認証を加えてやればOKです。
image.png

原因2 ユニークなテーブルになっていなかった(Duplicate value)

image.png

データ ソース エラー:	Column '<oii>Country</oii>' in Table '<oii>dim_Country</oii>' contains a duplicate value 'Canada' and this is not allowed for columns on the one side of a many-to-one relationship or for columns that are used as the primary key of a table. Table: dim_Country.

エラーの内容をよく読むとわかりますが、今回の場合は dim_Countryとういテーブルのなかに「Canada」とうい文字が複数あると指摘されています。

なぜこれがエラーになるかというと、テーブルが1対多のリレーション状態になっているからです。
image.png
dim_Countryのテーブルをデータの変換から開き、最新状態に更新してみると、たしかにCanadaが重複していますね。
image.png
リレーションで1対他の1になる側はかならずユニーク(一意)でなくてはいけません。リレーションを作成した時点ではユニークでも、データが増えるにしたがって重複してしまうこともあります。

Duplicate valueエラーの解決方法

これはもうシンプルで、PowerQueryで一意にならなければいけないキー値の重複を取り除いておくことです。ヘッダー部分で「重複の削除」をクリックします。
image.png
テーブルの値がユニークになりました。
image.png
Power BIでデータ準備をする際にはこのようなディメンションテーブルの整備が非常に重要で、大量のデータを処理するような場合には特に動作パフォーマンスに影響してきます。テーブル名にdim_とつけていますがこれはディメンションテーブルとわかりやすくしています。
Power BIのディメンションテーブルとファクトテーブルを整備して、スタースキーマを形成することがPower BIでは重要というお話はこちらのQiita記事が非常に勉強になりますのでお勧めです。

原因3 型変換ができなかった(DataFormat.Error)

image.png

Error: DataFormat.Error: We couldn't convert to Number.

セマンティックモデルだとエラーにならなくても、データフローの場合には問題となるようです。
Power Queryでは列の型をしっかりと指定するために型変換を行います。たとえば数値ばかりが入っているセルの中に文字列が紛れ込んでいた場合、その列が型変換をおこなうとエラーとなってしまいます。
たとえば今回の場合はSales列の中にabcという文字を紛れ込ませてみました。
image.png
データフローの編集画面でテーブルを最新状態にしてみると、確かにエラーになっています。日付型の列に日付に変換できない値が含まれているような場合にも同じ状態になります。
image.png

型変換 DataFormat.Errorの解決方法

型変換エラーを起こしそうな列には「エラーの置換」を追加しておきましょう。
image.png
image.png
置換先はnullとか、数値なら0に置き換えるのもよいでしょう。このあたりはデータの性質でケースバイケースです。
image.png

事前にできるエラー対策をしておこう

Power BIで発生しがちな更新エラーについて、見分け方とその原因、解消法を紹介しました。最初のうちは問題なくても、データソースが更新されていくうちに更新エラーが発生してしまうことがあります。とくに原因2と3はあらかじめ対処が可能なので、こういうケースがあると知っていると対策もとれて安定します。

なるほどね! と思っていただけたら記事にいいね! していただけると励みになります。

13
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?