Power BIとconnpassのWeb APIでデータとともにコミュニティの一年を振り返る

# はじめに
　年末に一年を振り返る、来年を想う、大事ですね。そんな振り返りをデータとともに行うと、想いも深まります。例として、connpassのWeb APIでPower BIで接続しデータ取得する、ということともに、Power BIやPower Platformの一年を振り返ってみます。

# connpassの APIからデータ取得

## まずはサンプルで
 connpassのページ下部にリンクがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/8bbb9781-4a53-61a5-1e75-564d0eb508e7.png)

https://connpass.com/about/api/

リクエストURL、検索クエリと、はじめての方は難しいな、と思われるかもしれませんが、サンプルがあるので、そこをアクセスしてみましょう。**python**をキーワードとしてデータをひっぱる場合ですね。

```:サンプル
https://connpass.com/api/v1/event/?keyword=python
```

ずらっと文字列が並びます。ざぁーっと見てみると、それほど取得データが多くないように見えます。検索クエリの表のcount、取得件数を見てみると、**初期値: 10**なので、デフォルト（既定）で10件しかとらないようですね。最大値は100とあります。表の欄外に

> パラメータを複数指定する場合は、 name=value1&name=value2&... または name=value1,value2... のように指定できます。

とあるので、サンプルに付け足してみます。

```:サンプルに2つめのパラメータ（&count=100）をプラス
https://connpass.com/api/v1/event/?keyword=python&count=100
```

10倍データを引っ張れました。このような形でテータが取れれば、Power BIでデータを読み込むことができます。

## Power BI 勉強会の場合

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/a2c861a0-f212-7bd7-8f1a-3b74c51cd78e.png)

ハッシュタグは、**PBIJP**なので、キーワードを変えてみます。

```:サンプルのキーワードを変更
https://connpass.com/api/v1/event/?keyword=PBIJP
```

そうすると得られる応答からconnpassグループのIDが、seriesのIDが、3366とわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/6effca06-b66b-e46f-a79d-5ea7a09938d4.png)

再度書き換えてみます。

```:サンプルに2つめのパラメータ（&count=100）をプラス
https://connpass.com/api/v1/event/?series_id=3366&count=100
```

取得できたようですね!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/5f8a088b-98b4-096e-7215-bfb5834c3767.png)

# Power BI Desktopで取得～可視化

## Power BI Desktopでデータの取得

「データの取得」/「Web」から

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/d1dbdc93-3efe-04c9-559c-403810a482c8.png)

URLを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/5600b980-bf71-80cc-8d0d-875d1c2b8267.png)

## Power Query エディターで整理

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/e31cabd9-56ac-5de9-3247-4ff830980690.png)

データが取得できているようですが、まだデータが見えません。いくつか対応方法がありますが、今回は、データのアイコンを右クリックから進みます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/1a8c8430-619b-d747-e241-3580d059bdd1.png)

応答データはJSON形式なのでJSONを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/f0461c71-59fb-21d5-03f6-0e2c0db79455.png)

そうすると、データは89件取れていることがわかります（最大値100件に収まっていてますね）。ここで、**list**で中身に入っていき

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/89deda9f-82d9-2b5d-33bc-66366a89aaf6.png)

レコードのリストが並んだところで、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/0e8a7448-2029-6b65-39a9-50bc6c3f0973.png)

テーブルに変換します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/9b27e66e-523a-f0d7-546b-ab969b5f1cc6.png)

確認画面はエラーがでたときの対処です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/3eb0793a-25d5-c78a-a325-a0a973c57f21.png)

適用したステップでテーブルへの変換が処理されたことを確認し

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/efd6b03f-834b-8306-8ffe-f247fe2ad4f6.png)

今並んで見えているものは（リストとはあまり変わらないように見えても）テーブルで展開ができるので

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/77f42a2f-0000-896d-633a-7104c1513483.png)

プレフィックス（列名に接頭辞を付ける）は不要なのでチェックをはずし展開すると

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/bb802d3c-4ebe-1018-d51a-4eb9e4d99a96.png)

データが取得できます。

あとは、いつもの

- 必要な列を残す、不要な列は消す
- 型を[ABC/123]のAnyのままにしない。テキストなり数値なり決める。
- 日付と時刻は日付に

といった鉄則的な整理で綺麗にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/82479b04-b9d8-f51b-d311-1726fefd4191.png)


Power Queryの鉄則（ベストプラクティス）に関してはこちらもご参照を

https://qiita.com/ishiayaya/items/5647c7b481603e9c5c14

## Power BI Desktopによる可視化

日付テーブルは忘れずに正しく作りましょう。

https://qiita.com/moexken/items/b268ef8803c3113db755

https://qiita.com/ishiayaya/items/a24fb8952389bf65de7b


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/88e6af78-753d-2525-fece-ebb827f4eacb.png)

慣れれば1分ぐらいですね。あとは可視化するだけです（略）

# Power BI 勉強会

コロナ禍と思えない開催回数、人数等ですね。内容もレベル高なので本当にありがたいです。

https://ishiayaya.net/PBIJP2021

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/bccf70b6-0d4d-122c-9954-451a8cd59c15.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/290a6b4d-345b-3608-9de5-7892e71ef08e.png)


## 分科会（DAX BootchampとPower Query 秘密特訓「虎の穴」）

半日、少人数でじっくりと聞いていただき、アドバイス、フィードバックもいただける、という贅沢な機会をいただきました。
新らしく来られれる方、お待ちしておます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/00ee740c-7dfb-387e-f5c4-135464a43e28.png)

# 市民開発者 なってみよう!

今年の1月から、Microsoft の森口理恵さんのアドバイスも受けて、MVPになるためにも取り組もうと始めました。集計してみてびっくり！

私も結構な数の開催と、参加の方々がいらっしゃったんですね！可視化して実感できました。Power BIいいねw

https://ishiayaya.net/TryCivicEngr2021

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/38effaa3-af80-82a4-b32e-4b1571d01691.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/1f3bcce1-0fdb-5490-cd4d-a5e7bc679465.png)

# APIはどんな動きをするのか、より知る

　今年、特に私が学んだのは、
　　**勉強会やブログ等で見たことをやってみた、できた**
 というのは
　　**第一歩**
次の二歩目は、その操作したことや動きはどんな意味を持つのか、というのを
　　**考えること**
が大事ということです。

　例えば、このconnpassからAPIを通じて、Power BIで可視化するというのは、今回の記事を書くにあたって、先人が書かれているか、グルることで確認しました。
そうすると、 @kenakamu （けんさん）がかなり丁寧にかつコードの説明やAPIの特性も含めて、技術的な側面もきちっと書かれています。

https://qiita.com/kenakamu/items/e52dc82f5cf3c609b467

　一年前の私では、Power QueryのM言語の理解が浅く、記載されていることをどう解釈すればよいのかわからなかったと思います。

Power BI 勉強会のPower Query 虎の穴で、非常に多く、参加の皆さんの取り組みやかがたさんのアドバイスを聞いてきた今の私は、大概の技術的な文書をみても、**ひるまなく**なることはできましたw

けんさんが書かれていることを参照しながら、やってみると... 例えば「Postman で実行してみる」は...

Postmanはこちらのサイトですね。

https://www.postman.com

このように非常に見やすくAPIの応答、JSONの内容がわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/3dbc24f0-39bc-b57d-15b1-e0188caea326.png)

Qiitaのコードの貼り付けは、このボタンでコピーして...

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/d71593da-77a2-ccc8-9ec0-a972a81008bb.png)

Power Query エディターで空のクエリを呼び出して

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/9900c7d9-6811-8b70-99b9-962387d9d876.png)

右クリックまたはリボンから「詳細エディター」を開き、クエリの全てが見えるようにし

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/5d80e8f6-3a7a-a8d1-9197-93082cca1706.png)

Ctrl + Aで全部消して

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/6734c8aa-d47f-f1fe-9520-c0b7609a3d73.png)

置き換えちゃいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/c7dbdffa-bf92-4af2-c9c6-2f037d6d7607.png)

そうすると、適用したステップが分解されるとともに、データが取得できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/1eee6b92-9a36-b3d9-b03c-f54220b27e79.png)

その上で、けんさんの記事を合わせて読み進めたり、Power Queryを眺めたりします。

このステップとその結果が、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/235286b3-5dd9-2bb5-c992-01967e647784.png)

M言語ではこうなるのか

```fsharp 
let
    Count = 10,
```

とわかったり、さらにけんさんのブログやさらにリファレンスされているかがたさんのブログの観点を確認していき、なるほど～と**味わう**、**できるだけ腹落ちする**　といったことが、三歩、四歩、トコトコ... という感じかなと思います。

# その他：Udemyの可視化

11月にリリースしたUdemyコンテンツ「[Power BIの基本](https://www.udemy.com/course/ishiayaya/)」の受講者概況です。12月にはUdemy Businessにも選定され、約500名と多くの方に学んでいただき、本当にありがたいです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/2efdb8d7-6057-df50-eae4-e6b1c1165fbe.png)

# おわりに
　たくさんのことを勉強する機会をいただき、1月から自分でもコミュニティ「市民開発者 なってみよう!」を立ち上げたくさんの方に参加いただき、9月にMicorosoft MVP (Data Platform）を受賞し、人生初のMCPも、PL-900、SC-900、DA-100と合格でき、11月にはUdemyコンテンツを提供し約500名の方に受講いただき、なんとか健康に過ごすこともできて、本当にありがたい1年でした。
　年末年始は、PL-900の本の執筆をほぼやりきりたいと思っています。来年もさらに継続して取り組んでいきたいです。

　今年一年ありがとうございました。[Advent Calender 2021も50本の素晴らしい記事](https://qiita.com/advent-calendar/2021/powerbi)で感謝、感謝です。皆様、よいお年を！来年もよろしくお願いいたします。