如果需要读取多数据源的数据的话,presto用起来就比较合适了。
安装
brew install presto
配置
配置文件目录:/usr/local/Cellar/presto/0.206/libexec/etc
- 修改config.properties里的端口号
在/etc下vim mysql.properties(连接mysql)
connector.name=mysql
connection-url=jdbc:mysql://example.net:3306
connection-user=root
connection-password=secret
测试
presto –server localhost:7077 –catalog mysql –schema park
show tables;
启动
presto-server run
或者
brew services start presto
读取mysql
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # -*- coding: utf-8 -*- # !/usr/bin/env python from sqlalchemy import * from sqlalchemy.engine import create_engine from sqlalchemy.schema import * import pandas as pd engine = create_engine('presto://localhost:7077/mysql') def read_from_sql(sql): df = pd.read_sql(sql, engine) return df
|
问题点:
在安装目录/usr/local/Cellar/presto/0.206下配置etc等配置文件,一直不生效
原因:
1 2 3
| ps -ef |grep presto 501 29796 1 0 5:06下午 ?? 2:22.37 /usr/bin/java -cp /usr/local/Cellar/presto/0.206/libexec/lib/* -server -Xmx16G -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+UseGCOverheadLimit -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError -Dnode.environment=production -Dlog.levels-file=/usr/local/Cellar/presto/0.206/libexec/etc/log.properties -Dconfig=/usr/local/Cellar/presto/0.206/libexec/etc/config.properties -Dnode.data-dir=/usr/local/var/presto/data -Dnode.id=ffffffff-ffff-ffff-ffff-ffffffffffff com.facebook.presto.server.PrestoServer
|
可以看出,配置文件目录不正确
解决方案:
修改正确目录下的配置文件