背景 担保したいこと 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で行なっている人は多いと思…
N番煎じですが、やってみる機会があったので一般化してメモしておきます。 背景: コードレビューを素早く行なうことの重要性 レビューのフローを整理する GitHub Actionsでレビュー依頼を自動化する 背景: コードレビューを素早く行なうことの重要性 チーム…
dbt cloudのジョブの実行時間の推移を把握したい DWHやデータマートの作成をdbtでやっていて、それをさらに後段の処理が参照している場合「7時までにdbt buildの処理が終わっている必要がある!」などの何らかの時間的な制約がある場合が多いと思います。dbt …
データレイクの可用性を可視化したい データ品質には様々な項目がありますが、可用性はその中でも重要な項目です。データレイクありきで、dbtを使って生成するDWHやデータマートの可用性の可視化は以下のエントリで試していました。 DWHやデータマートと同様…
この記事はdatatech-jp Advent Calendar 2023の12日目の投稿です。本日は12/18ですが、Advent Calendarの空きがあったのでねじこみました。 背景 困ること: 実行時間が長い 脱線: レコードの削除時に考慮したいこと dry-runモードで何が実行されるかを分かる…
仕事でGoogle Cloudのリソース管理にTerraformを使っていて、コードは一切変更していないのにterraform planで意図していない差分が出たり、terraform applyが通らなくなって手動でリソースの修正が必要になって困ったケースがありました。本家のterraform-p…
秋のログ整理週間です。Cloud Loggingに出力されるログをもっといい感じにしようと思って試行錯誤してます。 太古からGKE上のloggingをいい感じにするのは悩みの種でした。結論としては、Cloud Loggingのパッケージを使うしかなさそう。 ところで、本番環境…
小ネタです。 依存ライブラリのバージョン管理にRenovateを長いこと使っています。ChangeLogを自分で見に行かなくてよいので、大分楽をさせてもらっています。 別の話題として、SQLのlinter/formatterにsqlfmtとsqlfluffを使っています。基本はsqlfmtだけで…
小ネタです。Argo WorkflowsをGKE & Cloud Logging環境で使っている場合、workflow-controllerが出力するログが問答無用でERROR扱いされるという問題がありました。 長らく「そういうもんかー」と諦めてたのですが、JSONによる構造化ログがArgo Workflowsで…
3行まとめ テーブルの撤退時にはテーブルの参照回数を見ることが多いと思いますが、テーブル単独の参照回数を見るだけだと不十分なことが多いです 派生先のテーブルの参照回数まで考慮すると、テーブルが撤退できるか安全に判断することができます リネージ…
3行まとめ dbtのジョブが失敗した際やテーブルの廃止検討の際に、BI上のどのダッシュボードで利用されている(データリネージ)か知るのは重要です TableauのGraphQLのAPIからWorkbookとBigQuery上のモデルの埋め込みの関係を知ることができます dbtのモデルと…
特にもの珍しいものがあるわけではなく「現状こういうことやってるっす!」というのを説明するときのポインタが欲しくなったので、雑に書く。 ChatGPT 用途1: 壁打ち相手 用途2: 便利な英語の先生 用途3: シェルスクリプトの生成 GitHub Copilot DeepL 所感 C…
データの可用性を可視化したい データの可用性の解像度を上げたい: elementary-data elementaryによる細かい可視化 大雑把にデータセット単位で可用性を可視化したい まとめ データの可用性を可視化したい データ品質は正確性や最新性など様々な項目に分解す…
なぜ列レベルのアクセス制御とポリシータグが必要か Terraformでポリシータグの作成および権限付与 ポリシータグの付与の仕方 dbt経由の場合 bq loadを使う場合 運用上の注意点 まとめ なぜ列レベルのアクセス制御とポリシータグが必要か 「テーブルの全ての…
小ネタです。 データ基盤のバッチ処理の運用でArgo Workflowsを愛用してます。色々小回りが効くので好きです。様々な処理が乗ってくると、本番環境と開発環境のArgo Workflowsをぱっと見分けが付くようにしたくなってきます(オペレーション実行ミスなどをし…
TL;DR 巨大なプロジェクトでdbt-osmosisを実行しようとすると時間がかかるが、それを短縮するための--catalog-fileというオプションが存在する catalog.jsonはdbt docs generateの成果物であるが、巨大なプロジェクトの場合は実行に非常に時間がかかるかOOM…
追記 以下、色々書いていますが、dbt-osmosisの作者に課題感を共有した上でそれを解決したPull Requestを取り込んでもらい、よりシンプルに解決できるようになりました。 meta.osmosis_keep_descriptionを付与した上で--force-inheritanceを使えば意図通りに…
小ネタです。割と便利だったので、エントリに書き起しておきます。 背景: エンジニア職種でなくてもでかいデータをBigQueryにアップロードできるようにしたい BigQueryはWebコンソールから手元のcsvなどをアップロードすることができます しかし、これにはフ…
背景 vscode-dbt-power-userがよかったところ 定義にさっと行ける / 戻れる(Go to definitionが使える) VSCode内でモデル間のリネージが見れる VSCode内からdbtのモデルをさっと実行できる モデルファイルの単独の実行も簡単 コンパイル済みのSQLファイルを…
Dataplex(旧Data Catalog)によるデータカタログについてあれやこれやれやをまとめておいたポインタが欲しくなってきたので、とりとめもなくつらつらと書きます。 注意点: BigQuery on GCPの運用を前提に書いてます Dataplexはデータカタログ以外の機能もたく…
SQLをレビューしていて、シャーディングテーブル(日付別テーブル)をサブクエリを使ってフィルタしているものがあった。BigQureyのシャーディングテーブルはWHERE句で日付の条件を書いてやるとスキャン範囲を限定することができるので便利ではあるが、サブク…
BigQueryの新プランの登場でBigQueryをOnDemandからEditionsに切り替える人も多いと思います。OnDemand環境下ではスキャンするデータ量を見ておけばよかったですが、Editionsではスロット消費量がベースになり課金額が決まります。 「課金額がどれくらいか」…