データ基盤エンジニア is なに?

この記事は広島大学ITエンジニア Advent Calendar 2020 18日目です。

福岡でデータ基盤エンジニアをしております。

githubに草を生やさない日はあってもBigQueryにクエリに投げない日はないです。

データ基盤エンジニアというお仕事をしています。どんなお仕事か紹介してみようかと思います。

 

データ基盤エンジニアはなにをしているの?

データ分析とデータ可視化のために、自社サイトや社内システム、SNSも含めデータを収集しDWHと呼ばれる分析用データベースに保存、活用しやすいようにデータを整形するというお仕事です。このへんでお気づきの方はめざといと思いますが地味です。

 

楽しいの?

楽しいです。楽しい理由を書いていきます。

 

SQLが楽しい

僕はデータ基盤の中でもデータを加工する部分のお仕事をすることが多いです。データ加工はSQLで行います。SQLは楽しいです。最初はforもifも使えないしなんじゃこれ!って思っていましたが、集合指向でデータを操作する感覚が掴めてくるとなんか楽しくなってきます(2回目)。

SQLに興味を持った方はこちらから。将来的にデータサイエンティストやデータアナリストなどのデータ分析をやりたい方もデータ加工のスキルはあればあるだけ得だと思うので、SQLはいくらあっても損のないスキルだと思っています。SQLになれるとPythonのpandasもシンプルに書けるようになる気がします。

 

様々な技術に挑戦できる

上記にあげたSQLはもちろんのこと、日々他のシステムからDWHにデータを移すバッチ処理を行うサーバーをAWSなどで建てたり管理したりするお仕事もデータ基盤エンジニアのお仕事です。また、データアナリストと議論することも多いのでデータ分析の知見なども知ることができ、技術的に刺激的な日々を送ることができます。

 

幅広い業務を知れる

自分はデータアナリスト越しになることが多いですが、マーケティングチームが使うことの多いデータを扱うときは、マーケターがよく使う用語であったり指標であったりを知ることができます。(LTVとかCRMとかって聞いたことありますか?)

物流チームがよく扱うデータのときは特有の泥臭さを感じることもできます。

このように日々ITエンジニアをしているだけでは知れない業務領域をチラ見できて楽しいです。

 

 まとめ

自分がデータ基盤エンジニアという比較的めずらしいお仕事をしているので少しまとめてみました。web以外にもこんなITエンジニアもいるんだよーということで知っていただけたら幸いです。

最後に自分が去年初めたアドベントカレンダーが続いていて嬉しいかったです。ありがとうございます。

SVGで遊んでみた

広島大学ITエンジニアアドベントカレンダー Advent Calendar 2019の15日目の記事です。

SVGとは

ざっくりいうとHTMLっぽいフォーマットでお絵かきできる言語です。 グラフ描画ライブラリなどで利用されています。参考:

github.com

github.com

グラフ描画ライブラリを作ろうと思っていて、必要となったので勉強してみました。

土台

<svg viewBox = "0 0 300 300" width = "300" height = "300">
  
</svg>
body {
  background-color: #ccc;
}

svg {
  background: #fff;
}

f:id:imikoko:20191215230622p:plain

直線

<svg viewBox = "0 0 300 300" width = "300" height = "300">
      <line x1 = "0" y1 = "0" x2 = "300" y2 = "300" stroke = "red" stroke-width = "3"/>
 </svg>

f:id:imikoko:20191215230711p:plain

長方形

<svg viewBox="0 0 300 300" width="300" height="300">
    <rect x = "50" y = "50" width = "150" height = "50" stroke-width = "5" stroke = "green" fill = "yellow"/>
</svg>

f:id:imikoko:20191215230723p:plain

角丸長方形

<svg viewBox="0 0 300 300" width="300" height="300">
    <rect x = "50" y = "50" width = "150" height = "50" stroke-width = "5" stroke = "green" fill = "yellow" rx = "10" ry = "10"/>
</svg>

f:id:imikoko:20191215230735p:plain

文字列

<svg viewBox="0 0 300 300" width="300" height="300">
    <text = font-family = "Arial" x = "150" y = "150" font-size = "30">
      imiko
</svg>

f:id:imikoko:20191215230747p:plain

合わせ技

<svg version     = "1.1"
     baseProfile = "full"
     xmlns       = "http://www.w3.org/2000/svg"
     width       = "300"
     height      = "200">
  <rect width = "100%" height = "100%" fill = "red" />
  <circle cx = "150" cy = "100" r = "80" fill = "green" />
  <text x = "150" y = "125" font-size = "60" text-anchor="middle" fill="white"> SVG
</svg>

f:id:imikoko:20191215230806p:plain

色々

<svg width="200" height="250" version="1.1" >
  //長方形
  <rect x="10" y="10" width="30" height="30" stroke="black" fill="transparent" stroke-width="5"/>
  //角丸長方形
  <rect x="60" y="10" rx="10" ry="10" width="30" height="30" stroke="black" fill="transparent" stroke-width="5"/>
  //◯
  <circle cx="25" cy="75" r="20" stroke="red" fill="transparent" stroke-width="5"/>
  //楕円
  <ellipse cx="75" cy="75" rx="20" ry="5" stroke="red" fill="transparent" stroke-width="5"/>
  
  //直線
  <line x1="10" x2="50" y1="110" y2="150" stroke="orange" fill="transparent" stroke-width="5"/>
  //ギザギザ線
  <polyline points="60 110 65 120 70 115 75 130 80 125 85 140 90 135 95 150 100 145"
      stroke="orange" fill="transparent" stroke-width="5"/>
  //お星様
  <polygon points="50 160 55 180 70 180 60 190 65 205 50 195 35 205 40 190 30 180 45 180"
      stroke="green" fill="transparent" stroke-width="5"/>

  //波線
  <path d="M20,230 Q40,205 50,230 T90,230" fill="none" stroke="blue" stroke-width="5"/>
</svg>

f:id:imikoko:20191215230818p:plain

参考文献

Scalable Vector Graphics - Wikipedia

書いて覚えるSVG: 基礎編 | Stocker.jp / diary

SVG: Scalable Vector Graphics | MDN

2年間プログラムやってて買ってよかった本を書く

広島大学ITエンジニアアドベントカレンダー Advent Calendar 2019の7日目の記事です。

要約

・マスタリングTCP・IP入門編 ・プロになるためのWeb技術入門 ・ノンデザイナーズデザインブック

マスタリングTCP・IP入門編

https://www.amazon.co.jp/dp/4274068765

まずこの本です。ものすごくおすすめです。 ネットワークプロトコルの説明がわかりやすく乗っています。 僕はこの本の説明が他の本やwebにある説明よりわかりやすく感じます。

注意点

最初から順番に読んでいく本というより辞書として使うのが良いと思います。 分厚くてストーリー性がないタイプの本なので最初から読んでいくと、多分すぐ飽きます。ネット上でマスタリングTCP・IPは難しいという評判をよく聞きますが、それは通読しようとして辛くなってくるパターンだと思います。

「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか

https://www.amazon.co.jp/dp/4774142352

副題にイラっとしますが、我慢しましょう()。 これはマスタリングTCP・IPとはちがい通読する本です。この本を通読すると今使われてる技術が、なぜそのような方式になっていて昔とはなにが改善されていて、今後の技術としてどのような技術があるのかというのかがわかるようになります。

副題の煽り具合はまぁイラッとするんですが、いうだけの本ではあります。 僕は遊びでウェブサイト作ろうとするとき、ネットにある記事をひたすらコピペしてエラーが出たらググって解決するマンだったんですが、この本を読んでから作りたいものからなにが必要か判断がつくようになり、自分で考えて作業できるようになりました。

ノンデザイナーズ・デザインブック

https://www.amazon.co.jp/dp/4839955557

デザインをすることって意外と多いです。webアプリっていくらアイディアがおもしろかったり、バックエンドの技術にすごそうなことをしていても見た目がダサいとがっかりされてしまいます。ということでプログラマーってデザイン力が意外と必要なのですが、この本の良いところはデザインを論理的に説明してくれているところと練習問題が豊富なことです。最初はデザインの「4つの基本原則」といのを説明から始まって、そのあと4つの原則の個々の説明になるんですが、一区切りごとに練習問題が出ています。この練習問題が結構厄介で骨が折れるんですがちゃんと全部やると「俺、デザインちょっとできるよっ」って思えるようになります。