在 CLI 上快速创建视图给出连接器不支持创建视图错误
presto create view on CLI gives connector does not support create view error
- presto 服务器以 [=115=] 和 myql 目录启动。
- 从 presto cli,我可以查询两个来源的表。
- 我什至可以发出结合来自两个来源的数据的查询。
- 在Mongo中是mongodb.test.actors,它有姓名、城市、出生日期字段。
- 在MySql中是mysql.imdb_full.actors有名字,性别字段。
问题是当我尝试直接从 presto cli 发出创建视图而没有 运行 和 'use .schema' 时,如下所示,我得到一个异常 Schema must be specified when会话架构未设置如下
presto> create view xyz_view as select name,city,dob from mongodb.test.actors;
查询 20210303_063035_00046_ecshq 失败:第 1:1 行:未设置会话架构时必须指定架构
com.facebook.presto.sql.analyzer.SemanticException: 行 1:1: 未设置会话架构时必须指定架构
在 com.facebook.presto.metadata.MetadataUtil.lambda$createQualifiedObjectName$2(MetadataUtil.java:148)
在 java.util.Optional.orElseThrow(Optional.java:290)
在 com.facebook.presto.metadata.MetadataUtil.createQualifiedObjectName(MetadataUtil.java:147)
在 com.facebook.presto.execution.CreateViewTask.execute(CreateViewTask.java:82)
在 com.facebook.presto.execution.CreateViewTask.execute(CreateViewTask.java:49)
在 com.facebook.presto.execution.DataDefinitionExecution.start(DataDefinitionExecution.java:187)
在 com.facebook.presto.$gen.Presto_0_247_a896816____20210303_053748_1.run(未知来源)
在 com.facebook.presto.execution.SqlQueryManager.createQuery(SqlQueryManager.java:254)
在 com.facebook.presto.dispatcher.LocalDispatchQuery.lambda$startExecution$5(LocalDispatchQuery.java:114)
在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
在 java.lang.Thread.run(Thread.java:748)
当我切换到 'use mongodb.test' 并发出如下创建视图时,我得到此连接器不支持如下创建视图。
presto:test> create view xyz_view as select name,city,dob from mongodb.test.actors;
查询 20210303_062603_00045_ecshq 失败:此连接器不支持创建视图
com.facebook.presto.spi.PrestoException: 此连接器不支持创建视图
在 com.facebook.presto.spi.connector.ConnectorMetadata.createView(ConnectorMetadata.java:528)
在 com.facebook.presto.metadata.MetadataManager.createView(MetadataManager.java:1030)
在 com.facebook.presto.execution.CreateViewTask.execute(CreateViewTask.java:108)
在 com.facebook.presto.execution.CreateViewTask.execute(CreateViewTask.java:49)
在 com.facebook.presto.execution.DataDefinitionExecution.start(DataDefinitionExecution.java:187)
在 com.facebook.presto.$gen.Presto_0_247_a896816____20210303_053748_1.run(未知来源)
在 com.facebook.presto.execution.SqlQueryManager.createQuery(SqlQueryManager.java:254)
在 com.facebook.presto.dispatcher.LocalDispatchQuery.lambda$startExecution$5(LocalDispatchQuery.java:114)
在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
在 java.lang.Thread.run(Thread.java:748)
我检查过 ConnectorMetadata.java createView() 除了抛出这个异常没有任何代码。
当我将模式切换到 mysql.imdb_full 时出现同样的错误,说连接器不支持创建视图。
但是 mysql 连接器文档没有将创建视图显示为限制。
请帮忙。
仅 Hive 连接器支持视图创建。
特别是 JDBC 连接器不支持它,例如 MySQL。
But mysql connector documentation does not show create view as a limitation.
- presto 服务器以 [=115=] 和 myql 目录启动。
- 从 presto cli,我可以查询两个来源的表。
- 我什至可以发出结合来自两个来源的数据的查询。
- 在Mongo中是mongodb.test.actors,它有姓名、城市、出生日期字段。
- 在MySql中是mysql.imdb_full.actors有名字,性别字段。
问题是当我尝试直接从 presto cli 发出创建视图而没有 运行 和 'use .schema' 时,如下所示,我得到一个异常 Schema must be specified when会话架构未设置如下
presto> create view xyz_view as select name,city,dob from mongodb.test.actors; 查询 20210303_063035_00046_ecshq 失败:第 1:1 行:未设置会话架构时必须指定架构 com.facebook.presto.sql.analyzer.SemanticException: 行 1:1: 未设置会话架构时必须指定架构 在 com.facebook.presto.metadata.MetadataUtil.lambda$createQualifiedObjectName$2(MetadataUtil.java:148) 在 java.util.Optional.orElseThrow(Optional.java:290) 在 com.facebook.presto.metadata.MetadataUtil.createQualifiedObjectName(MetadataUtil.java:147) 在 com.facebook.presto.execution.CreateViewTask.execute(CreateViewTask.java:82) 在 com.facebook.presto.execution.CreateViewTask.execute(CreateViewTask.java:49) 在 com.facebook.presto.execution.DataDefinitionExecution.start(DataDefinitionExecution.java:187) 在 com.facebook.presto.$gen.Presto_0_247_a896816____20210303_053748_1.run(未知来源) 在 com.facebook.presto.execution.SqlQueryManager.createQuery(SqlQueryManager.java:254) 在 com.facebook.presto.dispatcher.LocalDispatchQuery.lambda$startExecution$5(LocalDispatchQuery.java:114) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)
当我切换到 'use mongodb.test' 并发出如下创建视图时,我得到此连接器不支持如下创建视图。
presto:test> create view xyz_view as select name,city,dob from mongodb.test.actors; 查询 20210303_062603_00045_ecshq 失败:此连接器不支持创建视图 com.facebook.presto.spi.PrestoException: 此连接器不支持创建视图 在 com.facebook.presto.spi.connector.ConnectorMetadata.createView(ConnectorMetadata.java:528) 在 com.facebook.presto.metadata.MetadataManager.createView(MetadataManager.java:1030) 在 com.facebook.presto.execution.CreateViewTask.execute(CreateViewTask.java:108) 在 com.facebook.presto.execution.CreateViewTask.execute(CreateViewTask.java:49) 在 com.facebook.presto.execution.DataDefinitionExecution.start(DataDefinitionExecution.java:187) 在 com.facebook.presto.$gen.Presto_0_247_a896816____20210303_053748_1.run(未知来源) 在 com.facebook.presto.execution.SqlQueryManager.createQuery(SqlQueryManager.java:254) 在 com.facebook.presto.dispatcher.LocalDispatchQuery.lambda$startExecution$5(LocalDispatchQuery.java:114) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)
我检查过 ConnectorMetadata.java createView() 除了抛出这个异常没有任何代码。
当我将模式切换到 mysql.imdb_full 时出现同样的错误,说连接器不支持创建视图。
但是 mysql 连接器文档没有将创建视图显示为限制。
请帮忙。
仅 Hive 连接器支持视图创建。
特别是 JDBC 连接器不支持它,例如 MySQL。
But mysql connector documentation does not show create view as a limitation.