calcite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Γιώργος Θεοδωράκης <giwrgosrth...@gmail.com>
Subject Re: Simple Streaming Senario
Date Tue, 06 Sep 2016 18:15:51 GMT
I've tried with avatica, avatica-metrics, standalone-server and server, all
in version 1.8.0 jars from maven repository as dependencies(at first only
with avatica and avatica-metrics and then with other combinations) and
1.9.0-SNAPSHOT versions of calcite core and csv with their sources. At
first I got an eigenbase-properties NoClass Exception, so I added version
1.1.5 from maven repositories. Then, I got java.lang.NoClassDefFoundError:
org/codehaus/commons/compiler/CompileException , and I am stuck with these
exception after many combinations and tries.

2016-09-06 18:46 GMT+03:00 Julian Hyde <jhyde.apache@gmail.com>:

> That still sounds like a version mismatch. Note that avatica releases are
> separate from calcite these days. Therefore calcite-core-1.9.0-SNAPSHOT,
> for instance, depends upon avatica-metrics-1.8.0.
>
> I think you should use 1.9.0-SNAPSHOT versions of calcite- jars, and 1.8.0
> versions of avatica- jars.
>
> Julian
>
>
> > On Sep 6, 2016, at 7:45 AM, Γιώργος Θεοδωράκης <giwrgosrtheod@gmail.com>
> wrote:
> >
> > I have imported as external jars calcite-example-csv, calcite-core,
> avatica
> > , linq4j, avatica-metrics, avatica-standalone with all their sources and
> > tests, and I get: Exception in thread "main"
> java.lang.AbstractMethodError:
> > org.apache.calcite.config.CalciteConnectionProperty.
> valueCla‌​ss()Ljava/lang/Class‌​;
> > at
> > org.apache.calcite.avatica.ConnectionConfigImpl$PropEnv.
> getE‌​num(ConnectionConfig‌​Impl.java:228).
> > Is there something else I am missing.
> >
> > Also, when I ran the streaming test from CsvTest.java and I add a filter
> in
> > the query, I get an error. Is filter implemented for streaming query by
> > defining the query with a string, or should I define with another way?
> >
> >
> > 2016-09-05 21:03 GMT+03:00 Julian Hyde <jhyde@apache.org>:
> >
> >> You have mismatched versions. CANCEL_FLAG will be added to calcite-core
> >> only in version 1.9. So, if you are using 1.9.0-SNAPSHOT version of
> >> example/csv you should use a 1.9.0-SNAPSHOT version of other Calcite
> jars.
> >> (You can build and install in your local repo using ‘mvn install’.)
> >>
> >> 1.9 should be released in a couple of weeks.
> >>
> >> Julian
> >>
> >>> On Sep 5, 2016, at 3:04 AM, Γιώργος Θεοδωράκης <
> giwrgosrtheod@gmail.com>
> >> wrote:
> >>>
> >>> It has to do with the dependencies. When I am running the sample code
> >> with
> >>> changes as Test in
> >>> ../calcite-master/example/csv/src/test/java/org/apache/calcite/test/ I
> >> have
> >>> no errors. However, when I try to create my own project in Eclipse and
> >>> after I  have imported everything with maven repositories (from calcite
> >> 1.8
> >>> version and as external .jar the calcite-example-csv-1.9.0-
> SNAPSHOT.jar
> >>> from the github version) the same error occurs :
> >>>
> >>> Exception in thread "main" java.lang.NoSuchFieldError: CANCEL_FLAG
> >>> at
> >>> org.apache.calcite.adapter.csv.CsvScannableTable.scan(
> >> CsvScannableTable.java:48)
> >>> at
> >>> org.apache.calcite.interpreter.TableScanNode.
> >> createScannable(TableScanNode.java:117)
> >>> at
> >>> org.apache.calcite.interpreter.TableScanNode.
> >> create(TableScanNode.java:94)
> >>> at org.apache.calcite.interpreter.Nodes$CoreCompiler.visit(Nodes.java:
> >> 68)
> >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>> at
> >>> sun.reflect.NativeMethodAccessorImpl.invoke(
> >> NativeMethodAccessorImpl.java:57)
> >>> at
> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(
> >> DelegatingMethodAccessorImpl.java:43)
> >>> at java.lang.reflect.Method.invoke(Method.java:606)
> >>> at
> >>> org.apache.calcite.util.ReflectUtil.invokeVisitorInternal(
> >> ReflectUtil.java:257)
> >>> at org.apache.calcite.util.ReflectUtil.invokeVisitor(
> >> ReflectUtil.java:214)
> >>> at org.apache.calcite.util.ReflectUtil$1.invokeVisitor(
> >> ReflectUtil.java:471)
> >>> at
> >>> org.apache.calcite.interpreter.Interpreter$Compiler.visit(Interpreter.
> >> java:476)
> >>> at
> >>> org.apache.calcite.interpreter.Interpreter$Compiler.visitRoot(
> >> Interpreter.java:433)
> >>> at org.apache.calcite.interpreter.Interpreter.<init>
> >> (Interpreter.java:75)
> >>> at Baz.bind(Unknown Source)
> >>> at
> >>> org.apache.calcite.jdbc.CalcitePrepare$CalciteSignature.enumerable(
> >> CalcitePrepare.java:327)
> >>> at
> >>> org.apache.calcite.jdbc.CalciteConnectionImpl.enumerable(
> >> CalciteConnectionImpl.java:282)
> >>> at
> >>> org.apache.calcite.jdbc.CalciteMetaImpl._createIterable(
> >> CalciteMetaImpl.java:553)
> >>> at
> >>> org.apache.calcite.jdbc.CalciteMetaImpl.createIterable(
> >> CalciteMetaImpl.java:544)
> >>> at
> >>> org.apache.calcite.avatica.AvaticaResultSet.execute(
> >> AvaticaResultSet.java:187)
> >>> at
> >>> org.apache.calcite.jdbc.CalciteResultSet.execute(
> >> CalciteResultSet.java:65)
> >>> at
> >>> org.apache.calcite.jdbc.CalciteResultSet.execute(
> >> CalciteResultSet.java:44)
> >>> at
> >>> org.apache.calcite.avatica.AvaticaConnection$1.execute(
> >> AvaticaConnection.java:605)
> >>> at
> >>> org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(
> >> CalciteMetaImpl.java:599)
> >>> at
> >>> org.apache.calcite.avatica.AvaticaConnection.
> prepareAndExecuteInternal(
> >> AvaticaConnection.java:613)
> >>> at
> >>> org.apache.calcite.avatica.AvaticaStatement.executeInternal(
> >> AvaticaStatement.java:139)
> >>> at
> >>> org.apache.calcite.avatica.AvaticaStatement.executeQuery(
> >> AvaticaStatement.java:208)
> >>> at stream_test.CsvTest.checkSql(CsvTest.java:122)
> >>> at stream_test.CsvTest.checkSql(CsvTest.java:76)
> >>> at stream_test.TestQuery.main(TestQuery.java:13)
> >>>
> >>> Is there anything else I have to import or have I done something wrong?
> >>>
> >>> 2016-09-05 1:11 GMT+03:00 Julian Hyde <jhyde.apache@gmail.com>:
> >>>
> >>>> It might be case-sensitivity. Try double-quoting the column names in
> >> your
> >>>> query.
> >>>>
> >>>> Julian
> >>>>
> >>>>> On Sep 4, 2016, at 09:43, Γιώργος Θεοδωράκης <
> giwrgosrtheod@gmail.com>
> >>>> wrote:
> >>>>>
> >>>>> I have correctly used sqlline to run queries on a streaming table,
> but
> >>>> now
> >>>>> I face problems trying to implement it programmatically with java.
I
> >> have
> >>>>> made an attempt, but haven't got it running yet (
> >>>>> http://stackoverflow.com/questions/39318653/create-a-
> >>>> streaming-example-with-calcite-using-csv
> >>>>> ).
> >>>>> Can somebody help me by giving a template or finding what's wrong
> with
> >> my
> >>>>> code?
> >>>>>
> >>>>> Thank you in advance,
> >>>>> George
> >>>>>
> >>>>> 2016-09-03 18:14 GMT+03:00 Γιώργος Θεοδωράκης <
> giwrgosrtheod@gmail.com
> >>> :
> >>>>>
> >>>>>> When I tried a query like SELECT STREAM ss.depts.deptno FROM
> ss.depts
> >>>>>> WHERE ss.depts.deptno < 30; it gave me a correct answer on
the
> >>>> SDEPTS.cvs
> >>>>>> in sales folder with both my json and model-stream-table.json.
I
> only
> >>>> had
> >>>>>> to declare better where to find the tables and the columns,
because
> >> with
> >>>>>> only the name it wouldn't run. I still haven't fixed my sOrders.csv
> >> yet,
> >>>>>> but I suppose it has to do with how I have created.
> >>>>>>
> >>>>>> 2016-09-03 15:39 GMT+03:00 Γιώργος Θεοδωράκης
<
> >> giwrgosrtheod@gmail.com
> >>>>> :
> >>>>>>
> >>>>>>> I am trying to create a simple streaming query ( like SELECT
> STREAM *
> >>>>>>> FROM ORDERS WHERE units > 10). I have created a stream
using a
> socket
> >>>> that
> >>>>>>> saves the orders in an sOrders.csv file and I have changed
the
> >>>>>>> model-stream-table.json like this:
> >>>>>>> {
> >>>>>>> version: '1.0',
> >>>>>>> defaultSchema: 'CUSTOM_TABLE',
> >>>>>>> schemas: [
> >>>>>>>  {
> >>>>>>>    name: 'CUSTOM_TABLE',
> >>>>>>>    tables: [
> >>>>>>>      {
> >>>>>>>        name: 'ORDERS',
> >>>>>>>        type: 'custom',
> >>>>>>>        factory: 'org.apache.calcite.adapter.cs
> >>>>>>> v.CsvStreamTableFactory',
> >>>>>>>        stream: {
> >>>>>>>          stream: true
> >>>>>>>        },
> >>>>>>>        operand: {
> >>>>>>>          file: '/home/hduser/Desktop/sOrders.csv',
> >>>>>>>          flavor: "scannable"
> >>>>>>>        }
> >>>>>>>      }
> >>>>>>>    ]
> >>>>>>>  }
> >>>>>>>
> >>>>>>> , because when I had defaultSchema: 'STREAM' it showed:
Error while
> >>>>>>> executing SQL "SELECT STREAM * FROM orders": From line 1,
column 22
> >> to
> >>>> line
> >>>>>>> 1, column 27: Table 'ORDERS' not found (state=,code=0).
> >>>>>>>
> >>>>>>> Everything is good, until I try to project or filter a column
when
> it
> >>>>>>> shows: Error while executing SQL "SELECT STREAM productId
FROM
> >> orders":
> >>>>>>> From line 1, column 15 to line 1, column 23: Column 'PRODUCTID'
not
> >>>> found
> >>>>>>> in any table (state=,code=0). When I type !columns I get:
> >> CUSTOM_TABLE
> >>>> |
> >>>>>>> ORDERS     | productId   | 4         | JavaType(class...
> >>>>>>>
> >>>>>>> To solve my problem, should I write from the
> >>>>>>> start CsvStreamFilterableTable.java etc. or are these operations
> >>>> already
> >>>>>>> implemented?
> >>>>>>>
> >>>>>>> Thank you in advance,
> >>>>>>> George
> >>>>>>
> >>>>
> >>
> >>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message