大量のBigQueryの日付別テーブルから特定の条件でレコードを削除する

この記事はdatatech-jp Advent Calendar 2023の12日目の投稿です。本日は12/18ですが、Advent Calendarの空きがあったのでねじこみました。 背景 困ること: 実行時間が長い 脱線: レコードの削除時に考慮したいこと dry-runモードで何が実行されるかを分かる…

terraform-provider-googleにgoogle_bigquery_datasetのバグ報告して、修正コードを取り込んでもらった話

仕事でGoogle Cloudのリソース管理にTerraformを使っていて、コードは一切変更していないのにterraform planで意図していない差分が出たり、terraform applyが通らなくなって手動でリソースの修正が必要になって困ったケースがありました。本家のterraform-p…

GKE上で動くPythonのコードのログをいい感じに出力する

秋のログ整理週間です。Cloud Loggingに出力されるログをもっといい感じにしようと思って試行錯誤してます。 太古からGKE上のloggingをいい感じにするのは悩みの種でした。結論としては、Cloud Loggingのパッケージを使うしかなさそう。 ところで、本番環境…

Renovateでsqlfluffとsqlfluff-templater-dbtは同時にバージョンを上げるようにgroupの設定をする

小ネタです。 依存ライブラリのバージョン管理にRenovateを長いこと使っています。ChangeLogを自分で見に行かなくてよいので、大分楽をさせてもらっています。 別の話題として、SQLのlinter/formatterにsqlfmtとsqlfluffを使っています。基本はsqlfmtだけで…

Argo WorkflowsのログがCloud Loggingでエラー扱いされてしまう問題を回避する

小ネタです。Argo WorkflowsをGKE & Cloud Logging環境で使っている場合、workflow-controllerが出力するログが問答無用でERROR扱いされるという問題がありました。 長らく「そういうもんかー」と諦めてたのですが、JSONによる構造化ログがArgo Workflowsで…

派生先テーブルの参照回数も考慮して安全にテーブルを撤退する

3行まとめ テーブルの撤退時にはテーブルの参照回数を見ることが多いと思いますが、テーブル単独の参照回数を見るだけだと不十分なことが多いです 派生先のテーブルの参照回数まで考慮すると、テーブルが撤退できるか安全に判断することができます リネージ…

dbtのモデルとTableau上で使われているWorkbookの依存関係をexposureで表現して、データ管理を効率的に行なおう

3行まとめ dbtのジョブが失敗した際やテーブルの廃止検討の際に、BI上のどのダッシュボードで利用されている(データリネージ)か知るのは重要です TableauのGraphQLのAPIからWorkbookとBigQuery上のモデルの埋め込みの関係を知ることができます dbtのモデルと…