現実モデリング

データとかエンジニアリングとか健エミュとか

楽して構築するアナリティクスエンジニア向けターミナル環境整備【Zsh】

対象読者

  • dbtなどを触っている/触ろうとしているデータアナリスト
  • 作業効率を上げたいアナリティクスエンジニア

はじめに

アナリティクスエンジニアを採用するのは難しい。アナリティクスエンジニアの概念を確立したdbtが日本で広まってからまだそんなに年がたっていないのが原因かもしれない。分析用にテーブルを作る人は昔もいたのだろうけど、dbtがあるのとないのとでは「テーブルを作る」の意味が全く違う(と会社のデータ分析基盤を移行して思った)

tech.algoage.dmm.com

でもデータアナリストは一定数いる。なので、社内にdbtを使える人が欲しい場合、データアナリストとして採用してからdbtの使い方を伝授するのが現実的になるだろう。

しかし、「データアナリスト」と「アナリティクスエンジニア」の間のスキル・ギャップは大きい。以下のようなスキルはアナリティクスエンジニアには必須だが、データアナリストで持っている人は珍しいと思う。

  1. Gitの操作
    • 単純なコマンド
    • cherry-pick など単純ではなさそうなコマンド
    • GitHub, GitLabなどのリモートレポジトリ特有の操作
    • レビューに適したコミットメッセージの書き方
  2. UNIX系シェルコマンド操作
    • cd , ls , ...
  3. ローカルでのパッケージ管理、バージョン管理
    • 「あれ、このコマンド動かない」「pip showしてバージョン教えてください」「pip install --upgradeすると動くと思いますよ」

などなど。上記のようなスキルがないと業務としてのアナリティクスエンジニアリングは難しいが、データアナリストをアナリティクスエンジニアに転身させるうえでは深めの溝になりがちで、ここを超える手段を提供しないといけないな、と思うようになってきた。

そういうわけなので、とりあえず始めやすいターミナル環境の構築から始めようと思う。社内でよく聞かれるのでブログとしてまとめて「あとはこれ読んでおいてね」で終わらせたい。

前提

  • VSCodeの統合ターミナルで利用する
    • ギークらしく、iTerm2などのシェル用のアプリケーションを別ウィンドウで立ち上げたりはしない
    • ギークっぽい環境構築ガイドはしない
  • MacZshを利用する
    • Windowsの場合、WSLでlinux用Homebrewを入れて、zshをインストールしてから下記の動作を実行すれば環境が構築できると思う
  • コマンドをコピペすれば動くようにする
    • 細かいコマンドの解説はしない

やること

  1. デフォルトのシェルをzshに設定する
  2. zsh-autosuggestionsを導入する
  3. oh-my-zshを導入する
  4. zsh-autocompleteを導入する
  5. zsh-syntax-highlightingを入れる

やってみよう!

一つ一つ動作を確認しながらやっていくのがお勧め

デフォルトのシェルをzshに設定する

chsh -s $(which zsh)
echo $SHELL
# /bin/zsh もしくは /usr/bin/zshと出てくればOK
# 出てこなければターミナルかPC本体を再起動してみよう。

zsh-autosuggestionsを導入する

github.com

過去に打ったコマンドが自動でサジェストしてくれるようになる。同じコマンドを少し変えて何度も打ち直すような用途は結構あるので、便利。公式レポジトリにある動画を見ればイメージがわきそう。

実際に導入してみよう。

brew install zsh-autosuggestions
echo source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh >> ~/.zshrc
source ~/.zshrc

oh-my-zshを導入する

ohmyz.sh

zshを使う上ではとても便利なフレームワーク

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

こういう感じになっていれば成功

oh-my-zsh導入後のターミナル

デフォルトのターミナル環境だと、今自分がどのブランチになるのか迷ったりする場合があるが、そういうのを防いでくれる。もちろん、便利なプラグイン機能やテーマ機能があるが、この場では割愛します。詳しくは「oh-my-zsh 活用」などでググるといろいろ出てきます。

zsh-autocompleteを導入する

github.com

自動で補完してくれるようになります。超便利。

git clone --depth 1 -- https://github.com/marlonrichert/zsh-autocomplete.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autocomplete
echo source ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autocomplete/zsh-autocomplete.plugin.zsh >> ~/.zshrc
source ~/.zshrc

zsh-syntax-highlightingを導入する

github.com

ターミナル内でもシンタックスハイライトが効くようになってすごく便利。

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
sed -i 's/plugins=(git)/plugins=(git zsh-syntax-highlighting)/g' ~/.zshrc
source ~/.zshrc

終わりに

  • シェル環境を整えておくとdbtの操作をするときなどにすごく便利だし、もちろんそれ以外にも用途はあるので、何かと整備しておくといいことがあります
  • エイリアスの設定とかもしておくといいかも