Presto の変更点

  • 追加された行はこの色です。
  • 削除された行はこの色です。
  • Presto へ行く。

#author("2019-07-13T02:05:15+09:00","default:k1rou","k1rou")
*Presto [#i0deda86]
-https://prestosql.io/

-2018.12迄
--https://prestodb.io/

**Presto とは [#d3a62791]
-対話型クエリエンジン
-[[Facebook]]が開発した。
-Presto Software Foundation が2019年1月に発足。以降、管理している。

-インメモリ処理
-[[分散データ処理]]
-分散データを集約するのが得意
-[[ORC]]形式のデータの読み込みに最適化されている。
-Java
-ANSI標準のSQLを使うことができる。

**システム構成 [#za26d7b8]
***クライアント [#a7c3c0c4]
-Presto CLI

***サーバ [#n6bdabe5]
-Presto Server
--Coordinator
--Worker

**対応するデータストア [#dbeda15b]
-[[HDFS]]([[Hadoop]])-[[Hive]]
-[[MySQL]]
-[[Cassandra]]
-[[MongoDB]]
-[[PostgreSQL]]

**Prestoの機能 [#wc5c5879]
***テーブルの結合方式 [#of1793f3]
-分散結合(デフォルト)
-ブロードキャスト結合

***Prestoのリソース管理 [#vda004cc]
-マシンの全てのリソース(CPU,メモリー)を使う。
-スケジューリング機能(検討中で未実装)
--Resouce Group Configuration

***Webモニタリングツール [#uaf533c9]
-クエリの実行状況・実行結果をWebブラウザ上で監視することができる。
-Presto ServerのCoordinatorの設定ファイルに指定したポート番号を利用する。

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

***コマンド類 [#bc6574c0]
-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 [#o744f80a]
-Presto JDBCを利用することで、[[Java]]言語でPrestoとJDBC接続することができる。

**参考 [#e660a391]
-Presto(公式)
--https://prestodb.io/
--https://github.com/prestodb

-コネクタ開発関係
--http://www.techscore.com/blog/2015/04/30/presto-connector-development-1/
--https://github.com/prestodb/presto/tree/master/presto-example-http
--https://qiita.com/smr/items/8dcfc040eabfa7629aef

-maven
--http://mvnrepository.com/artifact/com.facebook.presto/presto-server
--http://repo1.maven.org/maven2/com/facebook/presto/

**基盤として使われている技術・ライブラリ [#eed1a6ac]
-[[Airlift]]



**関連用語 [#i3ac1f2c]
-[[ビッグデータ]]
-[[AWS]]
-[[DAG]]
-[[Hive]]
-[[IntelliJ IDEA]]