トレジャーデータが公開しているOSSの1つにpresto-client-rubyというRuby用のPrestoクライアントライブラリがあり、最近色々と弄る機会が増えてきたのでメンテナにしていただいたのですが、PrestoSQLがTrinoのリブランディングされ通信の仕様も若干変わったため、Trino対応させるとともにtrino-client-rubyに改名し、バージョンも1.0.0としてリリースし直しました。
PrestoはレスポンスのJSONの形式がバージョンによって若干異なるため、presto-client-rubyではmodel_version
というオプションで使用するPrestoのモデルを指定できるようになっているのですが、このオプションで351以前のバージョンを指定するとPrestoモードで動作するようになっています。デフォルトではTrinoモードで動作します。
client = Trino::Client.new( server: "localhost:8880", ssl: {verify: false}, catalog: "native", schema: "default", ... model_version: "316" # Works in Presto mode )
ただ、model_version
オプションは必ずしも対象のPrestoのバージョンをそのまま指定すればよいというわけではなく、ちょっとわかりにくい部分もあるのでクライアントのインスタンス生成時にPresto/Trinoのバージョンを確認しに行って自動で判定するようにしてもいいかもしれないと思っています。
今後も改善できる点があれば引き続きメンテしていきたいと思います。