Bao セットアップの注意点

Baoという、機械学習ベースのクエリオプティマイザを試している。

github.com

丁寧なドキュメントもあるのだが、軽くハマった点がいくつかあるので、回避方法を書いておく。

rmarcus.info

ポスグレのバージョン

PostgreSQL 12.x。それ以外はダメっぽい。

Issue in installing Bao extension · Issue #1 · learnedsystems/BaoForPostgreSQL · GitHub

Pythonのバージョン

3.8以上。それ以下の場合、構文エラー*1がでるので自分で書き直す必要がある。

Python Syntax Error · Issue #2 · learnedsystems/BaoForPostgreSQL · GitHub

データベースとロール

imdbというデータベースとロールが必要。

CREATE DATABASE imdb;
CREATE ROLE imdb;
ALTER ROLE imdb WITH LOGIN;
ALTER ROLE imdb SUPERUSER;

imdb データ

imdbのデータをダウンロードしてpg_restoreでデータベースimdbに入れておく。 dataverse.harvard.edu

$ pg_restore -d imdb -F c imdb_pg11

*1:":="を使っている。