Cloud Monitoringのメトリックの途切れを監視する

GCP

背景: 日々の運用にCloud Monitoringのメトリックは便利 課題感: メトリックが途切れたことに気付けない 解決策: メトリックの途切れを監視しよう Terraformでの設定例 背景: 日々の運用にCloud Monitoringのメトリックは便利 Cloud Monitoringによる監視は…

BigQueryのデータセットの権限設定を別のデータセットにコピーする

背景 BigQueryの権限設定、Terraformなどを使ってIaCとして管理することが多い しかし、様々な事情で手動で管理しなければいけないケースもたまにある 個別のデータセットに対する権限付与の場合、Web Consoleからぽちぽちとやればよい 「データセットAに対…

「CLIアプリケーションを作る時に最近考えたこと」を社内LTで発表しました

今年の1~2月くらいにCLIアプリを毎週狂ったように作っていたんですが、こういうこと考えながら作っているなーというのがあったので、まとめて発表しました。 内容としては全く目新しいものはないですが、この辺を伝えたくて発表してます。 CLIアプリを作る時…

無駄打ちになっているBigQueryのスケジュールクエリを列挙する

背景: 無駄なスケジュールクエリを撲滅したい スケジュールクエリは便利 エンジニアでない方でもクエリを手軽に定期的に実行できるようになる 一方で、設定したけどしばらくすると生成したテーブルを全然見てない(=無駄打ちになっている)...というクエリが徐…

最近教えてもらった/思い付いたデータ基盤周りのTips

小ネタです。色々教えてもらったりしたので、記憶が蒸発しないようにメモしておきます。教えてもらった同僚に感謝。 BigQueryのUI上の配列を展開する Data Studioでデータソースのプロジェクトと課金プロジェクトを別のものを使う データ基盤の相談に乗る前…

BigQuery管理リソースグラフと同等のものをSQLで作る

背景 BigQuery管理リソースグラフって何?って人も多いと思いますが、BigQuery Reservationsを使っている場合に見える管理者用のBigQueryのリソース利用率の遷移が見れるグラフです。こういうやつです、主にスロット関係の統計量をよく見ます。 リアルタイム…

BigQueryのカラム毎の要約統計量をSQLのみで出す

背景 SQLのみで様々な要約統計量を出す 応用事例: 定常的な監視への発展 参考: 先行研究 背景 pandasのデータフレームに対するdescribe、ざっとテーブルの要約を知りたい場合に便利です 値域がどうなっているか、数値の分布(パーセンタイル)がどうなっている…

BigQuery Scriptingの便利な使い方をまとめてみた

背景 & Disclaimer 自分自身はこれまでBigQuery Scriptingをほぼ使っていませんでした BigQuery自体は3年くらいの利用歴 SQL単発で済ませるのが苦しそうな場合は、Pythonなどのプログラミング言語 + ワークフローエンジンの組み合わせで戦っており、自分とし…

BigQuery MLでスロット使用量が急増しているプロジェクトやユーザーを異常検知する

背景 どうやって異常を検知するか BigQuery MLでの異常検知 検知できるモデルの種類 共通設定 データの前準備 モデルの学習 モデルを元にスロット使用量が異常に増加していないか予測する 所感 背景 BigQueryはオンデマンドとフラットレート(定額料金)がある…

使われていないにも関わらず定期実行されてしまっているクエリ(in BigQuery)を検知するツールを作りました

TL;DR 背景 実装時の問題点 作った TL;DR データ活用が進んでくると、使われていないにも関わらず定期実行されているクエリが増えてきます 無駄な利用料金、スロットを使っていることになるので、こういったクエリはなるべく減らしていきたいです こうしたク…

SQLは3値論理、NULLの扱いに気を付けよう

SQL

基本的なことだけど、久しぶりにハマって2時間くらい溶かしてしまったので、自分用メモ。大体のことは以下の本に書いてある。 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ作者:ミック翔泳社Amazon INとNULL 普通のプログラミング言語であ…

BigQueryのビューにパラメータを渡せない欠点をテーブル関数で補おう

背景 (BigQueryに限らず)ビューは便利 テーブル化する必要がないので、ビュー内で参照しているテーブルが更新されたらビューの結果も新しいものを参照できる 物理テーブルと違って、保存料金を気にする必要がない 一方で、ビューにはパラメータを渡すことが…

BigQueryのクエリ結果をMackerelのメトリックとして取得するプラグインを作りました

背景 GCP単独でサービスを構築している場合、Cloud Monitoringはとても便利な監視のためのツールです しかし、サービスをマルチクラウドで構築している場合、複数のクラウドサービスに監視の設定やダッシュボードを作っていく必要があり、面倒です 自分が趣…

Cloud Monitoringのメトリックを簡単にBigQueryにloadできるcloud_monitoring_metrics_fetchを作りました

3行まとめ Cloud Monitoringのメトリックは便利だけど、使い慣れたSQLで詳細な分析がしたい メトリックをBigQueryに簡単にloadできるツールを作りました ラベルを絞った詳細分析などもできるので、是非使ってね 背景 Cloud Monitoringのメトリックは便利 し…

Argo WorkflowsのWorkflowの最終的な成否をCloud Monitoringで監視する

GCP

背景 課題: Workflow内で複数のジョブが走る場合に監視漏れが発生する 解決方法: Workflow単位で成否を判断し、Cloud Monitoringに成否をメトリックとして投稿する Appendix GKEのサービスアカウントへの権限付与 監視用のDockerfile Cloud Monitoringのアラ…

コマンドラインからCloud Monitoringに簡単にメトリックを投稿できるツールを作った

GCP

3行まとめ Cloud Monitoringにメトリックを投稿するのは案外面倒 コマンドラインからさっとメトリックを投稿するのに便利なツールを作った jqでさっと加工して、がっとメトリックを投稿したいときにどうぞ 背景 Cloud MonitoringはGCP上で監視を行ないたい場…

dbtのsource簡単にimportできるdbt-source-importerを作りました

dbt

背景 仕事でdbtをバシバシ使っています*1 データリネージやドキュメントの観点でdbtのSourcesもよく定義しています 手動で定義するのは大変なので、dbt-helperを使って自動でimportしていました 問題点 自社の環境でdbt-helperを使うと、1つのテーブルのimpo…

Google Groupsのグループアドレスを使って、雑な社員マスタを作る

背景 何やかんや仕事するにあたって、社員マスタが機械で扱いやすい形になっていると便利なことが多い 厳密な社員マスタはもっと色々情報が入っていて欲しいけど、ここでは「XXさんがYY部署にいます」くらいが分かる、という定義にします BigQueryなどにある…

2021年の振り返り

2021年もお疲れ様でした、2022年になってしまった。お蔵入りするのが一番最悪なので、遅れたけど振り返りエントリを出します。去年の振り返りはこちら。 はてなからMonotaROに転職 転職前に最後のアウトプット 技術方面 ドメイン知識の獲得方面 採用方面 デ…

テーブルの最終更新日をINFORMATION_SCHEMA.PARTITIONSから調査する

この記事は、BigQuery Advent Calendar 2021の23日目の記事です。8日目の記事も書いているので、このAdvent Calendarで2つ目の記事になります。メタデータ大好き人間なので、今日のネタもメタデータ関連です。 テーブルの最終更新日が知りたい 古の方法: __T…

スケジュールクエリでも最高のメタデータを付与したい人生だった

この記事は、BigQuery Advent Calendar 2021の8日目(シリーズ2)の記事です。カレンダーが人気ですでに枠が埋まっていましたが、書きたかったので勝手にシリーズ2を作りました。ちなみに12/23も書くらしいです。 みんな大好きメタデータ 皆さん、データ好きで…

esaのタグの正規化を促すスクリプトを書きました

esa

3行まとめ esaをバシバシ使っていると、同じタグのつもりが表記が揺れてくる 検索で意図せず引っかからないことがあるので、正規化したい 定期的に表記が揺れているタグの正規化を促すスクリプトを書きました 背景 esa.ioのAPIをガシガシ使いながら日記を書…

データエンジニアリングやデータ活用の知見を共有するコミュニティdatatech-jpをやってますという話

この記事は、datatech-jp Advent Calendar 2021の1日目の記事です。 datatech-jpというコミュニティについて 何をやっているコミュニティなの? The Self-Service Data Roadmap読み会 Airflow困り事相談会 waiwai会 どういうコミュニティにしていきたいか dat…

dbtを使っている場合のバージョン間の差分をいい感じに出すスクリプトを作った

前回に引き続き、dbtの運用メモです。簡単にまとめると、こういう感じです。 dbtを使ってDWHを構築しているが、バージョン管理している dbtの都合上、バージョン間の差分が確認しにくい いい感じに差分を確認できるスクリプトを作った 背景 背景: dbtの制約…

dbtでrunの前にtestを実行したい場合にephemeralを使う

dbt運用の小技です。品質の高いデータをユーザーに提供するために一工夫が必要だったので、メモしておきます。 課題感: testを行なってからrunしたい dbtはSQLやデータに対してテスト(dbt test)を行なうことができます。データ品質を高めていく上で、重要な…

Apple Watchの二台目(Series 7)を買いました

人はそれを散財と呼ぶかもしれないけど、私もこれは散財だと思う...。 購入の動機 Apple Watch Series 7 二台持ちで考える必要があること Apple Payの紐付け ヘルスケアのメトリックの同期 目覚まし / アラーム 文字盤の設定 購入の動機 今年の春にApple Wat…

小ネタ: Google Docsの文書をmarkdownに変換して手元に持ってくる

色々試してみたので、ログとして残しておきます。 背景: 俺はmarkdownのテキストが欲しいんだ! Google Docsは同時編集ができるし、特別な記法を覚えなくても使えるので、議事録を取るときなどによく使われる。一方で、Google Docsはplain textではないので、…

近況報告1: 「突撃! 隣のCI/CD」や「施策デザインのための機械学習入門の読書会」をやってる話

報告2から3くらいまで続きます、多分。 突撃! 隣のCI/CD 仕事でCI/CDする時に、社内の事情であれこれ工夫すべきところがあり、色々ハマりました。自分のグループだけでなく、他のグループにも関係するし情報共有したほうが効率上がりそうだなぁと思い、「突…

リモート勤務や複数拠点での働き方で気を付けているポイント

緊急事態宣言も解除されて、オフィスに通勤する日も出てきました*1。コロナの感染状況が今後どうなっていくかは分からないですが、リモート勤務や複数拠点で働く人がいるチームで私が気を付けているポイントを書いてみます。説明するときのポインタが欲しく…

The Self-Service Data Roadmap読書会でContinuous Integration Serviceについて発表しました

データマネジメントに対する知識を深めたり、データの利活用をより進められるようになりたいなと思って、読書会をやっています。始めてから二ヶ月くらいで、そろそろ本の終わりが見えてきました。 The Self-Service Data Roadmap: Democratize Data and Redu…