CUBE SUGAR CONTAINER

技術系のこと書きます。

Postgresql

dbt (data build tool) を使ってデータをテストする

ソフトウェアエンジニアリングの世界では、自動化されたテストを使ってコードの振る舞いを検証するのが当たり前になっている。 同じように、データエンジニアリングの世界でも、自動化されたテストを使ってデータの振る舞いを検証するのが望ましい。 データ…

PostgreSQL のテーブルに CSV でデータを読み込む

今回は PostgreSQL のテーブルに CSV ファイル経由でデータを読み込む方法について。 ちょくちょくやり方を調べている気がするのでメモしておく。 使った環境は次のとおり。 $ sw_vers ProductName: macOS ProductVersion: 12.1 BuildVersion: 21C52 $ uname…

macOS に Homebrew で PostgreSQL をインストールする

とあるライブラリのために PostgreSQL を使う機会があったので、その作業メモ。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G1114 $ brew --version Homebrew 1.4.1 Homebrew/homebrew-core (git rev…

SQL: NULLIF() 関数を使ってゼロ除算を防ぐ

RDBMS によってはゼロ除算をするとエラーになってしまうものがある。 例えば PostgreSQL とかがそう。 $ psql --version psql (PostgreSQL) 9.6.3 次のようにゼロ除算をするとエラーになって結果が得られない。 これは SQL を使って演算するときに問題となる…

ファイルから SQL を読み込む (MySQL, PostgreSQL, SQLite3)

色々な RDBMS で SQL の書かれたファイルを読み込む方法について調べた。 まずはSQL の書かれたテキストファイルを用意しておく。 $ cat << 'EOF' > sample.sql DROP TABLE IF EXISTS users; CREATE TABLE users ( id integer, name varchar(255), age integ…

Python: 環境ごとの依存ライブラリをセットアップスクリプトの extras_require で管理する

Python のパッケージを作っていると、特定の環境だけで必要となるパッケージが大抵はでてくる。 例えばデータベースを扱うアプリケーションなら、使う RDBMS によってデータベースドライバのパッケージが異なる。 あるいは、インストール先の Python のバー…

Python の DB-API (Database API) とは何か

Python でデータベース周りについて調べていると、ドキュメントの中にちょくちょく DB-API (2.0) という単語が出てくる。 果たしてこの DB-API とは何者なのか、というのが今回の主題。 結論から言ってしまうと、DB-API というのは Python でリレーショナル…