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
160
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
670
Airflow社内勉強会@Classi
yuukimiya
0
160
DPCT発表資料.pdf
yuukimiya
0
9.3k
お家で子どもと楽しむプログラミング
yuukimiya
0
1.3k
Other Decks in Technology
See All in Technology
OpenID BizDay#17 KYC WG活動報告(法人) / 20250219-BizDay17-KYC-legalidentity
oidfj
0
240
CZII - CryoET Object Identification 参加振り返り・解法共有
tattaka
0
360
Cloud Spanner 導入で実現した快適な開発と運用について
colopl
1
610
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
3
1.3k
転生CISOサバイバル・ガイド / CISO Career Transition Survival Guide
kanny
3
980
関東Kaggler会LT: 人狼コンペとLLM量子化について
nejumi
3
580
Building Products in the LLM Era
ymatsuwitter
10
5.4k
プロダクトエンジニア構想を立ち上げ、プロダクト志向な組織への成長を続けている話 / grow into a product-oriented organization
hiro_torii
1
170
データの品質が低いと何が困るのか
kzykmyzw
6
1.1k
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
2.1k
Helm , Kustomize に代わる !? 次世代 k8s パッケージマネージャー Glasskube 入門 / glasskube-entry
parupappa2929
0
250
OpenID Connect for Identity Assurance の概要と翻訳版のご紹介 / 20250219-BizDay17-OIDC4IDA-Intro
oidfj
0
270
Featured
See All Featured
Become a Pro
speakerdeck
PRO
26
5.1k
Raft: Consensus for Rubyists
vanstee
137
6.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Designing for Performance
lara
604
68k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Unsuck your backbone
ammeep
669
57k
Code Review Best Practice
trishagee
67
18k
A designer walks into a library…
pauljervisheath
205
24k
RailsConf 2023
tenderlove
29
1k
GraphQLとの向き合い方2022年版
quramy
44
13k
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 !