SQLAlchemy
今回は、Python の O/R マッパーである SQLAlchemy について。 テーブルを定義した時点のモデルには無かったインデックスを、後から追加する方法についてメモしておく。 なお、実務における RDBMS のスキーマ変更に関しては、Alembic のようなフレームワーク…
MLflow は MLOps に関連した OSS のひとつ。 いくつかのコンポーネントに分かれていて、それぞれを必要に応じて独立して使うことができる。 今回は、その中でも実験の管理と可視化を司る MLflow Tracking を試してみることにした。 機械学習のプロジェクトで…
最近になって、バッチ処理においてデータパイプラインを組むためのフレームワークとして Luigi というものがあることを知った。 これは、Spotify という音楽のストリーミングサービスを提供する会社が作ったものらしい。 似たような OSS としては他にも Apac…
SQLAlchemy は Python でよく使われている O/R マッパーの一つ。 今回は、そんな SQLAlchemy が生成する SQL 文を確認するためのパッケージを作ってみたよ、という話。 具体的には、以下の sqlalchemy-profile というパッケージを作ってみた。 このエントリ…
Python のパッケージを作っていると、特定の環境だけで必要となるパッケージが大抵はでてくる。 例えばデータベースを扱うアプリケーションなら、使う RDBMS によってデータベースドライバのパッケージが異なる。 あるいは、インストール先の Python のバー…
今回は Python の O/R マッパーである SQLAlchemy と MySQL ドライバの mysqlclient を使ってマルチバイト文字を扱うときの注意点について書いてみる。 ただし RDBMS については MySQL ではなく、代わりに MariaDB を使った。 注意点というのを先に書いてし…
Alembic は Python で書かれたデータベースマイグレーションツール。 アプリケーションを開発していると、データベースのスキーマ変更はちょくちょくある。 そうした場合、よくあるパターンでは更新内容を SQL のテキストファイルで管理したりする。 それに…
以前、MySQL を使ってリレーショナルデータベースの悲観的・楽観的排他制御を試してみた。 今回は、その悲観的・楽観的排他制御を Python の O/R マッパーの SQLAlchemy で実際に使ってみることにする。 blog.amedama.jp 使用する MySQL のバージョンは次の…