1.下載 presto-server 和 presto-cli
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.266.1/presto-server-0.266.1.tar.gz
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.266.1/presto-cli-0.266.1-executable.jar
2.解壓安裝
1.解壓 presto-server-0.266.1.tar.gz
tar -zxvf presto-server-0.266.1.tar.gz
2.將 presto-cli-0.266.1-executable.jar 放到bin目錄中並改名為 presto
mv presto-cli-0.266.1-executable.jar persto
賦予權限
chmod +x presto
3.在presto 的安裝目錄下 創建data目錄
創建etc目錄
mkdir etc

進入etc創建以下文件並添加內容:
node.properties:
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff-001
node.data-dir=/home/wl/presto-server-0.266.1/data
jvm.config:
-server
-Xmx4G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
config.properties:
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=2GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery-server.enabled=true
discovery.uri=http://wlwl:8080
log.properties:
com.facebook.presto=INFO
在etc下面創建一個 名稱為catalog的文件夾
添加以下內容
connector.name=mysql
connection-url=jdbc:mysql://wlwl:3306
connection-user=root
connection-password=wl990922
3.啟動
bin/launcher run
出現以下內容說明啟動成功

訪問wlwl:8080,查看是否能訪問web界面

客戶端啟動
./presto --server wlwl:8080 --catalog mysql
4.常用語法
這里的 mysql 表示的數據庫類型
# 展示模式
SHOW SCHEMAS FROM mysql;
#展示數據庫
SHOW TABLES FROM mysql.database_name;
#展示表中的字段
SHOW COLUMNS FROM mysql.database_name.table_name;
#查詢表中數據
SELECT * FROM mysql.database_name.table_name;
#使用庫
use mysql.presto;
5.添加hive到presto
在catalog 文件夾下面創建一個 hive.properties 的文件,並添加以下內容
#連接器的名字,是固定的,hive-hadoop2
connector.name=hive-hadoop2
hive.metastore.uri=thrift://wlwl:9083
hive.config.resources=/home/wl/hadoop-3.3.1/etc/hadoop/core-site.xml,/home/wl/hadoop-3.3.1/etc/hadoop/hdfs-site.xml
6.添加potsgre到presto
安裝一個 postgre
參考官網:https://www.postgresql.org/download/linux/redhat/
# Install the repository RPM:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# Install PostgreSQL:
sudo yum install -y postgresql13-server
# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13
進入postgresql發現報以下錯誤

這個是因為postgresql是不允許使用root用戶啟動服務的,所以需要切換到 postgres

創建一個postgresql的properties
connector.name=postgresql
connection-url=jdbc:postgresql://127.0.0.1:5432
connection-user=postgres
connection-password=12345
7.多表聯查
這里記錄一個坑

當我想切換postgresql 提示 postgresql 不存在
這個是因為 我在 catalog 下面建 properties的時候建的是 postgre.properties ,presto讀取不到,所以報錯

1.在mysql中創建一個名稱為emp的表,數據如下

2.在hive中創建一個名稱為dep的表,數據如下

3.在postgre中創建一個名稱為address的表,數據如下

使用 presto 跨數據源 多表聯合查詢員工信息
select e.id,e.name,d.dep_name,d.dep_address,p.address_name from emp e left join hive.default.dep d on e.dep_no=d.id left join postgresql.public.address p on p.address_id=e.add_id;

