この記事はちゅらデータ Advent Calendar 2023 15日目の記事です。
概要
ちゅらデータは2023/09に学生向けのインターンを開催しました!
データエンジニアコースの内容としては以下です
オンラインでの講義
実践ワークに向けてデータエンジニア入門として下記の技術トピックを学んでいただきます
■Githubでのチーム開発
■AWSでのサーバ構築
■Snowflakeでのデータウェアハウス構築
■dbt(Data Build Tool)でのデータパイプライン構築沖縄本社での実践ワーク
データ基盤構築をチームで5日間かけて取り組んでいただきます
私はdbtの担当として後半の5日間メンターとして沖縄本社へと赴き、手伝いをしていました(私自身はちゅらデータ所属ではなく、親会社のDATUM STUDIOの社員ですが、、、w)。
今回は主に私が担当したデータエンジニアコースの後半5日間の実践ワークについて紹介します。
学生の皆さんの参加記
皆さんキャッチアップがものすごく速くて優秀な方ばかりでした。
課題内容
ECサイトを模したシステムに関してairbyteを使ってデータ取り込みからdbtでの変換、tableauでの可視化までを実施します。
Extract/Load
上流は以下のような構成になっています(うろ覚え)。
この上流システムからAirbyteを使ってSnowflakeへデータ取り込みを行います。本当はAirbyteは上流システムと異なるAWSアカウントの方が実務っぽいんですが、用意が面倒なので同じアカウントになっています。上流側のネットワークも触ることができるので、FWに穴をあけることも出来るのですが、学生の皆さんはきっちりVPC Peeringを設定して接続をしていました
(ちなみにデータはほとんどChatGPTが作ってくれました)
Transform
Transform部分にはdbt cloud, BIにはTableauを使っています。
dbtはdimensional modelingを用いて以下のような指標群を作ってもらいました。
- 売上
- 在庫数
- 在庫回転率
ディメンションは以下を設定しました。
- 日付
- 倉庫
- 商品
- スーパーバイザー
これは @foursue と課題案を考えている時のホワイトボード
BI
Tableau部分に関してはそれぞれの指標とディメンションの対応を与えて可視化をしてもらいました。
(どこかでみたことのある改行)
設定した罠
いくつかのひっかけポイントを用意したのでここで種明かしします
1: マスタの更新漏れ
これは罠というより私のミスですw
1週間分のマスタデータの更新DMLを流し、AirbyteのCDC機能で取り込みを行ってもらったのですが、私が誤って1日飛ばしてマスタを更新してしまいました。ですがマスタの再構築がめんどう実務上はマスタの断面を元に戻すことは不可能なのでマスタの再連携はリジェクトしました。大人をなめるな。
在庫マスタだったので幸いにも出庫履歴と入庫履歴から在庫マスタの在庫数は算出できましたが、実際は万引きや在庫廃棄もあるので完全に復旧するのは難しいよ〜みたいなしみじみ話も混ぜてその場を乗り切りましたw
2: 倉庫IDの管理体系ズレ
販売システムと在庫システムで同じ倉庫ID
というカラムを用意していましたが、これらは別システムなので当然似て非なる列です。本当は名前などで名寄せが必要なのですが、これに気づいた方はいませんでした。連番を適当にランダムソートしただけなので流石に気付けないですね
おわりに
学生のインターンにメンターとして参加した話と裏話を書きました。参加された学生の皆さんが本当にレベルが高くて、自分もただ技術をキャッチアップするだけでなく、それを以って何を成すかまで考えないといけないなと襟を正されたような一週間でした。