YouTubeチャンネルを開設したのでAmazon QuickSightで可視化したい！

# はじめに
　アクションカメラの購入をきっかけに趣味である登山での映像を投稿するYouTubeチャンネルを開設しました。動画を投稿すると、YouTubeStudioからアナリティクスを確認することが可能ですが、AWSを勉強しているということもあり、せっかくならばAmazon QuickSightを利用できないか考えました。今回は、Qiitaの投稿やAWSの公式ブログを参考にYouTubeAPIを活用してDynamoDBに動画データを保管し、QuickSightで可視化してみました。

 ※どのチャンネルなのか特定されないよう、動画IDや動画タイトルは隠しています。
 
# 作ったもの
　[技術検証：AWS Lambdaを使ってYouTube APIから動画データをDynamoDBに挿入する実践手順](https://qiita.com/free-honda/items/5af2cea6c674fba14597)を参考にYouTubeAPIを利用して動画データを取得するLambdaで動画IDを入力し、画面右上の「テスト」をクリックします。するとQuickSightでは設定に応じてこれまでに取得した動画データをもとにグラフが表示されるようにしました。今回は動画別視聴回数を表示する棒グラフ・動画別評価数を表示する折れ線グラフ・投稿した動画のデータの一覧が確認できるテーブルの計3つを作成しました。

:::note info
動画IDとは
例1: https://www.youtube.com/watch?v={動画ID}
例2: https://www.youtube.com/{動画ID}
:::
![qiita1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/daa41794-63b9-493c-818a-a4abfedc7d39.png)

![qiita10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/3452cafd-16d9-4fa1-bae0-f3fbd31cc27f.png)


　今までに投稿した動画が1つだけということもあり、グラフの見栄えとしては微妙なのでYoutubeAPIによって取得した動画データを保管しているDynamoDBに手動でサンプルデータを追加しました。再度確認すると、より分析らしいグラフになったのが分かります。
 
![qiita11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/e494b12a-d2d1-4e79-bee1-523b00a0ab3f.png)

# 構成図
![forqiita2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/74767997-89a7-4d3a-9f57-37a36a5cec4a.png)

# 詳細
### YouTubeAPIを利用して動画データを取得し、DynamoDBに保管する
　参考にした[技術検証：AWS Lambdaを使ってYouTube APIから動画データをDynamoDBに挿入する実践手順](https://qiita.com/free-honda/items/5af2cea6c674fba14597)の手順通りに、今回は動画IDをもとに動画タイトル、視聴数、高評価数、低評価数、投稿日時を取得します。先程のテスト実行時に挿入した動画データがDynamoDBにあることが確認できます。

![qiita4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/fd6d1985-abaf-4387-80b4-b60aa4909690.png)

### DynamoDBに保管したデータをQuickSightで可視化する
　まさにやりたいことが、AWSの公式ブログに記載されていました。[Visualize Amazon DynamoDB insights in Amazon QuickSight using the Amazon Athena DynamoDB connector and AWS Glue](https://aws.amazon.com/jp/blogs/big-data/visualize-amazon-dynamodb-insights-in-amazon-quicksight-using-the-amazon-athena-dynamodb-connector-and-aws-glue/)をもとに進めていきます。今回はYoutubeAPIによって取得した動画データが保管されているDynamoDBと可視化に利用するQuickSight以外にもAthenaとGlueを利用します。QuickSightではデータソースとしてリレーショナルデータストアを使用するため、NoSQL型であるDynamoDBを選択することができないからです（[利用可能なデータソース](https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/supported-data-sources.html)）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/f5add709-fffb-4bd8-93af-3f64f4bea3e0.png)
　そのため、NoSQLデータに対してSQLクエリを実行することができるAthenaを利用します。ただスキーマ情報を認識しないと、SQLを利用した抽出ができないため、Glueを利用します。Glueクローラーを用いることでデータソースのスキーマ情報を自動で検出しGlueデータカタログに登録することができます。動画データが保存されているDynamoDBをデータソースとしてGlueクローラーを実行すると、YouTubeAPIで取得した項目がスキーマとして登録されていることが確認できます。
 
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/608dc8f7-2c2d-4bcd-a38d-4b0995327dd8.png)
　Athenaで動画データが保存されているDynamoDBに対して、すべてを取得するSelect文を実行してみると、YoutubeAPIで取得した動画データが抽出されていることが確認できます。これによってDynamoDBに対してもSQLクエリを実行できるようになりました。

 ![qiita5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/9df56fa8-83f4-4e98-b9d4-89f99dd4f333.png)
 
　あとはQuickSightで分析したい項目に対してグラフを作成するのみです。データセットからAthenaを選択します。データを活用するうえで最適なビジュアルタイプや、フォーマットを設定することで分析が可能です。どういった項目を設定できるかは長くなるので省きますが、実際に使ってみるとかなり設定の柔軟性が高いように感じました。まだまだ投稿した動画が1つのみということでBIツールとして利用するにはほど遠いですが、ある程度投稿できたら改めて利用し、いろいろな設定も合わせて確かめていければと思います。
 
![qiita10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/86cd3253-2257-42a0-917a-ac8a42c36ecb.png)

# 補足
　LookerStudioを学ぶ機会が最近あったので、同様にYouTubeのデータを可視化しました。
 （[こだわるとさらに高度な可視化もできるみたい](https://www.data-be.at/magazine/dataportal-youtube-analytics/)）

![qiitasss.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/88579810-d617-42a4-a320-2e2fe7eae8bd.png)

　結果としてQuickSightと大差ないグラフを作成することができました。QuickSightで表示させるまでにはYoutubeAPIやDynamoDB、Athenaを活用しましたがLookerStudioではYouTubeアナリティクスが初めからデータソースとして選択することができます。その為いくつか手順が必要なQuickSightと比較してLookerStudioは手軽でかつ素早く可視化が可能です。
 
 ![qiita15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3808088/fec4aae4-a1f9-4d45-a9db-c356cedf6034.png)
 
　データをどう活用するかも重要ですが、どのBIツールを活用するかも大切だと改めて感じました。もちろんQuickSightにはLookerStudioにない強みを持っているので、今後は、各BIツールの強みを理解し、それぞれ適切に活用していきたいと思います。
 
記事が良かった・参考になったと思ったらいいね！を付けてくれると嬉しいです！