datatech-jp Advent Calendar 2024の4日目です。3日目はid:bynaturessさんの2024/12/03 データエンジニアもくもく会を1年続けた学びでした。私も6~7割くらい参加していますが、色んな話題でわいわいできて楽しいですね。来年もやっていきましょう。 こんにち…
卓球好きのオタ日記です。有益情報は特にない。 WTT & ファイナルズとは何か? 会場 観戦した試合 佐藤橋本カットマンペア 張本智和 張本美和 ルブラン兄弟 まとめ WTT & ファイナルズとは何か? 卓球やってる人には説明不要だと思うけど、一応。WTTは卓球のワ…
3行まとめ データに対する期待値を定義するData Reliability Levelという活動を始めています Data Reliability Levelを設定するには「XXXの場合にはAAAの項目は入力が必須」といった条件分岐や項目数も多く、レビューが大変という課題がありました 最近のJSO…
通い始めて二ヶ月が経過したドクターストレッチだが、予約はWebからもできて便利な一方、予定管理をしているGoogle Calendarへの転記が必要でめんどい。予約をすっぽかしたりしたくないので、どうにかしたい。 そこで、ブックマークレットからGoogle Calenda…
ドクターストレッチはマッサージのお店でもジムでもなく、ストレッチに特化したお店です。 週一で通い始めて一ヶ月以上経ったので、感想エントリを書きます。感想を一言で表わすと「面白い」です。 通い始めたきっかけ 昔から体は硬いし、特に東京出張した後…
データ品質の可視化などに役に立つelementaryだが、稀に以下のようなエラーが発生することがある。このエントリではこのエラーに対する対応方法について考える。 00:03:24 on-run-end failed, error: Query error: Transaction is aborted due to concurrent…
8/26に「全日本dbt-osmosisを愛でる会」を開催しました。パネルディスカッション形式のため、細かい資料はありませんが、当日のアジェンダなどは以下のスライドで公開しているため、雰囲気は感じ取ってもらえるかと思います。 開催の経緯: ノリと勢い 開催当…
今日もbq loadが失敗して涙を流していたデータエンジニアのid:syou6162です*1。このエントリではbq loadを使ったデータ取り込みで泣かないで済む、あるいは泣いても致命傷まではいかないようにするための色々なTipsを書きます。 bq loadをベースに書いていま…
背景: データ品質を担保するにはデータソースの品質が重要 データソースの品質を担保する手段としてのData Contract Data Contractの表現方法の一つとしてのProtocol Buffers Data ContractとしてProtocol Buffersを使う データの入出力を一箇所に集約、Prot…
自分用のメモです。以下のエントリで便利なスクリプトを作りました。 不可解な現象に遭遇 このスクリプトを使って、いくつかのデータを調べていましたが、ぱっと見不思議な現象に遭遇しました。 比較対象のテーブルAとB(クエリは同一のものを仕様。作成元がp…
前提 DWHやデータマートのリファクタリング、あるいは軽微なカラム追加をした際、意図せず差分が起きていないかを確認したい場面は多いでしょう 「一個カラムを追加するために一個JOINを増すだけ」と思ったら、JOIN先のテーブルに重複があってfan-outしてい…
初めて使ったBIツールはLooker Studioのid:syou6162です。これまでTableau / Looker(≠ Looker Studio) / Metabase / Redash / Connected Sheetsなど色々なBIツールを触ってきましたが、不満は色々ありつつも個人的に一番しっくりきて愛着があるのはLooker St…
前提: GA4とシャーディングテーブル GA4のイベントデータを仕事で取り扱う人は多いと思う。BigQueryにexportする場合、GA4のイベントデータは[PREFIX]_YYYYMMDDのシャーディングテーブルになっており、さらにその中でevents_YYYYMMDDとevents_intraday_YYYYM…
背景: 組織独自のレイヤリング構造の制約をCI上で表現したい 課題: CI時にレイヤリングの情報をどう取得するか 解決方法: dbt-project-evaluatorが内部で構築するテーブルを利用する 補足: その他の設定 背景: 組織独自のレイヤリング構造の制約をCI上で表現…
先日のdbtのCommunity spotlightに引き続き、めでたいことが続いてありがたい限りですね。Google Cloud Champion Innovatorに選ばれました。 https://cloud.google.com/innovators/champions/directory?hl=ja&text=yasuhisa より 「そもそもChampion Innovat…
背景 & Disclaimer DuckDB 概念や代表的なユースケース 使ってみる 1週間〜一ヶ月などある程度の期間、分析で使いたい場合 便利なCLIツールとして使う 所感 参考 Dataflow 代表的なユースケース 具体例 参考 背景 & Disclaimer BigQueryは非常に便利で、BigQ…
Twitterではもう言ってましたが、めでたいやつです。 dbtのLinkedInの投稿 そもそも「Community spotlightとは何ぞや?」という話ですが The dbt Community is where analytics engineering lives and grows, and you're a part of it! Every quarter we'll b…
背景: dbt run-operationは便利 dbtのサブコマンドであるrun-operationは結構便利で、標準のコマンドでサポートされていないようなオペレーションを簡単に実行することができる。例えば、以下のようなものは日常的に自分は利用している。 課題: 出力形式がち…
最近「ああ、これ前職でも前々職でもやったことあるなぁ」という仕事があった。データエンジニア(やその関連職種)として働き始めて約5年、3社でフルタイムとして働いてきて「このスキルは業界や組織規模が変わってもデータエンジニアとしてスキルを求められ…
背景: アドホックなモデルをいつまでも残したくない dbtを使う場合、ある程度規則に沿ったレイヤリングの元に運用されることが多いと思う(例: staging / raw vault / fact & dim / martなど)。品質が必要な場合はこのレイヤリングに沿ってモデルを作ることに…
外部登壇は半年に一回くらいが丁度いいと思ってる人間ですが、最近は色々重なって怒涛のアウトプット月間になってしまったので、やったことをまとめてみます。 Dataplexとdbt-osmosisを活用した「がんばらない」データカタログとメタデータ管理の運用@Data E…
背景 担保したいこと 1: ホットキーで一撃で呼び出せる 2: ウィンドウを透過させてターミナルと他のウィンドウを同時に眺められること 調査したこと & 解決方法 ホットキーで呼び出せるか => hammerspoonで割り当てで対応 ターミナルの透過 => 無理そうなの…
dbtや同じ系統のDataformなど、ELTの特にTransform部分に強みを持つツールを使い始めて大体3年になる。主観だけど、それなりに使い倒している部類だと思う。 開発効率を計測するデータ基盤の管理にDataformを使ってみた - yasuhisa's blog dbtを触ってみた感…
dbtを使っていなら、not_nullテストは何度も書くことになると思う。このテストを書いていて「手元では通るが、CIでは通らない」という一見謎現象に思えることにブチ当たったのでメモ。 起きた現象 手元からnot_nullテストを書いた。コンパイル済みのSQLは以…
背景: dbtを使っていてもER図は欲しい! どうやってER図を生成するか どうやってER図を見やすくするか まとめ 背景: dbtを使っていてもER図は欲しい! dbtはモデル間のリネージなど可視化が得意なツールではありますが、万能なわけではありません。モデルの生…
前提: これは何? dbtを使ったデータプロダクトを作っている社内のチームメンバー向けに書いた勉強会用のドキュメントです 社外に公開できるように少し抽象化して書いてます DWHに限らずdbtを使ったデータプロダクトで生かせる話ですが、分かりやすさのために…
背景: データ品質を可視化したい 実装: elementaryを使って、正確性のデータ指標を可視化する 実例: ダミーデータを使った可視化 まとめ 背景: データ品質を可視化したい 運用しているDWHでデータ品質にまつわる問題で苦労したことがない人は少ないと思いま…
シリーズの第三弾です。読者の宿題にしてたけど、誰も書いてくれなさそうだったので結局自分で書きました。 背景 Looker StudioはGoogle Workspaceを使っていれば基本的に無料で使えますし*1、権限管理にGoogle Groupとも連携できるので、人気のBIの一つだと…
以下のConnected Sheets版です。これはかなり便利なものができたと、自画自賛してます。 背景 Connected Sheetsをdbtのexposureとして取り込む 見所 Connected Sheetsからのクエリか判断する BigQuery Scripting経由で発行されたクエリでもreferenced_tables…
背景 ConftestによるTerraformのポリシーテスト 例: ConftestでBigQueryのデータセットのlabelにownerが設定されていることをテストする 実際の業務への取り込み方 背景 権限管理を含め、BigQueryのデータセットの管理をTerraformで行なっている人は多いと思…