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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yuu.Kimy
December 13, 2019
Technology
0
200
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
940
Airflow社内勉強会@Classi
yuukimiya
0
200
DPCT発表資料.pdf
yuukimiya
0
9.7k
お家で子どもと楽しむプログラミング
yuukimiya
0
1.4k
Other Decks in Technology
See All in Technology
DDD×仕様駆動で回す高品質開発のプロセス設計
littlehands
6
2.5k
Kiro Meetup #7 Kiro アップデート (2025/12/15〜2026/3/20)
katzueno
2
250
20260320_JaSST26_Tokyo_登壇資料.pdf
mura_shin
0
130
CloudFrontのHost Header転送設定でパケットの中身はどう変わるのか?
nagisa53
1
190
事例から紐解くSHIFT流QA支援 ~大規模プロジェクトの品質管理支援、QA組織立ち上げ~ / 20260320 Nozomu Koketsu
shift_evolve
PRO
0
140
How to install a gem
indirect
0
1.6k
AI時代のシステム開発者の仕事_20260328
sengtor
0
270
【PHPerKaigi2026】OpenTelemetry SDKを使ってPHPでAPMを自作する
fendo181
1
290
Kubernetesの「隠れメモリ消費」によるNode共倒れと、Request適正化という処方箋
g0xu
0
130
AIエージェント勉強会第3回 エージェンティックAIの時代がやってきた
ymiya55
0
120
脳が溶けた話 / Melted Brain
keisuke69
1
1.1k
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
kaomi_wombat
0
250
Featured
See All Featured
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
The Mindset for Success: Future Career Progression
greggifford
PRO
0
290
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
Skip the Path - Find Your Career Trail
mkilby
1
89
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
200
Chasing Engaging Ingredients in Design
codingconduct
0
150
Abbi's Birthday
coloredviolet
2
5.6k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
Darren the Foodie - Storyboard
khoart
PRO
3
3k
Done Done
chrislema
186
16k
Become a Pro
speakerdeck
PRO
31
5.9k
Making Projects Easy
brettharned
120
6.6k
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 !