如何在 prestodb.io 中导出 select 语句的结果

问题描述 投票:0回答:4

两件事。

  1. 如何在没有“presto-cli-0.56-executable.jar”的情况下执行 sql 语句,例如我想提供一个 web 界面,人们可以在其中编写查询并在 web 上查看输出
  2. 如何将select语句的结果导出到文件中?
presto
4个回答
30
投票

简单的回答:

presto --execute "select * from foo" --output-format CSV > foo.csv

您可以使用这些格式:

ALIGNED
VERTICAL
CSV
TSV
CSV_HEADER
TSV_HEADER

15
投票

为了完整起见,您可以像这样运行 presto cli 客户端

presto --server {server_name}:{server_port} --catalog {catalog_name} --schema {schema_name} --user {user_name} --execute "SELECT * FROM table_name LIMIT 1" --output-format CSV > output_fname.csv

如果您希望包含标题,请按照上面的答案提示使用以下内容

--output-format CSV_HEADER

希望这有帮助。


0
投票

0
投票

我有一个关于这个的查询,导出数据都很好。但在我的例子中,查询所花费的执行时间是最糟糕的。例如,我从表中导出了一个 4.5G 和 4600 万行的文件,耗时 15 分钟。假设我有 3 亿行和 20G 文件大小。需要 1 小时以上。有没有办法优化查询?

示例查询

presto --server hostname:8081 --catalog hive --schema dbname --user zx_tenant --execute "select md5hash,email, decile , 'Hispanic' segment,(case when gqs in ('1','2','3') then '1' when gqs in ('4','5') and signal_match='Y' then '2' else '3' end) priority,l_postal,age_55_plus  from tablename " --output-format TSV_HEADER | tr '\t' '|' > HispanicW1TRT 

© www.soinside.com 2019 - 2024. All rights reserved.