BayesCardというベイジアンネットをベースとしたCardinality Estimationを行うシステムを試してる。
pythonのモジュール
使用にあたり、pythonのモジュールでちょっとハマったので備忘録として書いておく。numpyのバージョンに注意*1。
それとspflowのインストールを忘れずに。
pip3 uninstall numpy pip3 install numpy==1.19.2 pip3 install networkx pip3 install numba pip3 install pgmpy pip3 install pomegranate==0.13.2 pip3 install sqlparse pip3 install tables pip3 install spflow
IMDBデータ
これもIMDBデータを使う。READMEにあるように、 http://homepages.cwi.nl/~boncz/job/imdb.tgz をダウンロードし、 imdb-benchmarkというディレクトリ に展開しておく。
imdb-benchmarkはBayesCardと同じディレクトリ に作成する。
$ git clone https://github.com/wuziniu/BayesCard.git $ mkdir imdb-benchmark $ cd imdb-benchmark $ tar xvfz imdb.tgz
*1:pomegranateのバージョン依存性解決のため。