DeepDBセットアップの注意点

DeepDBという機械学習でCardinality Estimationを行うシステムを試している。

github.com

ハマった点をいくつか。

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 を変更する。

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:":="を使っている。

滞在ビザの更新 2022

来年2022のための滞在ビザの更新をしてきた。

昨年、というか今年分の更新についてはこちら。 interdb.hatenablog.com

基本的には同じ手続きだけども、更新時期になると役所が書類を送ってくるので、原則的には取りにいく必要はなかった*1

次に、記述部分。会社の項目は全部記入する必要があるらしい。なんで昨年はスタンプだけで通ったのか不思議。 メールアドレスや電話番号も必須と言われた。もしかして係員の気分なのかもしれないが、あいにくそれを試す機会はない。

*1:ただし、受け取り時期に旅行などで不在の場合は、更新の3ヶ月前から直接取りにいくこともできるということであった。

Python仮想環境構築の備忘録

参考 : https://www.tensorflow.org/install/pip?hl=ja

MADEというディレクトリ 以下にpythonの仮想環境(ここでは"made"という名前にする)を作って作業するための手順。

$ mkdir MADE
$ cd MADE
$ python3 -m venv --system-site-packages ./made

次に以下を実行。

$ source ./made/bin/activate
(made)$ pip install --upgrade pip

プロンプトが"(made)$"と変わったら、それは仮想環境ができてそこに入れた証拠。 なので、必要なパッケージをインストール。

(made)$ pip install ...... # 必要なパッケージs

仮想環境からでるには、以下を実行。

(made)$ deactivate
$

小旅行

今年は春から天候が悪く、晴天が続かない日々が続いていたので、数日以上晴天が続く日を狙って直前に休みを入れた。

当初は自転車でスイス中部を走る予定(Luzern->Interlaken->Bern->basel)だったが、初日夜に体調を崩してしまい、結局自転車はLuzernからInterlakenとMontreuxからLausanneまでの計110Km程度(地図中の赤線)。残りは列車移動。

f:id:interdb:20211013020811p:plain

ZurichからLuzernは以前自転車で走ったので今回はLuzernからInterlakenまで走るのが最初の目的。 何故ならLuzernからMontreuxのアルプス山脈北側を走る路線はゴールデンパスと言われるほどスイスの中でも綺麗な景色が続く土地だから。 実際昨年LuzernからZurichまで走った時も息を飲むほど綺麗な風景が続いて驚いたので、今回も期待して走ったのだが、こちらの心が汚れてしまったのか、以前ほどの感動も驚きもなかった。見慣れた風景という感じ。

f:id:interdb:20211008144625j:plain
ルンゲルナー湖を見下ろす峠の登坂中。雲の中からF/A-18の音が絶え間なく聞こえる
f:id:interdb:20211008133309j:plain

しかも、戦闘機訓練が昼過ぎから夕方まで続いており、F/A-18ホーネットの爆音続きでゲンナリしてしまった。

f:id:interdb:20211013022718p:plain
インターラーケン手前のマイリンケン空軍基地に着陸するF/A-18 ホーネット

Interlakenでは体調の関係で自転車乗りを諦め、急遽ユングフラウ鉄道で山頂へ。ヨーロッパ最高地点の駅。

www.myswitzerland.com

観光地観光地してるところは避けようと思っていたが、体調の関係で行ってみたらこれが大正解。料金はバカ高いが行く価値はある。めずらしく快晴だったこともよかった。

f:id:interdb:20211010111747j:plain
ユングフラウ

下りは1区間歩いた。 f:id:interdb:20211010121712j:plain f:id:interdb:20211010122148j:plain

f:id:interdb:20211010124528j:plain
アイガーとメンヒ(たぶん)

翌日、Bernまで走るつもりが、ふと思いついてMontreuxのQueen Stdio Experienceを調べたら、開いていることが分かったので急遽行き先をMontreuxに変更。 春ごろ調べたときはコロナで閉まっていたのだけれど、今はワクチンパスポートがあれば入場できるようになっていた。

www.montreuxriviera.com

InterlakenからMontreuxへはいくつかの路線があるが、一番短時間で行けるのは南下して西に向かう路線だった。多分観光スポットも少なく、普通なら絶対に乗らないであろう路線。 ドイツ語圏からイタリア語圏、フランス語圏と経由するので、街の景色もなんとなく違う。列車内のアナウンスも案内板もドイツ語からフランス語に唐突に変わる。

そしてMontreux。なんかフランスっぽい。ドイツ語圏の都市のきっちりした清潔さがなく、雑然としていてラテン風の、いかにも西ヨーロッパな感じ。

で、湖畔のフレディーの銅像

f:id:interdb:20211011101925j:plain

カジノと併設されているマウンテンスタジオ。

f:id:interdb:20211011102714j:plain

中に小部屋2つ程度の小規模な展示場がある。

f:id:interdb:20211011103502j:plain
Jazz関係の資料
f:id:interdb:20211011103646j:plain
初期のひらひら衣装
f:id:interdb:20211011103728j:plain
OneVisionのイントロなどで使われたDX-7
f:id:interdb:20211011103743j:plain
GuildのRedSpecialコピーモデル、友達が持ってたので一時借りていたことがある
f:id:interdb:20211011103750j:plain
ドラムとフェンダーベース

リアルタイム(発売時)でQueenのアルバムを買ったのはJazzが最初で、そのJazzはこのマウンテンスタジオで録音されている。

en.wikipedia.org

以降、ラストアルバムまでこのスタジオが使われた*1

個人的にはQueenに思い入れが強すぎるので、この展示物の数にはかなりガッカリ。でも、これをメインに旅行したらもしかして後悔したかもしれないけれど、今回のように突発的に立ち寄ったのならば、旅行のオマケとしてはよかったかなと納得することにした。

Lausanneまで、レマン湖湖畔を走る。

f:id:interdb:20211011113704j:plainf:id:interdb:20211011121431j:plain

思ったよりも風が冷たい。で、Lausanne。湖畔の都市というと平地をイメージしてしまっていたが、とんでもない。山が迫っていて、湖面から100mくらい上に駅がある。で、そこまでの道はあたりまえだがすべて急な登り坂。

体調も戻ってきていたので、Lausanne周辺を走ろうとか、ジュネーブまでいっちゃおうかなと余裕ぶっこいていたけど、駅まで登ったところで体力の限界を感じ、黙ってZurichまで戻ることに。

というわけで、期せずして結果的にスイスほぼ一周してしまった。

アルプスはさすがに驚愕すべき凄さであったが、それ以外の風景は2年も住んでいると見慣れてしまった。正直、北海道の道東のほうが綺麗だし広大*2

そろそろ他所の国にも旅行に行きたいが、年齢的に無理できない身体になっていて、食事や移動など体に負担がかかるとすぐ体調不良になる。とはいえ、行ける時に行っておかないと、またいつ疫病やらなにやらで動けなくなるかもしれないし。ギリギリの選択が続く。

*1:そもそもjazzの時にイギリスを出て録音したのは節税対策。節税対策でこのスタジオも購入した。なので、このマウンテンスタジオと他国のスタジオを複数使ってどこにも税金を払わないという方式が取られていた。

*2:スイスは国土も狭いし山地ばかりなので、湖以外に広い平地が視界に入らず、気分的に閉塞感がある。

Git の備忘録 (4)

以下のような状況で、差分をメインブランチに反映するお手軽な方法。

  1. 開発中のブランチ(ここではREL_14)をベースに、別ブランチ(ここではdev)でさらに面倒な変更(図中ではオレンジのコミット)を加えている。
  2. devブランチは、ときどきREL_14のコミットをcherry-pickしている。

f:id:interdb:20210911205056p:plain

開発ブランチの開発が終わった段階で、devブランチの差分を上書きするには、以下の手順を実行する。

1. 開発ブランチ(REL_14)でgit diffを実行し、パッチファイルを作成する。
$ git diff REL_14 dev > diff.patch
2. 作成したパッチを適用する。
$ git apply -p1 ./diff.patch
3. 差分をコミットする。

devブランチで追加したファイル群をgit addでインデックスに追加するのを忘れないように。

$ git commit
4. パッチファイルを削除する。
$ rm diff.patch

Die Olympischen Spiele sind vorbei.

2013年9月*1に招致が決まったオリンピックがやっと終わったらしい。らしいというのは、TVがないとオリンピック関連の動画はyoutubeをはじめどんな動画サイトであろうと1秒たりとも観ることができないためで、さすが映像権などあらゆる権利をガチガチに管理して金儲けに邁進する世界最大級の商業イベントである。

「温暖で晴天の日が多く、選手たちが自分の力を思う存分発揮できる理想的な気候」の下*2、106人中30人しか棄権しなかったマラソンや、1人しか吐かなかったトライアスロンなど、快適な環境で競技が行われたようで何よりである。

オリンピックが始まる前から英語圏での情報は酷いものばかり*3であったが、YAHOOのヘッドラインは別の世界線のように世界中諸手を挙げてオリンピックを歓迎、日本のオモテナシに感嘆しているように見えたのでよかった。やはり母国語で心地よい文章だけを読むのは精神衛生上非常によい。

もちろん開会式も閉会式も1秒たりとも観ていないのであるが、文化的にも文明的*4にも日本の国力を反映した非常によい開閉会式だったようである。ゲーム音楽東京音頭まで飛び出したようで、国際的なイベントで自国民のノスタルジーにのみ訴えかけるという、内向き後ろ向きの出し物というのも自国開催の特権である。他国の視線など気にせず、165億円もの巨費を投じて自国民にしか通じないコンテキストの出し物をだせて、(結局何人辞めて、最終的に誰が担当なのかは知らないが)企画の人間も大満足だろう。

費用といえば、開催決定時に「これで東京のインフラを再構築できる」など開催を歓迎する声が多数あり、それを聞くたびに「コンパクト五輪、世界一金がかからない五輪と言ってるのに頭おかしいのか」と常々思っていたのだが、頭がおかしかったのはこちらだったようである。 なにせ現時点で3兆円を超え、これにチケットの払戻しや競技場の維持費など、4兆円を超える額がこのオリンピックに投入されるようで、これだけの金額が市場に流れ込めば、アテネやリオはじめ五輪後に経済クラッシュした他国の例に反し、経済も安泰である。 もちろん金の配分には仲介業者の介在が不可欠であるが、未開の発展途上国でもない限り、50%も80%もピンハネされるはずはないから安全安心である。

オリンピック期間中の感染爆発により、日本だけで観測されていた世にも奇妙なPCR検査否定論者*5が続々と検査しろ派に転向しているのも良い傾向だろう。 そもそもPCR否定論は2020年オリンピック開催のために感染者数を正確にカウントしたくなかった人たちの方便*6であり、終わってしまった今は否定する意味もない*7 *8。20兆円というコロナ予備費の使い残しも、パソナなどを使って迅速に国民に還元されるだろう。

*1:311からわずか2年半後で、10万人以上が避難生活していた時期だ。

*2:開催決定時に開催反対を表明すると非国民呼ばわりしていた人たちも、さぞかし爽やかな夏の日々を過ごしたことだろう。

*3:https://www.thesun.co.uk/sport/tokyo-olympics-2020/15640779/swimming-triathlon-poo-ecoli-water-games/ https://www.foxsports.com.au/tokyo-olympics-2021/swimming-in-poo-fears-of-sewage-leak-in-olympic-venue/news-story/9152e330a7dc15866a02646810cbd96b

*4:一番の出し物のドローンがIntelのものだったそうで。

*5:ワクチン否定論は世界各国で観測されたが、PCR検査否定論、しかもそれが主流というのは日本だけ。

*6:「日本の夏は温暖」「メルトダウンした原発はアンダーコントロール」と堂々と嘘をつく人間が2020年時点でも開催の可否について実権を持っていたことは事実であり、実際に1年延期したことも事実である。

*7:『日本はCTがあるからPCRはいらない』とか言ってた人たちも、さすがにもう消えたようである。CTでわかるということはすでに肺炎初期なので、それまでに感染してウイルスをかなりばら撒いている。PCRなら頻度をあげればばら撒き始めに検出できる。ま、PCRを受けたくても国が拡充しない方針なら検査できないで感染する不安に駆られるのは当然かもしれないが、だからといって馬鹿でもわかる簡単な扇動に乗っかってはいけない、あくまで「検査させろ」と主張しなければならない。検査しないということはログなしでトラブルシューティングするようなもので、計測しなければ予防はおろか実態把握すらできないのだが、それがわからない人間が自称エンジニアのなかにも相当高い割合(過半数以上、というかほぼ100%、判を押したような否定論を述べるかリツイートしていた。)いたというのは、、、、、実はそれほど驚きでもなかった。これに限らず明らかに意図的な誘導を試みているネットの意見に簡単に乗せられていくのをこの10年くらい観測し続けているので。驚くほど均質で、昆虫の群れを観察しているような感覚になる。

*8:実際、政権与党は昨年から事務職まで含めてPCR検査しているし、無理やり開催するためにオリンピックで選手含め関係者は頻繁にPCR検査をすることも周知になってしまったので、今更否定論を続けるのも苦しいだろう。さらにワクチン摂取しても(重症化率は下がるがそれでも)感染する(水疱瘡並の感染力を持つという)デルタ株がドミナントになって昨年のイタリア、スペイン、ニューヨーク並の事態がこれからやってくるのが確実なわけで、Take care. 実際、デルタ株、ラムダ株は洒落にならん。