Data Contractに向けたProtocol Buffersの調査

背景: データ品質を担保するにはデータソースの品質が重要 データソースの品質を担保する手段としてのData Contract Data Contractの表現方法の一つとしてのProtocol Buffers Data ContractとしてProtocol Buffersを使う データの入出力を一箇所に集約、Prot…

クエリを書くときは確率的な挙動にならないように注意しよう

自分用のメモです。以下のエントリで便利なスクリプトを作りました。 不可解な現象に遭遇 このスクリプトを使って、いくつかのデータを調べていましたが、ぱっと見不思議な現象に遭遇しました。 比較対象のテーブルAとB(クエリは同一のものを仕様。作成元がp…

テーブル比較のクエリを型化するスクリプトを作った

前提 DWHやデータマートのリファクタリング、あるいは軽微なカラム追加をした際、意図せず差分が起きていないかを確認したい場面は多いでしょう 「一個カラムを追加するために一個JOINを増すだけ」と思ったら、JOIN先のテーブルに重複があってfan-outしてい…

Looker Studioの魅力と便利な使い方を紹介します

初めて使ったBIツールはLooker Studioのid:syou6162です。これまでTableau / Looker(≠ Looker Studio) / Metabase / Redash / Connected Sheetsなど色々なBIツールを触ってきましたが、不満は色々ありつつも個人的に一番しっくりきて愛着があるのはLooker St…

BigQueryにexportしたGA4のシャーディングテーブルのスキーマに関するハマリ所

前提: GA4とシャーディングテーブル GA4のイベントデータを仕事で取り扱う人は多いと思う。BigQueryにexportする場合、GA4のイベントデータは[PREFIX]_YYYYMMDDのシャーディングテーブルになっており、さらにその中でevents_YYYYMMDDとevents_intraday_YYYYM…

dbt-project-evaluatorで独自のレイヤリングの制約をCI上で表現する

dbt

背景: 組織独自のレイヤリング構造の制約をCI上で表現したい 課題: CI時にレイヤリングの情報をどう取得するか 解決方法: dbt-project-evaluatorが内部で構築するテーブルを利用する 補足: その他の設定 背景: 組織独自のレイヤリング構造の制約をCI上で表現…

Google Cloud Champion Innovatorに選ばれました

先日のdbtのCommunity spotlightに引き続き、めでたいことが続いてありがたい限りですね。Google Cloud Champion Innovatorに選ばれました。 https://cloud.google.com/innovators/champions/directory?hl=ja&text=yasuhisa より 「そもそもChampion Innovat…