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
Scheduled Queryの運用を楽にするBotを実装してみたお話
Search
Yuu.Kimy
December 13, 2019
Technology
0
180
Scheduled Queryの運用を楽にするBotを実装してみたお話
bq_sushi #12 忘年会@六本木でLT発表させて頂いた時の資料です。
BigQueryのScheduled Queryのジョブステータスを通知できる簡易Botを実装した内容になります。
Yuu.Kimy
December 13, 2019
Tweet
Share
More Decks by Yuu.Kimy
See All by Yuu.Kimy
dbtをAirflowで動かす道のりは続く...
yuukimiya
0
860
Airflow社内勉強会@Classi
yuukimiya
0
180
DPCT発表資料.pdf
yuukimiya
0
9.5k
お家で子どもと楽しむプログラミング
yuukimiya
0
1.4k
Other Decks in Technology
See All in Technology
DevIO2025_継続的なサービス開発のための技術的意思決定のポイント / how-to-tech-decision-makaing-devio2025
nologyance
1
430
はじめてのOSS開発からみえたGo言語の強み
shibukazu
1
720
プラットフォーム転換期におけるGitHub Copilot活用〜Coding agentがそれを加速するか〜 / Leveraging GitHub Copilot During Platform Transition Periods
aeonpeople
1
180
5年目から始める Vue3 サイト改善 #frontendo
tacck
PRO
3
220
dbt開発 with Claude Codeのためのガードレール設計
10xinc
2
1.3k
Generative AI Japan 第一回生成AI実践研究会「AI駆動開発の現在地──ブレイクスルーの鍵を握るのはデータ領域」
shisyu_gaku
0
300
Automating Web Accessibility Testing with AI Agents
maminami373
0
1.3k
【初心者向け】ローカルLLMの色々な動かし方まとめ
aratako
7
3.5k
「全員プロダクトマネージャー」を実現する、Cursorによる仕様検討の自動運転
applism118
22
12k
Agile PBL at New Grads Trainings
kawaguti
PRO
1
440
Android Audio: Beyond Winning On It
atsushieno
0
2.1k
slog.Handlerのよくある実装ミス
sakiengineer
4
290
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
RailsConf 2023
tenderlove
30
1.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.9k
Designing for Performance
lara
610
69k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Rails Girls Zürich Keynote
gr2m
95
14k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Transcript
- bq_sushi #12 忘年会@六本木 - Scheduled Queryの運用を楽にするBotを実装してみたお話 Classi株式会社
データAI部 木宮 勇毅 ちょっとだけ
• 自己紹介 • Classiについて • BigQueryのScheduled Queryについて • Botのレシピ
• まとめ 目次
• 名前: 木宮 勇毅(@yuu_kimy) • 所属: Classi株式会社 •
仕事: データエンジニア • 特技: 家事全般 • 趣味: 海外ドラマ鑑賞 自己紹介
Classiについて ◯ 高校への営業 ◯ 学習支援アプリ開発 ◯ 活用コンサルテーション ◯ プラットフォーム開発 ◯
ネイティブアプリ開発 ◯ 学校へのICT関連サポート ベネッセとソフトバンクのジョイントベンチャー
BigQueryのScheduled Queryの運用を 「通知Bot」を作って、 ちょっと楽にするぞーというお話です。 (Scheduled Queryを利用している方には朗報?のはず) 今日のお題
• BigQueryを利用しています。 弊社の分析環境 サイエンティスト エンジニア/ディレクター 分析環境
• Scheduled Queryも使っています。 ※現在は、ワークフローエンジンも導入していますので、主な や のテーブルは、ワークフローエンジンで制御しています。 弊社の分析環境 サイエンティスト
エンジニア/ディレクター Scheduled Queryの定 期ジョブ実行 Scheduled Query の設定! 分析環境
• プラス • お手軽にクエリのジョブを作れる • マイナス • 制御は、あくまで、スケジュール設定のみ •
依存関係の定義は基本不可 • 通知はあくまで「メール」 • しかも、失敗時のみ • 設定した本人のメールアドレスのみ.. Scheduled Queryのプラス・マイナス点
Scheduled Queryには、Cloud Pub/Subのトピックを設定できる! ということは、それをトリガーにすれば。。 ※BigQueryの新WebUIのScheduled Queryの設定画面から一部を抜粋 解決案 ココにある!
こんな感じにシンプルな構成で実装。 ※ 付の でも、上記のパターンは紹介されていました。 参考 バッチ処理のスケジューリングパターン Botのレシピ 成功/失敗 (webhook)
Scheduled Queryで指定したCloud Pub/Subのtopicの中身(json)は、どう 定義されている? (ここに公開されている!) REST Resource: projects.locations.transferConfigs.runs
※上記のリンクで公開されているものを抜粋させて頂きました。 ポイント
実際に確認してみるのも良し!(私はそうしました!) ポイント ①Pullのサブスクリプションを用意しておき、 そのトピックをScheduled Queryに設定して おく。 ②Scheduled Queryを実行し、完了後に、 gcloudコマンドを使って、サブスクリプション
からメッセージを確認する。 参考: https://cloud.google.com/sdk/gcloud/reference/pubsub/subscriptions/pull
この構成は、他のデータ転送の通知に適用できる! BigQueryのScheduled Query以外だと、、 • GCS → BigQuery間のデータ転送 •
BigQuery → BigQuery間のデータセットコピー • 勿論、他のデータ転送でも同様なことが可能 • 例) Migration: Redshiftなど ※上記は、全て、 で動いているようですので、至極当然と言われそうですが ポイント
ただ、BigQueryのデータセット間のコピーの場合は、取得できない項目も あるよう・・ 注意! “endTime”はあるが、”startTime”がない..
実際のSlack通知のBotのイメージです。 ※Cloud Functionsの処理の中身(Python)は、こちらを参照してくださいm(_ _)m 参考: https://gist.github.com/yuuki-kimiya/512130063102238625d56c02f84d8d0d 通知Botのイメージ 成功 失敗
(データ通知) (データ通知)
GCPのサービスを組み合わせることで、簡単に通知Botが実装可能! 少しでも運用を楽にする仕組みを作って、年末を迎えましょうー♪ 今年のClassi Advent Calendar 2019では、データBotの記事をアップしてい ます。よろしければ、ご覧くださいm(_ _)m サーバレスにお手軽なデータBotを作ってみよう〜♪
on GCP まとめ
Classiでは一緒に働く仲間を募集しています。 Pythonエンジニア/データエンジニア/データサイエンティスト etc.. 興味のある方はぜひお声がけください! 詳細は採用ページをご覧くださいm(_ _)m → https://hrmos.co/pages/classi We are
Hiring !