Trino/Prestoをdockerで動かしてみる

もう少しTrino/Prestoネタもブログに書いていこうかなというのと、普段テスト用途で古いバージョンのTrino/Prestoを手元で動かす際にdockerを使うことが多いので自分用のメモを兼ねて。

TrinoはDockerHubで公式のdockerイメージが公開されているので簡単にdockerで動かすことができます。イメージの使い方については以下にドキュメントがあります。

github.com

デフォルト設定で実行するだけならこんな感じ。

docker run --rm -p 8080:8080 --name trino trinodb/trino:371

起動後、以下のようにしてCLIクライアントで接続可能。もちろんlocalhostの8080ポートでWeb UIにもアクセスできますし、JDBCドライバなどで接続することも可能です。

docker exec -it trino trino

設定ファイルは /etc/trino ディレクトリに格納されているのでローカルで設定ファイルを用意しておきこのディレクトリにマウントすることで任意の設定で動作させることができます。

docker run --rm -p 8080:8080 -v <ローカルディレクトリ>:/etc/trino --name trino trinodb/trino:371

以下のディレクトリにデフォルトの設定ファイル群があるのでこれをベースに設定を弄ったりカタログを追加したりするとよいと思います。

なお、Trinoへのリブランディングされた350以前のPresto時代のdockerイメージについてはDockerHubから削除されてしまっているのですが、GitHub Container Registryにイメージがバックアップされています。互換性のチェックのために過去のバージョンを使いたいケースも多いので助かります。

docker run --rm -p 8080:8080 -v <ローカルディレクトリ>:/etc/presto --name presto ghcr.io/trinodb/presto:350

設定ファイルを配置するディレクトリは /etc/presto または /usr/lib/presto/default/etc になっています(後者が優先されます)。

docker run --rm -p 8080:8080 -v <ローカルディレクトリ>:/etc/presto --name presto ghcr.io/trinodb/presto:350