BigQuery Editions環境でのスロット使用量を調べられるSQLを書いた

BigQueryの新プランの登場でBigQueryをOnDemandからEditionsに切り替える人も多いと思います。OnDemand環境下ではスキャンするデータ量を見ておけばよかったですが、Editionsではスロット消費量がベースになり課金額が決まります。 「課金額がどれくらいか」…

BigQueryで自分が発行したjobをまとめてキャンセルする

小ネタです。特にLooker Studioでよく起きますが、カスタムクエリや選択するフィールドをぽちぽちいじっていると、その都度クエリが発行されます。探索的にあれこれいじっていると、段々クエリが詰まってくることもあります(Looker Studio側がうまいことjob…

Prometheus Metricsを使ってArgo WorkflowsのWorkflowの成否をDatadogで監視する

背景 具体的な設定 コントローラーに設定を生やす workflowを監視するためのカスタムメトリクスを定義する 各workflowに同様のカスタムメトリクスを定義する デバッグ方法 所感 背景 前職に引き続き、現職でもArgo Workflowsを使ってデータエンジニアリング…

Terraform経由でBigQuery Editionsの設定を行なう

背景: BigQuery Editionsの登場およびOnDemandの価格変更 注意(Disclaimer) BigQuery Editionsの設定を行なう providerのバージョンを上げる Reservationの作成およびAssignmentの設定 脱線: BigQuery Editionsを選択して、OnDemandよりコストが上がってしま…

dbt-osmosisを利用して、なるべくコストを抑えつつ効率的にメタデータ管理を行なう

3行まとめ ビジネスメタデータはデータ生成者にとってもデータ活用者にとっても重要 しかし、カラムのメタデータを同じ説明をあちこちに書いていくのは大変... dbt-osmosisはビジネスメタデータの管理を省力化したり、自動化できる便利なツール 3行まとめ 背…

データエンジニア / Analytics Engineer向けの権限管理のためのTerraform紹介

これは何? 背景: 権限管理とTerraform 権限管理の対象 誰に権限を付与するのか どのスコープで権限を付与するのか どの強さで権限を付与するのか Terraformについて Terraformの概要: 権限管理でTerraformを使うと何がうれしいのか 例: roles/bigquery.jobUs…

JSONの配列がある集合の要素を含んでいるかをSQLで判定する

前提 SQLを書いているとき、元データが[2,3,5,7]のようなJSONで入ってくることがある。データがJSONで入ってくると色々考慮しないといけないことが増えるので、あんまりぽんぽん出てきて欲しくはない。が、まあ現実には相手をしないといけない場合もある。世…

Apple Watch Series 6を下取りに出して、Series 8を購入

自分のための記録エントリ。Apple WatchはSeries 6とSeries 7の二台持ちで運用していた。理由については以下に書いてる。 なぜ買い替え? Apple Watch自体はヘルスケアのメトリックやApple Payでの支払いなどで必要不可欠なものになってきていたし、二台持ち…

dbt Cloudが自動で作成したBigQueryのデータセットのうち、古いデータセットを削除するマクロを運用する

dbt

背景: dbt CloudはCIの意味でも便利 課題: Pull Requestを閉じてもデータセットは自動では消えない場合がある 解決案: 作成から一定期間立ったデータセットはマクロで定期的に掃除させる その他の解決策 考慮すべき点 背景: dbt CloudはCIの意味でも便利 仕…

2022年の振り返り

2022年もお疲れ様でした(書き終わってたけど、出すのを忘れていた)。去年はこちら。 例によって長いけど、主に読み返すのは自分なので特に気にせず書き殴っておきます。 MonotaROから10Xに転職 MonotaROでの仕事 10Xへの転職 副業の話 コミュニティ方面 技術…

2022年に行なったdatatech-jpのCasual Talksを振り返る

10XでAnalytics Engineer & datatech-jpで運営の一人をやっている吉田(@syou6162)です。今回は2022年に私が企画 / 運営したdatatech-jpのCasual Talksについて振り返りたいと思います。 この記事は10Xアドベントカレンダー2022およびdatatech-jp Advent Cale…

Analytics Engineerが機械学習エンジニアとして副業をしようとしていた話

2022年の振り返りエントリを書いていたところ、めっちゃ長くなってしまいつつあるので、切り出して書こう活動です。 前職のMonotaRO時代に他社さんで副業をしようとしていた時がありました。全社レベルでの働き方のrequirementsが変化や転職によって結局はな…

データ活用の関係者に課題感のヒアリングをする時の型を紹介する

背景: データマネジメントのアセスメントのために各部署に現場の課題感をヒアリングしたい 課題: よいヒアリングをするのは簡単ではない 解決案: ヒアリングの型を決める ヒアリングの質問とリサーチの質問を別々に持っておく ヒアリング対象者について事前…

Google Meetのピクチャーインピクチャーを一発で呼び出すブックマークレットを書いた

背景: Google Meetのピクチャーインピクチャー 転職してからオンライン会議のツールがZoomからGoogle Meetになった。Google Meetはピクチャーインピクチャーという機能が今年の6月から使えるようになっていて、これが便利で毎日のオンライン会議は大体これを…

株式会社10Xにアナリティクスエンジニアとして入社しました

3行まとめ 9/15で株式会社MonotaROを退職し、9/16に株式会社10Xに入社しました アナリティクスエンジニアとして、相変らずデータマネジメントやデータエンジニアリングを中心に活動してます 引き続き京都で働いてますし、変わらずオンラインのコミュニティ活…

在宅勤務の最近のデスク環境のアップデート

誰かにオススメしたいとかそういう汎用的なものではなく、あくまで自分はこうしてる的なエントリ。他の人に紹介するときのポインタです。 Why: 在宅勤務に振り切る意思決定をした Before After モニター: EIZO FlexScan EV2781-WT キーボード & トラックパッ…

Argo Workflowsの代替としてのCloud Workflowsの調査

夏休みの自由研究です。軽く触ってみました程度の技術調査なので、あまり当てにしないでください...。 Argo WorkflowsからCloud Workflowsへの移行のモチベーション ワークフローエンジン上で動かしている既存のジョブ Cloud Workflowsとは ワークフローを動…

BigQueryのビューをコマンドラインでコピーする

BigQueryのビューのコピーは普通だとWeb画面からのみ可能 あるビューを別のデータセットに複数コピーをしないといけない場面に遭遇した。Webの画面からコピーできるのは知っているが、数がちょっとあった & 何回もやって入力ミスがあると面倒だったのでコマ…

最近の砂場活動その26: goroutineとchannelを使って、クロールしつつ書き込みを並行に行なう

Go

背景 元々やっていたことと、goroutineとchannelの練習のために課した追加の仕様 準備 やったこと コード概要 戻り値は読み込み専用のチャネル goroutineの終了まで待つ + 終了したらチャネルを閉じる 上限付きの並行処理をさせたい場合はgoroutine + バッフ…

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 普通のプログラミング言語であ…