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

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をガシガシ使いながら日記を書…