问题标签 [presto-jdbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1700 浏览

java - Presto JDBC 大查询极慢

问题

  1. 使用 JDBC 驱动程序从 Presto 查询中迭代一个大ResultSet数据非常耗时。每个批处理调用似乎几乎都需要 60 秒,这很可疑(可能是由于某些超时引起的?)。
  2. 出于某种原因,最初的 executeQuery 方法几乎需要 45 秒,这是可疑的。

询问

我正在使用 Java JDBC Presto Driver 对 Presto 执行一个简单的查询,它看起来基本上像:

stringA并且stringB很小 - 每个大约 10 个字符。
使用 teradata 驱动程序在 DbVisualizer 中运行时,我的查询在 10 秒内完成。
但是,当我使用 0.230 presto-jdbc 驱动程序从 Spring Java 应用程序运行相同的查询时,它似乎会分批(大约 75,000 个)返回结果,并且每批需要一分钟才能返回。

我已经阅读了一些有关 PrestotargetResultSize查询参数的信息,但我无法使用 JDBC 驱动程序/连接来设置它。我读过默认情况下 presto 一次只会返回 1MB 的数据?不确定这是否是我上述问题 #1 的原因 - 弄清楚如何配置它会很棒。

Java 代码

输出

版本信息

  • 爪哇 11
  • com.facebook.presto presto-jdbc 0.230
  • Spring Boot 2.1.6.RELEASE
  • Presto 版本:302-e.3(星爆版)
0 投票
1 回答
762 浏览

python - 从 EMR spark 连接到 EMR presto - 连接失败

我在从运行 spark 的 AWS EMR 集群连接到运行 presto 的另一个 AWS EMR 集群时遇到问题。

用python编写的代码是:

通过 aws 部署,emr add-steps带有选项--packages,\'org.apache.spark:spark-streaming-kinesis-asl_2.11:2.4.0,org.postgresql:postgresql:42.2.9,com.facebook.presto:presto-jdbc:0.60\',\

部署时会引发以下错误

org.apache.spark.deploy.SparkHadoopUtil.runAsSparkUser(SparkHadoopUtil.scala:64) org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1862) 的线程“main”java.lang.reflect.UndeclaredThrowableException 中的异常) 在 org.apache.spark.executor.CoarseGrainedExecutorBackend$.main(CoarseGrainedExecutorBackend.scala:330) 在 org.apache.spark.executor 的 org.apache.spark.executor.CoarseGrainedExecutorBackend$.run(CoarseGrainedExecutorBackend.scala:237)。 CoarseGrainedExecutorBackend.main(CoarseGrainedExecutorBackend.scala) 原因:org.apache.spark.SparkException:在 awaitResult 中抛出异常:在 org.apache.spark.util.ThreadUtils$.awaitResult(ThreadUtils.scala:226) 在 org.apache.spark .rpc.RpcTimeout.awaitResult(RpcTimeout.scala:75) 在 org.apache.spark.rpc.RpcEnv。setupEndpointRefByURI(RpcEnv.scala:101) at org.apache.spark.executor.CoarseGrainedExecutorBackend$$anonfun$run$1.apply$mcV$sp(CoarseGrainedExecutorBackend.scala:250) at org.apache.spark.deploy.SparkHadoopUtil$$anon $2.run(SparkHadoopUtil.scala:65) at org.apache.spark.deploy.SparkHadoopUtil$$anon$2.run(SparkHadoopUtil.scala:64) at java.security.AccessController.doPrivileged(Native Method) at javax.security。 auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1844) ... 4 更多原因:java.io.IOException: 无法连接到 ip -xxxx-xxx.ap-southeast-2.compute.internal/xxx-xxxx:41885 在 org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:245) 在 org.apache.spark.network。客户端.TransportClientFactory。createClient(TransportClientFactory.java:187) at org.apache.spark.rpc.netty.NettyRpcEnv.createClient(NettyRpcEnv.scala:198) at org.apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox. scala:194) at org.apache.spark.rpc.netty.Outbox$$anon$1.call(Outbox.scala:190) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util .concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 原因: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection denied: ip-xxxxxxxxx.ap-southeast-2.compute.internal/xxxxxx:41885 at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch .SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) 在 io。netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:323) 在 io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) 在 io.netty.channel.nio.NioEventLoop。 processSelectedKey(NioEventLoop.java:633) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) at io.netty .channel.nio.NioEventLoop.run(NioEventLoop.java:459) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run( DefaultThreadFactory.java:138) ... 1 更多原因:java.net.ConnectException:连接被拒绝 ... 11 更多 LogType 结束:stderrchannel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:323) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) at io.netty.channel.nio.NioEventLoop.processSelectedKey( NioEventLoop.java:633) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) 在 io.netty.channel .nio.NioEventLoop.run(NioEventLoop.java:459) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory. java:138) ... 1 更多原因:java.net.ConnectException:连接被拒绝 ... 11 更多 LogType 结束:stderrchannel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:323) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) at io.netty.channel.nio.NioEventLoop.processSelectedKey( NioEventLoop.java:633) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) 在 io.netty.channel .nio.NioEventLoop.run(NioEventLoop.java:459) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory. java:138) ... 1 更多原因:java.net.ConnectException:连接被拒绝 ... 11 更多 LogType 结束:stderrNioSocketChannel.doFinishConnect(NioSocketChannel.java:323) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:633)在 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) 在 io.netty.channel.nio.NioEventLoop.run (NioEventLoop.java:459) 在 io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) 在 io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) .. . 1 更多原因:java.net.ConnectException:连接被拒绝 ... 11 更多 LogType 结束:stderrNioSocketChannel.doFinishConnect(NioSocketChannel.java:323) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:633)在 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) 在 io.netty.channel.nio.NioEventLoop.run (NioEventLoop.java:459) 在 io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) 在 io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) .. . 1 更多原因:java.net.ConnectException:连接被拒绝 ... 11 更多 LogType 结束:stderrdoFinishConnect(NioSocketChannel.java:323) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:633) at io .netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop .java:459) 在 io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) 在 io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) ... 1更多原因:java.net.ConnectException:连接被拒绝... 11 更多 LogType 结束:stderrdoFinishConnect(NioSocketChannel.java:323) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:633) at io .netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop .java:459) 在 io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) 在 io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) ... 1更多原因:java.net.ConnectException:连接被拒绝... 11 更多 LogType 结束:stderrnio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) 在 io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:633) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java: 580) 在 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459) 在 io.netty.util.concurrent.SingleThreadEventExecutor $5.run(SingleThreadEventExecutor.java:858) at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) ... 1 更多原因:java.net.ConnectException: Connection denied ... 11 更多 LogType:stderr 结束nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) 在 io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:633) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java: 580) 在 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459) 在 io.netty.util.concurrent.SingleThreadEventExecutor $5.run(SingleThreadEventExecutor.java:858) at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) ... 1 更多原因:java.net.ConnectException: Connection denied ... 11 更多 LogType:stderr 结束NioEventLoop.processSelectedKey(NioEventLoop.java:633) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) 在 io .netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459) 在 io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) 在 io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator。 run(DefaultThreadFactory.java:138) ... 1 更多原因:java.net.ConnectException:连接被拒绝 ... 11 更多 LogType 结束:stderrNioEventLoop.processSelectedKey(NioEventLoop.java:633) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) 在 io .netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459) 在 io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) 在 io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator。 run(DefaultThreadFactory.java:138) ... 1 更多原因:java.net.ConnectException:连接被拒绝 ... 11 更多 LogType 结束:stderr497) 在 io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) 在 io.netty.util.concurrent 的 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)。 DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) ... 1 更多原因:java.net.ConnectException:连接被拒绝 ... 11 更多 LogType 结束:stderr497) 在 io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) 在 io.netty.util.concurrent 的 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)。 DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) ... 1 更多原因:java.net.ConnectException:连接被拒绝 ... 11 更多 LogType 结束:stderr

虽然我已经编辑了上面的 IP 地址(安全第一),但它与 spark 从属实例上的内部 IP 地址相同。它似乎正在连接到自身并出现连接问题。

我已经打开了 AWS EC2 安全组中的端口,允许从 spark 主/从访问 presto 实例。

如果有帮助,编写用于测试连接性的快速节点脚本可以工作

错误消息的关键部分似乎是

引起:io.netty.channel.AbstractChannel$AnnotatedConnectException:连接被拒绝:ip-xxxxxxxxx.ap-southeast-2.compute.internal/xxxxxx:41885

0 投票
1 回答
727 浏览

presto - 将客户端标签添加到 presto jdbc 连接

我正在使用 jdbc 连接到 presto 服务器。

从文档中,我能够连接到服务器并运行查询。 https://prestodb.io/docs/current/installation/jdbc.html

(X-Presto-Client-Tags)在连接/语句中发送 ClientTag 时遇到问题。

这是建立连接和运行查询的函数。

但是,它失败了

对于 pyhive,我能够覆盖会话并传递客户端标签 https://github.com/dropbox/PyHive/issues/283。jdbc驱动程序也可以这样做吗?

0 投票
1 回答
441 浏览

presto - 在 prestosql/presto 容器中创建目录/模式/表

我想使用 prestosql/presto 容器进行自动化测试。为此,我希望能够以编程方式创建目录/模式/表。不幸的是,我没有通过 docker 环境变量找到该选项。如果我尝试通过 jdbc 连接器执行此操作,我会收到以下错误:“此连接器不支持创建表”

如何使用 prestosql/presto 容器创建模式或表?

0 投票
0 回答
92 浏览

postgresql - 为什么 presto 不处理具有 citext 数据类型的列?

我在 presto-client 提供的 sql 控制台上运行 pgsql 查询,该控制台连接到在postgres之上运行的 presto-server 。查询的结果集仅包含非citext类型的列。

DataDetails表说明:

Presto-Client 中的查询结果:

在上面的结果集中,显然缺少citext类型的列。

presto 是否支持 citext 数据类型或是否有任何配置可以使用 presto 处理 citext 数据类型?

Postgres:PostgreSQL 9.4.0-relocatable (Red Hat 4.4.7-11),64 位

Presto-服务器:presto-server-0.230

Presto 客户端:presto-cli-332

0 投票
1 回答
329 浏览

jdbc - 在 Presto JDBC Connection Url 中传递参数和值

在 Presto JDBC Connection Url 中传递参数和值。例如,我想传递一个值为“1234567890”的自定义参数“abc”。下面的 jdbc 连接 url 可以满足上述要求吗? jdbc:presto://example.net:8080/hive/sales?abc="1234567890"

0 投票
0 回答
257 浏览

mysql - Presto 显示一切为空

我配置了单节点 Presto 集群,并能够从我的自定义 s3 服务中的数据创建表。但是,当我尝试查询数据时select * from test limit 10;,我得到的结果是这样的 -

我的 hive-metastore 也很稳定并且工作正常。但我无法理解为什么我将数据设为 NULL。但是,当我查询数据时SELECT COUNT(*) FROM test,我得到的结果类似于 25;行。这意味着表中有数据。我应该如何解决这个问题?

我对presto很陌生。需要帮忙!

0 投票
1 回答
568 浏览

hive - Presto odbc 无法读取 HIVE 中的时间戳文件

我正在使用 presto ODBC 将数据从 Hive 提取到其中一个 BI 工具中,但是,查询失败并出现以下错误。你能帮我理解可能是什么问题吗?

ODBC 版本:Simba Presto ODBC 驱动程序 1.02.09.1009

使用的 sql:从 stg_tables.vend 中选择 created_ts

Jul 07 08:07:03.919 ERROR 500 Statement::SQLPrepareW: [Simba][Presto] (1070) Unknown Presto 数据类型:timestamp(3)

虽然如果我在下面使用 SQL,它会很好。从 stg_tables.ven 选择 to_iso8601(created_ts AT TIME ZONE 'UTC')

0 投票
1 回答
536 浏览

apache-spark - 如何在 Spark 中增加 Presto 的查询执行时间

我目前正在使用 Spark 连接到 Presto。我们的查询在之后超时60m,为了增加查询执行时间,我在下面设置query.max-execution-time了参数getDBProperties()

当我运行工作时,我收到异常说exception caught: Cause = null Message = Unrecognized connection property 'query.max-execution-time'

我们使用apache-spark-2.3.x, presto-jdbc-driver-300

0 投票
1 回答
334 浏览

elasticsearch - 如何在presto elasticsearch中按子句pushdpown order

我在 starburst-presto 中运行 SQL 查询。它使用相关连接器连接到 elasticsearch。

SQL 有一个“order by”子句。此子句不会下推到 elasticsearch。基本上,我想根据特定字段对elasticsearch中的数据进行排序并返回结果。使用 presto 的“order by”查询需要花费大量时间。是否有可能以某种方式获得最佳性能?

SQL:select e.employee_id from elasticsearch.es."employee:id:""2390571"" && (doj_timestamp:(>=15965454 && <=15972366)) sort=employee_id:desc" e offset 0 limit 5;

上面的查询返回随机结果。

有人可以在这里帮忙吗?