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
170
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
820
Airflow社内勉強会@Classi
yuukimiya
0
170
DPCT発表資料.pdf
yuukimiya
0
9.5k
お家で子どもと楽しむプログラミング
yuukimiya
0
1.3k
Other Decks in Technology
See All in Technology
エンジニア向け技術スタック情報
kauche
0
110
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
1
380
第9回情シス転職ミートアップ_テックタッチ株式会社
forester3003
0
130
IIWレポートからみるID業界で話題のMCP
fujie
0
710
Workflows から Agents へ ~ 生成 AI アプリの成長過程とアプローチ~
belongadmin
3
170
ユーザーのプロフィールデータを活用した推薦精度向上の取り組み
yudai00
0
470
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
2
150
Create a Rails8 responsive app with Gemini and RubyLLM
palladius
0
140
本部長の代わりに提案書レビュー! KDDI営業が毎日使うAIエージェント「A-BOSS」開発秘話
minorun365
PRO
14
2.3k
TerraformをSaaSで使うとAzureの運用がこんなに楽ちん!HCP Terraformって何?
mnakabayashi
0
300
讓測試不再 BB! 從 BDD 到 CI/CD, 不靠人力也能 MVP
line_developers_tw
PRO
0
1.1k
AIの最新技術&テーマをつまんで紹介&フリートークするシリーズ #1 量子機械学習の入門
tkhresk
0
120
Featured
See All Featured
How to Ace a Technical Interview
jacobian
277
23k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Gamification - CAS2011
davidbonilla
81
5.3k
Documentation Writing (for coders)
carmenintech
71
4.9k
Become a Pro
speakerdeck
PRO
28
5.4k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
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 !