Hi Zhu,

Setting it to null shows "database null not found". My schema is missing
jdbcCatalog entry. What value should I put there? I could not find anything
in hive doc: https://cwiki.apache.org/confluence/display/Hive/HiveClient

After playing with it more I've realized that it is able to connect to
Hive, but not query it (sorry for bad title).

When I run the
  select * from "thrift"."test"
query it shows the below error. I put quotes because Calcite is case
sensitive. The error does not mean that table "test" not found in Hive DB,
but that the schema doesn't have the "test" element inside the "thrift"
schema. I think it fails to recognize that what I mean is that I want to
use "thrift" schema to connect to the database "default" and its table
"test". For some reason it thinks that "test" is part of the schema, not
table in the DB.

07:59:31.399 [main] DEBUG
com.huawei.cloudsop.us.queryengine.Controller.QueryController - query:
select * from "thrift"."test"
07:59:32.479 [main] INFO org.apache.hive.jdbc.Utils - Supplied authorities:
127.0.0.1:10000
07:59:32.480 [main] INFO org.apache.hive.jdbc.Utils - Resolved authority:
127.0.0.1:10000
07:59:32.523 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
opening transport org.apache.thrift.transport.TSaslClientTransport@19542407
07:59:32.524 [main] DEBUG org.apache.thrift.transport.TSaslClientTransport
- Sending mechanism name PLAIN and initial response of length 20
07:59:32.526 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: Writing message with status START and payload length 5
07:59:32.526 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: Writing message with status COMPLETE and payload length 20
07:59:32.526 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: Start message handled
07:59:32.526 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: Main negotiation loop complete
07:59:32.526 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: SASL Client receiving last message
07:59:32.526 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: Received message with status COMPLETE and payload length 0
07:59:32.538 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
writing data length: 71
07:59:32.575 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: reading data length: 109
07:59:32.710 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
writing data length: 85
07:59:32.714 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: reading data length: 55
07:59:32.723 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
writing data length: 83
07:59:32.724 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: reading data length: 40
07:59:32.733 [main] INFO org.apache.hive.jdbc.Utils - Supplied authorities:
127.0.0.1:10000
07:59:32.733 [main] INFO org.apache.hive.jdbc.Utils - Resolved authority:
127.0.0.1:10000
07:59:32.734 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
opening transport org.apache.thrift.transport.TSaslClientTransport@49798e84
07:59:32.734 [main] DEBUG org.apache.thrift.transport.TSaslClientTransport
- Sending mechanism name PLAIN and initial response of length 20
07:59:32.734 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: Writing message with status START and payload length 5
07:59:32.734 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: Writing message with status COMPLETE and payload length 20
07:59:32.735 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: Start message handled
07:59:32.735 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: Main negotiation loop complete
07:59:32.735 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: SASL Client receiving last message
07:59:32.736 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: Received message with status COMPLETE and payload length 0
07:59:32.736 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
writing data length: 71
07:59:32.776 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: reading data length: 109
07:59:32.776 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
writing data length: 85
07:59:32.777 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: reading data length: 55
07:59:32.779 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
writing data length: 85
07:59:32.780 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: reading data length: 55
07:59:32.780 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
writing data length: 85
07:59:32.781 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: reading data length: 51
07:59:32.781 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
writing data length: 85
07:59:32.781 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: reading data length: 55
07:59:33.119 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
writing data length: 85
07:59:33.123 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: reading data length: 55
07:59:33.127 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
writing data length: 88
07:59:33.137 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: reading data length: 102
07:59:33.153 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
writing data length: 102
07:59:33.155 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: reading data length: 464
07:59:33.178 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
writing data length: 112
07:59:33.181 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: reading data length: 180
07:59:33.204 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
writing data length: 96
07:59:33.207 [main] DEBUG org.apache.thrift.transport.TSaslTransport -
CLIENT: reading data length: 42
java.sql.SQLException: Error while executing SQL "select * from
"thrift"."test"": From line 1, column 15 to line 1, column 29: Object
'test' not found within 'thrift'
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
at
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:163)
at
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227)
at
com.huawei.cloudsop.us.queryengine.Manager.CalciteQueryManager.query(CalciteQueryManager.java:41)
at
com.huawei.cloudsop.us.queryengine.Controller.QueryController.query(QueryController.java:27)
at
com.huawei.cloudsop.us.queryengine.SchemaTest.testThriftScheme(SchemaTest.java:41)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at
com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.apache.calcite.runtime.CalciteContextException: From line 1,
column 15 to line 1, column 29: Object 'test' not found within 'thrift'
at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:463)
at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:787)
at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:772)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:4825)
at
org.apache.calcite.sql.validate.IdentifierNamespace.resolveImpl(IdentifierNamespace.java:166)
at
org.apache.calcite.sql.validate.IdentifierNamespace.validateImpl(IdentifierNamespace.java:177)
at
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:994)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:954)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3087)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3069)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3339)
at
org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:60)
at
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:994)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:954)
at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:216)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:929)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:633)
at
org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:558)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:265)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:231)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:767)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:631)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:601)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:229)
at
org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:550)
at
org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:675)
at
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
... 26 more
Caused by: org.apache.calcite.sql.validate.SqlValidatorException: Object
'test' not found within 'thrift'
at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:463)
at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:572)
... 54 more

Thanks,
Val


On Tue, Jun 18, 2019 at 7:39 PM Zhu Feng <[email protected]> wrote:

> Hi Valeriy,
> I remember that "jdbcCatalog" and "jdbcSchema" should be carefully
> configured for Hive Jdbc.
> Maybe you can try "null" or db name.
>
> best,
> DonnyZone
>
> Valeriy Trofimov <[email protected]> 于2019年6月19日周三 上午8:11写道:
>
> > Hi All,
> >
> > I'm trying to connect to Hive DB via Thrift JDBC Server.
> >
> > I get error: "Object 'test' not found within 'thrift'".
> >
> > The error occurs by the IdentifierNamespace.resolveImpl() method. The
> > method checks that schema looks correct based on my query.
> >
> > Schema:
> >
> > {
> >   version: '1.0',
> >   schemas: [
> >     {
> >       name: 'thrift',
> >       type: 'custom',
> >       factory: 'org.apache.calcite.adapter.jdbc.JdbcSchema$Factory',
> >       operand: {
> >         jdbcDriver: 'org.apache.hive.jdbc.HiveDriver',
> >         jdbcUrl: 'jdbc:hive2://127.0.0.1:10000/default', // please use
> > VirtualBox port forwarding to the VM with Thrift server running
> >         jdbcUser: '',
> >         jdbcPassword: ''
> >       }
> >     }
> >   ]
> > }
> >
> > Test query:
> >
> > String query = "select * from \"thrift\".\"test\"";
> >
> > I've double checked that you can connect to Thrift Server and that there
> is
> > a database called "default" and table called "test".
> >
> > It looks like the error is caused by Calcite trying to find entries for
> > "tables" in the schema. But I am confused why it would look for it. JDBC
> > schema doesnt require these entries and adding them actually shows error
> > about "tables" not needing to be there.
> >
> > Repro steps for this issue are too long, but I can provide if someone is
> > interested in digging deeper into this.
> >
> > Thanks,
> > Val
> >
>

Reply via email to