问题标签 [trino]
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.
presto - 引用行对象的字段
我无法访问在 Presto 中创建的行对象的字段。Presto 文档声称“字段......通过字段引用运算符访问。” 但是,这似乎不起作用。此代码重现了该问题:
它返回一个“无关输入'.1'”错误。
presto - Presto CLI 上 Presto 中的参数化 SQL
是否有任何选项可以在 Presto CLI 上提供参数。
我正在尝试将我的 impala-shell 命令更改为 Presto,其中我的 HQL 文件从 impala 的命令行获取参数,如下所示。
impala-shell -f ot_full.hql --var=date_next=${date_next_para} --var=yrmth=${yrmth_para} --var=yrmth_L12=${yrmth_L12_para} --var=pyrmth=${pyrmth_para}
WITH
presto 中的子句没有太大帮助。
我们如何将其转换为 Presto 命令行。
我在https://prestodb.io/docs/current/中没有找到任何文档/示例
ubuntu - 当我使用 $ bin/launcher run 启动 Presto 服务器时,出现错误
无法识别的 VM 选项“G1HeapRegionSize = 32M”您的意思是“G1HeapRegionSize=”吗?错误:无法创建 Java 虚拟机。错误:发生了致命异常。程序将会退出。
sql - 如何在 Presto 中将时间戳转换为日期?
我喜欢将我的时间戳列转换为日期和时间格式。我应该如何从 presto 编写查询?我的时间戳是UTC时间。非常感谢
hive - 如何处理跨 hive 和 presto 的 hive 锁定
我有一些从 spark 和 hive 插入覆盖的 hive 表。分析师也可以在 presto 上访问这些表格。自然,我们会遇到一些时间窗口,因为 presto 忽略了锁,所以用户会遇到不完整的数据集。
我能想到的选项:
- 叉出 presto-hive 连接器以适当地支持 hive S 和 X 锁。这并不算太糟糕,但是要正确执行会很耗时。
- 插入覆盖完成后,交换 hive 元存储上的表位置。这没关系,但有点混乱,因为我们喜欢在数据库级别存储显式位置并让表继承位置。
- 停止在这些表上执行插入覆盖,而只需为已更改的内容添加一个新分区,然后在写入新分区后,更改配置单元表以查看它。然后我们就可以在数据之上拥有能够正确协调每一行的最新版本的视图。
- 停止在 s3 上执行插入覆盖,该 s3 具有从配置单元登台到目标表的复制窗口很长。如果我们将所有插入覆盖都转移到 hdfs,我们仍然会遇到问题,但是在执行 hdfs mv 所需的时间跨度上,速度要快得多。(可能很糟糕:仍然有一个窗口可以让我们获得不完整的数据)
我的问题是人们通常如何处理这个问题?这似乎是一个有明确解决方案的常见场景,但我似乎错过了它。对于任何可以查询 hive 元存储并直接与 hdfs/s3 交互而不考虑 hive 锁的第三方工具,通常都可以要求这样做。
apache-spark - Spark 并发性能问题 Vs Presto
我们用alluxio 对spark 进行基准测试,用alluxio 对presto 进行基准测试。为了评估性能,我们采用了 5 个不同的查询(带有一些连接、分组和排序)并在 orc 中的 650GB 数据集上运行它。
Spark 执行环境的设置方式是我们有一个一直在运行的 Spark 上下文,并且我们使用 REST api(Jetty 服务器)提交查询。我们没有考虑此负载测试的第一批执行时间,因为由于任务反序列化等原因,它花费的时间不多。
我们在评估时观察到,当我们运行单个查询甚至同时执行所有这 5 个查询时,与 presto 相比,spark 的性能非常好,并且完成所有执行的时间是 presto 的一半。
但是对于实际的负载测试,我们执行了 10 批(一批是这 5 个查询同时提交),批间隔为 60 秒。在这一点上,presto 的表现比 spark 好很多。Presto 在约 11 分钟内完成了所有工作,而 Spark 需要约 20 分钟才能完成所有任务。
我们尝试了不同的配置来提高 spark 并发性,例如
- 使用具有相同资源分配的 20 个池并以循环方式提交作业。
- 尝试使用一个 FAIR 池并将所有作业提交到此默认池,并让 spark 决定资源分配
- 调整一些火花属性,如
spark.locality.wait
和其他一些与内存相关的火花属性。 - 所有任务都是 NODE_LOCAL(我们在 alluxio 中复制了数据来实现这一点)
- 还尝试过使用执行器内存分配,例如尝试使用 35 个小型执行器(5 核,30G),也尝试使用(60core,200G)执行器。
但所有这些都会导致相同的执行时间。我们dstat
在所有工作人员上使用以查看 spark 执行任务时发生了什么,我们可以看到没有或看到最小的 IO 或网络活动。并且 CPU 总是在 95%+(看起来它受限于 CPU)。(用 presto 看到几乎相似的 dstat)
有人可以向我推荐一些我们可以尝试达到与 presto 相似或更好的结果的东西吗?
以及为什么 presto 在并发方面表现优于 spark 的任何解释?我们观察到 presto 的第一批比后续批次花费的时间更多。presto 是否在内存中缓存了一些 spark 丢失的数据?还是 presto 的资源管理/执行计划比 spark 好?
注意:两个集群都使用相同的硬件配置运行
sql - 无法立即将“”转换为 bigint
我试图在我的查询中清除'null',但运行它时仍然出现错误,一直告诉我'cannot cast'' to bigint,有什么办法可以解决它吗?
我的查询
错误
查询 20180510_220127_17857_bxg5s 失败:无法将 '' 转换为 BIGINT
java - Presto SocketTimeoutException
我正在尝试从 presto-cli 执行 presto 查询,我收到以下错误
sql - Presto 数组包含一个喜欢某种模式的元素
例如,我的表中的一列是一个数组,我想检查该列是否包含包含子字符串“denied”的元素(因此“denied at 12:00 pm”、“denied by admin”等元素都将计算在内,我相信我将不得不使用“喜欢”来识别模式)。如何为此编写sql?
java - 构建 presto 时出现异常
我在构建 presto 时遇到异常,
指导我如何毫无例外地构建 presto。