Presto

2021-11-14 (日) 12:02:31

Presto

Presto とは

  • 対話型クエリエンジン
  • Facebookが開発した。
  • Presto Software Foundation が2019年1月に発足。以降、管理している。
  • インメモリ処理
  • 分散データ処理
  • 分散データを集約するのが得意
  • ORC形式のデータの読み込みに最適化されている。
  • Java
  • ANSI標準のSQLを使うことができる。

システム構成

クライアント

  • Presto CLI

サーバ

  • Presto Server
    • Coordinator
    • Worker

対応するデータストア

Prestoの機能

テーブルの結合方式

  • 分散結合(デフォルト)
  • ブロードキャスト結合

Prestoのリソース管理

  • マシンの全てのリソース(CPU,メモリー)を使う。
  • スケジューリング機能(検討中で未実装)
    • Resouce Group Configuration

Webモニタリングツール

  • クエリの実行状況・実行結果をWebブラウザ上で監視することができる。
  • Presto ServerのCoordinatorの設定ファイルに指定したポート番号を利用する。

実装

コネクタ

  • コネクタはPrestoが接続するデータベースエンジンの単位。
  • プラグイン機能の一つとして、コネクタ機能を利用することができる。
  • PrestServerのパッケージにバンドルされているコネクタがある。
  • 独自にコネクタを開発することも可能。

コマンド類

  • hive.properties
    • connectorname=hive-hadoop2
    • hive.metastore.uri=thrift://localhost:9083
  • Prestoサーバ起動
    • launcher <option>
      • run(フォアグラウンド起動)
      • start(バックグラウンド起動)
      • stop
      • kill
      • status
  • Presto CLI起動
    • presto --server <hostname:portno> --catalog <catalog-name> --schema <schema-name>
    • use <catalog-name>.<schema-name>;
    • show tables from <catalog-name>.<schema-name>;
    • show columns from <catalog-name>.<schema-name>.<table-name>;

JDBC

  • Presto JDBCを利用することで、Java言語でPrestoとJDBC接続することができる。

参考

基盤として使われている技術・ライブラリ

関連用語