DeepDBという機械学習でCardinality Estimationを行うシステムを試している。
ハマった点をいくつか。
PyYAMLのバージョン
requirements.txtやrequirements_python3.7.txtなどで指定されているPyYAMLのバージョンは3.12 だが、これは古すぎるのでうまく環境設定できない。 なので6.0など最新バージョンに書き換える必要がある。
IMDBデータ
これもIMDBデータを使う。READMEにあるように、http://homepages.cwi.nl/~boncz/job/imdb.tgz をダウンロードし、 imdb-benchmarkというディレクトリ に展開しておく。
imdb-benchmarkはdeepdb-publicと同じディレクトリ に作成する。
$ git clone https://github.com/DataManagementLab/deepdb-public.git $ mkdir imdb-benchmark $ cd imdb-benchmark $ tar xvfz imdb.tgz $ cd ../deepdb-public
PostgreSQLのセットアップ
imdb データベースの作成
Bao同様、imdbというデータベースを作成する必要がある。
簡単に作成するには、Bao セットアップの注意点 - interdb’s blog を参照。
接続情報の変更
デフォルトではロールもパスワードも"postgres"固定なので、適宜 ensemble_compilation/physical_db.py を変更する。