※ 当ページには【広告/PR】を含む場合があります。
2020/06/19
最近ではラズパイを利用して、機械学習を応用したアプリケーション走らせるようなテーマも良く見受けられます。人工知能技術の分野において、データサイエンスは非常に重要なテーマであり、機械と人間を相互的理解できるjson形式のデータはますます存在感が増していると感じます。データサイエンスに特化したラズパイの環境づくりにおいて、jq
は必ずインストールしておきたい便利ツールです。今回はラズパイにjqをインストールして利用するという内容です。
ラズベリーパイ4B 4GB 技適対応品 Raspberry Pi + AI 電子工作 超入門 ラズパイとEdge TPUで学ぶAIの作り方 jqのインストール
とりあえず以下の2通りの方法でインストールを試します。パッケージマネージャからインストールする
こちらが一番簡単なインストール方法です。まず、スタートメニューからAdd/Remove Software
をクリックします。jq-1.5
のパッケージにチェックを入れて[Apply]
のボタンを押すとインストールが始まります。インストールが正常に完了すると以下のようにjq
コマンドが利用できます。ビルドインストールする
パッケージインストールを利用したくない方や最新のjq-1.6
を利用したい場合には、jq公式のgithubからソースコードを拾ってきてラズパイ上でビルドします。参考サイトなお、今回は特にjq-1.6を利用するほどのモチベーションは無かったので、以降の内容ではパッケージインストール版で動作確認をしています。
ラズベリーパイ4B 4GB 技適対応品 Raspberry Pi + AI 電子工作 超入門 ラズパイとEdge TPUで学ぶAIの作り方 jqの利用例
せっかくラズパイにjqが導入できたので、個人的に気に入っている用例を数点以下に挙げておきます。1. dockerコマンドと併用
docker inspect
コマンドで吐き出されるレスポンスはjson形式ですので、特定のキーだけをフィルターするのにjqは最適です。といろいろと応用が効きます。ただし、長ったらしいキーの名前は覚えておかないと仕方がないのは相変わらずですが、jqの操作に慣れるために使っておいて損はないと思います。2. AWS サービスから送信されるJSON RESPONSE
LambdaやAPI Gateway, DynamoDBといったAWSクラウド上にデプロイした自作APIに、ラズパイ側からcurlで何かしらリクエストした時のjsonのレスポンスを受け取るときにjqは便利です。特にDynamoDBでのテーブル内の検索条件を含めたQuery操作は、全要素スキャンより処理時間がかかるので、サーバー側に負荷が掛かりやすいですし、DynamoDBの読み込みのキャパシティユニットだけでなく、踏み台にしているLambdaのメモリサイズやタイムアウト値の設定いかんでは、処理が落ちる可能性もあります。単純な検索条件ならば、クライアント側でjqで要素をフィルターすることで、サーバー側で無駄にリソースを消費しないように工夫することができます。
ラズベリーパイ4B 4GB 技適対応品 Raspberry Pi + AI 電子工作 超入門 ラズパイとEdge TPUで学ぶAIの作り方 まとめ
ラズパイを使っていてレスポンスにjson形式で返ってくるコマンドがあるならば、jqを使わない手はありません。データサイエンスが盛んな今だからこそ、ラズパイにもjqをインストールして活用されるといいと思います。なおjqの学習に関しての書籍はないので、マニュアルman jq
を眺めながら地道に操作を覚えていくとよいと思います。以前のこんな記事で特集しましたが、オンラインのplaygroud
の方もあるので興味があれば覗いてみてください。