Python の Linter / Formatter をまとめられる Ruff を試す
チーム開発を行う際はどんな言語であれコードに統一性を持たせるためにLinter/Formatterを導入するかと思います。最近Pythonでそれらの機能をまとめて・高速に行えるRuffが注目を浴びているということで、実際にFlake8+Blackの環境から移行のテストを行いました。本記事ではその手順をまとめています。

朝日放送グループホールディングス株式会社 デジタル・アーキテック局 データ戦略チーム
アプリケーションからインフラ、ネットワーク、データエンジニアリングまで幅広い守備範囲が売り。最近はデータ基盤の構築まわりに力を入れて取り組む。 主な実績として、M-1グランプリ敗者復活戦投票システムのマルチクラウド化等。
チーム開発を行う際はどんな言語であれコードに統一性を持たせるためにLinter/Formatterを導入するかと思います。最近Pythonでそれらの機能をまとめて・高速に行えるRuffが注目を浴びているということで、実際にFlake8+Blackの環境から移行のテストを行いました。本記事ではその手順をまとめています。
昨今パスワードを使わなくて良いので提供者にとってもユーザーにとっても管理対象が減るということで目にすることも増えてきた「パスワードレス認証」ですが、その中の一つの「Magic Link」方式について、実際に実装してみるとわかるハマりやすいポイントをまとめてみました。
BigQueryでデータ分析をしている際に、0時で日付が変わるのではなく3時や5時といった早朝時間帯に日付を変えて分析したい、というシチュエーションはよくあるかと思います。本記事ではそういったときにクエリ上でどのように対応すれば良いかをまとめています。
様々な開発環境にあわせての開発準備のために、バージョン管理ツールは欠かせないものですが、最近新しく環境をセットアップする機会に今まで使っていたasdfからmiseに切り替えてみることにしました。導入のために必要な内容と、良かった点についてまとめていきます。
BigQuery UtilsにはBigQueryで処理をする上で便利なUDF(ユーザー定義関数)が多数含まれています。これまではUSリージョンでのみ公開されていたため、なかなか東京リージョンなどでは使いにくい状況が続いていましたが、今年の6月に実はもう全世界公開されていたのでその使い方を紹介します。
Geminiでは、YouTubeの動画をURLベースで渡すことによって、その動画の内容を渡した上での回答を得ることが出来ます。本記事ではGUIおよびAPIベースでYouTubeの動画URLをGeminiに渡し、生成AIに回答してもらう方法をまとめています。
クラウドストレージの料金は基本的にプロジェクトやアカウントに紐付けられた請求用のアカウントにて全額請求されるものとなっていますが、そのうちリクエストやデータ転送にかかる料金はS3やGCSにおいてはリクエスト元に要求することが可能です。意外と知らない話ですが、大きなファイルを共有するようなケースでは使える知識かと思います。
Pythonの標準ライブラリ「itertools」を使用すると、forループの深いネストを防止することができます。今回はitertoolsの中でも特によくあるユースケースを紹介します。itertoolsには、その他にも車輪の再発明を防ぐような形でイテレータに関しての処理を行う関数が用意されていますので、そちらも紹介しています。
色々な基盤においてAmazon Auroraは便利に使われているDBサービスかと思いますが、そのデータを用いて分析等を行いたい場合にはエクスポートを行う必要があります。本記事では、定期的なエクスポートのための具体的な手順をサンプルコードつきで紹介しています。
Cloud Composerのようなデータ基盤を構成するためのツールにおいてはやはりローカル開発環境は欠かせません。本記事では、Cloud Composerにおけるローカル開発環境を構築するためのツールと、それらを使用する上での注意点についてまとめています。
BigQueryのパーティション数上限の緩和が2024年5月29日に発表されましたが、それをそのまま簡単に適用しようと思うとできないパターンというのがあります。どういったパターンで簡単に上限緩和の恩恵を受けられないかということと、そもそもパーティション数の上限とは何か、といったところについて解説します。
SELECT文で基本的には全カラムを選択したいものの、特定のカラムは除きたいとき、通常のDBにおいては全カラム名を頑張って指定するしかないかと思いますが、BigQueryのSELECT文には EXCEPT という構文があり、これを利用することで簡単に特定の列を除外した上でSELECTを行うことが可能になります。本記事ではあわせて置き換えに使うREPLACEも紹介しています。