Presto On AWS 工作实际应用

Presto On AWS 工作实际应用

摘要

Presto On AWS 工作实际应用

Presto是啥

Presto是个sql查询引擎 , 可以用sql的方式查询hdfs上的数据.而在AWS上的Presto更强了可以直接查询s3上的数据.
优势是啥呢, 个人感觉比hive快,比impala稳定.

创建Presto集群


当然也可以高级模式下选择Presto组件.
有点不理解 emr 中的core和task 节点的区别. 当你创建1个master , 1个core ,1个node的时候, 实际看到只有master+task参与了运算sql….

准备数据

普通的logback日志格式的吧,这里用\t分隔.

2017-05-10 18:04:38.530    Thread-5    DEBUG    logger_xender_coinmgr    logtestmsg1
2017-05-10 18:04:39.132    Thread-5    DEBUG    logger_xender_coinmgr    logtestmsg2
2017-05-10 18:04:39.133    Thread-5    DEBUG    logger_xender_coinmgr    logtestmsg3
2017-05-10 18:04:39.134    Thread-5    DEBUG    logger_xender_coinmgr    logtestmsg4

放在s3里
这里就用s3://s3demo-test/

建表

hive
> create EXTERNAL TABLE tblog(
logtime  TIMESTAMP,
threadname STRING,
level  STRING,
loggername STRING,
msg STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION 's3://s3demo-test/';

查询

presto-cli
>use hive.default ;
>select * from tblog limit 10;

补充一下相关的命令

导出到csv文件

presto-cli --catalog hive --schema default --execute "select * from tbtop where level='ERROR' "  --output-format CSV_HEADER >  out.csv

s3命令

##先清空

aws s3 rm s3://s3demo-test --recursive

##再拷贝

aws s3 cp s3://top-upload-bak-sg/201719_app/2017-05-11/     s3://s3demo-test/ --recursive  --exclude "test" --include "*"