Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NoCodeツールでWebHookからDWHへのデータの転送処理を爆速で実装した話
Search
Yusuke Tamura
December 26, 2022
Technology
0
320
NoCodeツールでWebHookからDWHへのデータの転送処理を爆速で実装した話
2022/12/21に行われためぐろLT会での登壇資料になります
https://raksul.connpass.com/event/267974/
Yusuke Tamura
December 26, 2022
Tweet
Share
More Decks by Yusuke Tamura
See All by Yusuke Tamura
Developing UI Components Integrating Radix Primitives with Custom CSS
tamtam0423
0
38
Which should be designed first, the data model or the domain model
tamtam0423
0
120
みんなのPython勉強会#100 LT枠 参照カウントから見るPythonのメモリ管理
tamtam0423
4
1.3k
Understanding Metaclass from Type
tamtam0423
0
36
みんなのPython勉強会_LT枠_10_12__5分で理解するディスクリプタ.pdf
tamtam0423
2
740
めぐろLT_ Pythonの弱参照(weakref)を使えば、世界はもっと良くなる
tamtam0423
0
540
みんなのPython勉強会#96 LT枠
tamtam0423
0
180
Other Decks in Technology
See All in Technology
レイクハウスとはなんだったのか?
akuwano
15
1.8k
Plants vs thieves: Automated Tests in the World of Web Security
leichteckig
0
140
Platform EngineeringがあればSREはいらない!? 新時代のSREに求められる役割とは
mshibuya
2
3.5k
第27回クラウド女子会 ~re:Invent 振り返りLT会~ 私の周辺で反響のあった re:Invent 2024 アップデートつれづれ/reinvent-2024-update-reverberated-around-me
emiki
1
570
2025-01-24-SRETT11-OpenTofuについてそろそろ調べてみるか
masasuzu
0
170
論文紹介 ”Long-Context LLMs Meet RAG: Overcoming Challenges for Long Inputs in RAG” @GDG Tokyo
shukob
0
250
デザインシステムを始めるために取り組んだこと - TechTrain x ゆめみ ここを意識してほしい!リファクタリング勉強会
kajitack
2
300
第27回クラウド女子会 ~re:Invent 振り返りLT会~ 宣言型ポリシー、使ってみたらこうだった!
itkr2305
0
280
Autify Company Deck
autifyhq
2
41k
あなたの興味は信頼性?それとも生産性? SREとしてのキャリアに悩むみなさまに伝えたい選択肢
jacopen
5
2.3k
srekaigi2025-hajimete-ippo-aws
masakichieng
0
190
現実的なCompose化戦略 ~既存リスト画面の置き換え~
sansantech
PRO
0
150
Featured
See All Featured
Speed Design
sergeychernyshev
25
750
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
GitHub's CSS Performance
jonrohan
1030
460k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Building Applications with DynamoDB
mza
93
6.2k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Faster Mobile Websites
deanohume
305
30k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Producing Creativity
orderedlist
PRO
343
39k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Adopting Sorbet at Scale
ufuk
74
9.2k
Into the Great Unknown - MozCon
thekraken
34
1.6k
Transcript
@ 2022 Novasell, Inc. All Rights Reserved. NoCodeツールで WebHookからDWHへのデータ転送処理 を爆速で実装した話
1
@ 2022 Novasell, Inc. All Rights Reserved. 自己紹介 GitHub: @tamtam-fitness,
Twitter: @TamtamFitness たむたむといいます! 今年新卒でラクスル /ノバセルに入りました 💪 社内部活のマッスル部で部長もしています!
@ 2022 Novasell, Inc. All Rights Reserved. ところでみなさん、 次の要件の場合どのように実装しますか?
@ 2022 Novasell, Inc. All Rights Reserved. 社内のエンジニアの生産性を分析するために、 - ClickUpのWebhookからステータスの更新情報を取得する
- 取得したデータを最終的にSnowflakeに転送させる 処理を実装することになりました。 Snowflakeへのデータ転送の即時性に関しては求められていないです。 Snowflake…SaaS型のデータウェアハウス ClickUp…タスク管理ツール、スプリント毎にチケットを切り進捗確認をするために使う。
@ 2022 Novasell, Inc. All Rights Reserved. 自前実装パターン - APIGatewayとDynamoDBはPutEventを統合して、
ClickUpWebhookのレスポンスをDynamoDBのレコードとして追加 - DynamoDBのDataExport機能でS3に転送 - SnowflakeのCOPY INTO コマンドでS3のデータを一括ロード
@ 2022 Novasell, Inc. All Rights Reserved. 自前実装パターン - APIGatewayとDynamoDBはPutEventを統合して、
ClickUpWebhookのレスポンスをDynamoDBのレコードとして追加 - DynamoDBのDataExport機能でS3に転送 - SnowflakeのCOPY INTO コマンドでS3のデータを一括ロード 設計から実装(CDK書いたりレビューしたり) までに1週間は少なくともかかりそう...?
@ 2022 Novasell, Inc. All Rights Reserved. NoCodeツール活用パターン - ZapierのZapワークフロー連携
- TriggerとしてWebhookを登録 - 取得したデータを GoogleSheetに転送 - troccoの転送設定 - 転送元をGoogleSheet - 転送先をSnowflake Google Sheet
@ 2022 Novasell, Inc. All Rights Reserved. NoCodeツール活用パターン - ZapierのZapワークフロー連携
- TriggerとしてWebhookを登録 - 取得したデータを GoogleSheetに転送 - troccoの転送設定 - 転送元をGoogleSheet - 転送先をSnowflake Google Sheet 約2日で実装が終わりました🎉
@ 2022 Novasell, Inc. All Rights Reserved. Zapier 様々なサービスを連携させ、業務効率化・自動化を支援するiPaaS (
Integration Platform as a Service ) ※ Zapierの使用画面をキャプチャしたもの
@ 2022 Novasell, Inc. All Rights Reserved. trocco ETL/データ転送・データマート生成・ジョブ管理・データガバナンスなどの データエンジニアリング領域をカバーした、分析基盤構築・運用の支援
SaaS ※ troccoの使用画面をキャプチャしたもの
@ 2022 Novasell, Inc. All Rights Reserved. NoCodeツール活用パターン実装時のQ&A - QWebHookのレスポンスのデータは
jsonのデータ構造のまま Snowflakeへ転送させているの ? A.その方が Snowflakeに raw dataが送られて良いかもですが、 Zapier→ GoogleSheetの際に json形式で1カラムで入れる際手間だったのと 将来的に使うであろうデータも限られていたため、 データを絞りZapierが加工する形でGoogleSheetへ転送し、最終的に Snowflakeへ転送させています。 - Q.GoogleSheet使っているけど、データが蓄積された時はどうするの ? ( 蓄積 or 定期でリフレッシュ ) A.蓄積させています。GoogleSheetのデータ上限1,000万セルですが、 1レコード 5セル程のため 200万レコードまで格納可能です。 月のレコード数が約 3000レコード程度なので、 蓄積自体は50年くらいは大丈夫そうです。
@ 2022 Novasell, Inc. All Rights Reserved. NoCodeツール活用パターン実装時のQ&A - Q.troccoを使った一括ロード処理の更新頻度は
? A.1日1回深夜に動かすように troccoで定義しています。データ反映に即時性が求められてない かつ分析時に昨日のデータが反映されている方が体験的に良いと判断しました。 - Q.GoogleSheet → Snowflakeへのデータの出力方法はどうしているの ? A.TRUNCATE INSERTで全件洗い替えています。月約 3000レコードほどのデータが蓄積しますが、 この程度のデータ量なら直近 5年くらいは少なくとも処理の負担等は意識しなくて問題なさそうです。
@ 2022 Novasell, Inc. All Rights Reserved. NoCodeツール活用パターン実装時のQ&A - Q.自前実装パターンとの料金比較は
? A.自前実装パターン...主コストのAPIGateway, DynamoDB共に最小単位で収まるので 月約 3000円位です。加えて開発工数分の費用がそこそこかかります。 NoCodeパターン...NoCodeツールの有料プランの料金ですがノバセルは全面的にこれらのツール を使っているため利用数で割ったら 5000円は下回りそうです。 - Q.コード管理できるの ? A.troccoは別途料金がかかりますが Git連携しymlファイルで管理できます。 Zapierは2022年 12月時点では存在を確認できていないです。 - Q.エラー通知できるの ? A.Zapierとtroccoどちらも可能です。troccoは簡単に通知設定ができます。 Zapierの場合、 エラー通知用のワークフローを定義し対象のワークフローを監視させる形になるので若干面倒です。
@ 2022 Novasell, Inc. All Rights Reserved. NoCodeツールを活用できそうな場合 - 自社で開発/運用するよりROIが良い
優れたエンジニアになればなるほど内製するためのコストが低くなるが、 属人性の観点などチーム全体の意思決定として長期的に良いかどうかを意識 - ビジネスロジックに依存しない汎用的な処理である 開発工数を下げられるが複雑性に対応できない性質を意識 NoCodeツールに依存しない設計/実装 → 通知やETLなどの処理はNoCode/LowCodeツールを事前に調査すると良いかも!