まるでIT世界のベルトコンベア?データパイプラインとはなにかを分かりやすく解説する
私は主にデータエンジニアをやっていますが、それを非ITの方に言うとまずまちがいなく「???」という顔をされます。
どんな仕事なのかがちょっとだけでも伝わるよう、今回はデータエンジニアの仕事の中で縁の下の力持ち、工場でいうとベルトコンベアのような働きをするデータパイプラインについて話します。
データパイプラインとは?
場所と場所をつなぐ役割―つまりベルトコンベアに例えているわけです―がデータパイプラインの使命です。
("パイプライン"という名前ですが、個人的にはベルトコンベアのほうがしっくりきます)
場所というのはデータが生まれ出る場所だったり、データが加工される場所だったり、データが使われる場所だったりします。
単に場所同士を繋ぐだけでなく、複数の場所からきたデータを一箇所に集めるような働きもしてくれます。
なぜ使うのか?
そもそもなぜデータパイプラインが必要なのでしょうか?
データ処理用のスクリプトを手動で実行するだけではだめなのでしょうか?
理由の1つ目はその手動の作業を自動でやってくれるところにあります。
WindowsであればタスクスケジューラやLinuxであればcronという自動実行の仕組みがありますが、それも単体では使いにくいのでデータパイプラインとして自動化の中に組み込んでしまいます。
あとデータの統合を上手くやってくれる側面があり、上手くミスなくやるということはデータの品質にかかわってきます。
他にもデータの種類や量が増えたときでも自動で拡張してなんとか処理してくれたり、特に既製のデータパイプラインを使えばすぐに構築できて一度のデータ処理を無駄なく行えます。
もちろん新しい技術や製品を使うことに多少の管理コストや学習コストはありますが、そんなもの吹き飛ぶぐらいメリットが大きいです。
どうやって作る?
ごく簡単なものであればスクラッチ(既製品を使わず)で作ることができます。
ただ会社の中のデータ基盤や、個人用としても普通は既製品を使うのが簡単でよいです。
ひとえに既製品といってもオープンソースからパブリッククラウドのサービスまで色々種類があります。
オープンソースで有名なものだとApache AirflowやPrefectなどでしょうか。
パブリッククラウドだとAWS GlueやAzure Data Factoryがあります。
まとめ
データパイプラインはIT世界のベルトコンベアです。
データから知見を得るために縁の下でいろいろ効率化してくれるすごいやつです。
日々の業務や私用で、複数のデータ処理を手動で動かして面倒だと感じていたらデータパイプラインを使ってみてください。
参考
https://medium.com/@eatesaam/data-pipelines-the-backbone-of-data-driven-decisions-8b72473d5480