29
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Power BIAdvent Calendar 2021

Day 6

Power Queryのベストプラクティス

Last updated at Posted at 2021-12-06

はじめに

 Docsには、各種ベストプラクティスが掲載されています。今回は、Power Queryのベストプラクティスをみていきましょう。

参照

適切なコネクターの選択

例として、ODBCではなく、SQL Server コネクタを選択すると大幅パフォーマンスが上がるよと。

関係することとしては、以下

早期にフィルター

常に、クエリの初期段階またはできるだけ早い段階でデータをフィルターすること

(大量データ等で)不用意にやってはいけない、やりっぱなしにしてステップを残したままにしたりしてはいけないのはソートです。
ソートではなく、フィルターですね。

ビジュアルに使わない列も削除してしまう(不要だとフィルターしてしまう意味)も大事です。
Power Queryのあとのデータモデル(データセット、セマンティックモデル)は必要な列のみで見通しよくなるようにしましょう。

コストの高い操作は最後に実行

大量データの場合、並べ替えを行うと非常に時間がかかる場合があります。並べ変えは、使うとよいな、という場合以外は、使わずがいいですね。

通常のプレビューでデータ操作できる状態は、ストリーミングと呼ぶとあります。

データのサブセットに対して一時的に作業する

先頭の何行かに絞って、処理するステップの絞る、そしてルールが固まったら、最初に絞ったステップを削除するとよい

正しいデータの型を

最も大事なステップのひとつですね。Any(任意)のデータタイプ(ABC123のアイコン)は、思わぬ結果になる可能性がありNGですね。

データをざっと確認する(エクスプローラー)

データ プロファイリング ツールを適宜利用しましょう。

作業内容を文書化しましょう

適用したステップはそのまま文書化になると。適宜自分がわかるものに修正すると、立派なツールベースのドキュメントになります。
私は、このステップは英語で記載されるように設定します。
image.png
ときどき、日本語で記載されることがありますが、わかればよいので気にしないようにしています。

英語か日本語かは、[オプションと設定]/[オプション]/[グローバル]/[地域の設定]/[クエリ ステップ]です。
image.png

モジュール型のアプローチを

クエリが多数になったら分割することができると。
image.png

これでクエリが2つに分かれます。確かに見やすいですね。

クエリのグルーピングを

確かにこれも、適宜行うと、見やすさの向上や後でみても分かりやすいですね。

先々の更新時に問題が発生しないようにすること

最優先事項(トップ・プライオリティ)とのこと。
エラーが発生しないか、列の削除が影響しないか等気配りが大事ですね。

パラメーターの使用

動的なクエリのベストプラクティスなので、適宜利用をとのこと。

再利用可能な関数を作成する

カスタム関数を作ったら、再利用できるようにすると尚よい、ということですね。

(おまけ)Power Query 詳細エディターの文字拡大/縮小ショートカット

すぐ忘れるので覚書です

[Ctrl] + [Shift] + [+] / [-]

おわりに

 本Docsのライターの一人は、Power Queryの著書等で有名な、Miguel Escobarですね。彼の解説等は本当にわかりやすいです。

29
26
3

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
29
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?