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
830
Airflow社内勉強会@Classi
yuukimiya
0
170
DPCT発表資料.pdf
yuukimiya
0
9.5k
お家で子どもと楽しむプログラミング
yuukimiya
0
1.3k
Other Decks in Technology
See All in Technology
fukabori.fm 出張版: 売上高617億円と高稼働率を陰で支えた社内ツール開発のあれこれ話 / 20250704 Yoshimasa Iwase & Tomoo Morikawa
shift_evolve
PRO
2
7.6k
Tokyo_reInforce_2025_recap_iam_access_analyzer
hiashisan
0
180
成長し続けるアプリのためのテストと設計の関係、そして意思決定の記録。
sansantech
PRO
0
120
How Do I Contact HP Printer Support? [Full 2025 Guide for U.S. Businesses]
harrry1211
0
120
SEQUENCE object comparison - db tech showcase 2025 LT2
nori_shinoda
0
140
改めてAWS WAFを振り返る~業務で使うためのポイント~
masakiokuda
2
250
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
170
高速なプロダクト開発を実現、創業期から掲げるエンタープライズアーキテクチャ
kawauso
2
9.2k
Reach American Airlines®️ Instantly: 19 Calling Methods for Fast Support in the USA
flyamerican
1
170
Connect 100+を支える技術
kanyamaguc
0
200
開発生産性を測る前にやるべきこと - 組織改善の実践 / Before Measuring Dev Productivity
kaonavi
9
4.3k
CDKTFについてざっくり理解する!!~CloudFormationからCDKTFへ変換するツールも作ってみた~
masakiokuda
1
140
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1031
460k
Automating Front-end Workflow
addyosmani
1370
200k
Typedesign – Prime Four
hannesfritz
42
2.7k
Optimizing for Happiness
mojombo
379
70k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
Six Lessons from altMBA
skipperchong
28
3.9k
Into the Great Unknown - MozCon
thekraken
40
1.9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
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 !