我实现了BigQuery插件。BigQuery支持struct
类型,它可以在Presto中表示为rowtype
类。
RowType
在RowType::CreateBlockBuilder
中创建RowBlockBuilder
,它具有RowBlockBuilder::AppendStructure
方法,该方法只要求接受AbstractSingleRowBlock
类的实例。
这意味着在我实现Presto的RecordCursor
BigQueryRecordCursor::GetObject
方法时,我必须为具有RowType
类型的字段返回AbstractSingleRowBlock
。
但是AbstractSingleRowBlock
有package private abstract方法,这使我无法实现该类。唯一的子级singlerowblock
具有package private constructor,并且没有可以为我构建实例的工厂或构建器。
如何在BigQueryRecordCursor::GetObject
中实现Struct
支持?(提醒:BigQueryRecordCursor
是RecordCursor
的子级)。
您需要通过调用beginblockentry
来组装该行的块,通过type.writexxx
将每列的值附加到列的类型,然后使用closeentry
。这里有一些伪代码。
BlockBuilder builder = type.createBlockBuilder(..);
builder = builder.beginBlockEntry();
for each column {
...
columnType.writeXXX(builder, ...);
}
builder.closeEntry();
return (Block) type.getObject(builder, 0);
但是,我建议您改用柱状API(即connectorpageSource
和friends)。看看Elasticsearch连接器是如何实现的:
https://github.com/prestoSQL/presto/blob/master/presto-elasticsearch/src/main/java/io/prestoSQL/elasticsearch/elasticsearch/src/main/java/io/prestoSQL/elasticsearch/elasticsearchsourceprovider.java https://github.com/presto/blob/master/presto-elasticsearch/src/main/java/prestoSQL/elasticsearch/elasticsearchsource.java
以下是它处理行类型的方式:
https://github.com/prestoSQL/presto/blob/master/presto-elasticsearch/src/main/java/io/prestoSQL/elasticsearch/decoders/rowdecoder.java
此外,我建议您加入Presto社区Slack上的#dev
频道,所有Presto开发人员都在这里活动。
问题内容: 我想知道AWS Athena中是否支持OFFSET。对于mysql,以下查询正在运行,但在雅典娜中却给了我错误。任何示例都将有所帮助。 从雇员中选择* empSal> 3000 LIMIT 300 OFFSET 20 问题答案: 雅典娜基本上是由Presto管理的。从Presto311开始,您可以使用语法或等效的ANSI SQL :。 您可以在超越极限中阅读更多内容,Presto满足O
谁能解释一下我如何用presto编写这个查询?我发现另一篇文章似乎暗示它的工作正确,所以我有点困惑。
是否有任何选项可以在Presto cli上提供参数。
Presto是一个由Opera Software开发的浏览器排版引擎(非开源),供Opera 7.0~10.00版使用。 Presto取代了旧版Opera 4至6版本使用的Elektra排版引擎,包括加入动态功能,例如网页或其部分可随着DOM及Script语法的事件而重新排版。 Presto在推出后不断有更新版本推出,使不少错误得以修正,以及阅读Javascript效能得以最佳化。
Presto Ethereum Connector Unleash the Power of Presto Interactive SQL Querying on Ethereum Blockchain Introduction Presto is a powerful interactive querying engine that enables running SQL queries on
我们注意到在我们的presto集群(安装在Linux机器上的presto)中有以下奇怪的行为 我们有9台presto workers机器, 从presto仪表板中,我们可以看到,有时有活动的工作者,有时所有presto工作者- 从presto workers的日志中我看不出有什么不寻常的地方 我不确定我们是否需要搜索任何网络问题或其他问题? 注意:当我重新启动所有的presto workers时,