By the way, welcome to contribute left, right, inner join to IoTDB if you
like ~ :D

-----------------------------------
Xiangdong Huang
School of Software, Tsinghua University

 黄向东
清华大学 软件学院


Xiangdong Huang <saint...@gmail.com> 于2021年3月8日周一 下午8:09写道:

> Hi, yes, root is like "/" in Unix-like OS.
>
> -----------------------------------
> Xiangdong Huang
> School of Software, Tsinghua University
>
>  黄向东
> 清华大学 软件学院
>
>
> Dhruv Garg <dgar...@gmail.com> 于2021年3月8日周一 下午6:14写道:
>
>> Hello Xiangdong,
>>
>> Thanks for confirming! One last question for now, all storage groups must
>> start with "root" right? I cannot have storage groups like root1.demo,
>> correct?
>>
>> Regards,
>> dgargcs
>>
>> On Mon, 8 Mar 2021 at 15:37, Xiangdong Huang <saint...@gmail.com> wrote:
>>
>> > Hi Dhruv,
>> >
>> > Yes you are right.  and IoTDB also supports join on timestamp across
>> > storage groups.
>> >
>> > Q2: IoTDB does not support that now.
>> > Current join looks like outer-join in RDBMS.
>> > Supporting left join, right join and inner-join is not hard to
>> implement,
>> > just omit the rows that contain NULL.
>> > (Better implementation will need CBO cost-based optimization, but IoTDB
>> > lacks the statistics info for that.)
>> >
>> > Best,
>> > -----------------------------------
>> > Xiangdong Huang
>> > School of Software, Tsinghua University
>> >
>> >  黄向东
>> > 清华大学 软件学院
>> >
>> >
>> > Dhruv Garg <dgar...@gmail.com> 于2021年3月8日周一 下午5:56写道:
>> >
>> > > Hello Xiangdong,
>> > >
>> > > Yes. Let me elaborate a bit about the join requirement. Suppose I
>> want to
>> > > do a join to print out values in root.demo.d1.m1 and root.demo.d2.m2
>> for
>> > a
>> > > common time range say 2019-12-11 00:00:00 to 2020-12-18 23:59:59. It
>> > should
>> > > print out the last two rows from your table.
>> > >
>> > > In SQL, when we do a join, there are two different tables and then we
>> do
>> > a
>> > > join based on some common column => root.demo.d1 is one table (has an
>> > "m1"
>> > > column) and another table root.demo.d2 (has an "m2" column). If I do a
>> > join
>> > > on d1 and d2 based on timestamp, it will return some rows containing
>> m1
>> > and
>> > > m2 where timestamps are the same.
>> > >
>> > > I think the way to look at join queries in IoTDB is slightly
>> different.
>> > > Here, we have a storage group (root.demo) with different time-series
>> > (d1.m1
>> > > and d2.m2). For each insert in a storage group, I think IoTDB
>> > automatically
>> > > joins these time-series on timestamp since it assumes null values for
>> > other
>> > > time-series that were not given a value during insert.  For example,
>> if I
>> > > do an "insert root.demo.d2(timestamp,m2) values (2021-08-03T00:00:00,
>> > > 2021)", it will also append NULL value for root.demo.d1.m1 for this
>> > > timestamp.
>> > >
>> > > Thus, to do a join within a storage group for *any number* of
>> time-series
>> > > is straightforward. I think this is trivially done by just giving the
>> > time
>> > > range and time-series names => "select d1.m1, d2.m2 from root.demo
>> where
>> > > timestamp >= 2019-19-11T00:00:00".
>> > >
>> > > Next, I thought about a similar query across storage groups, say
>> > root.demo1
>> > > and root.demo2. Here as well, I can run a similar query, but only
>> start
>> > > from a higher level in the storage hierarchy, i.e. "root" alone.
>> "select
>> > > demo1.m1, demo2.m2 from root where timestamp >= 2019-19-11T00:00:00".
>> > >
>> > > Q1. Is my interpretation of join on timestamp correct for IoTDB?
>> > >
>> > > Q2. Is there a way to omit rows that return one or more null column
>> > values
>> > > in the result?
>> > >
>> > > PS: Sorry for the long email. I am exploring IoTDB for a research
>> project
>> > > and just want to be clear in my understanding.
>> > >
>> > > Thanks in advance!
>> > >
>> > > Regards,
>> > > dgargcs
>> > >
>> > > On Mon, 8 Mar 2021 at 14:12, Xiangdong Huang <saint...@gmail.com>
>> wrote:
>> > >
>> > > > Hi Dhruv,
>> > > >
>> > > > 1. Could you give me an example to describe what you want to query?
>> > > > e.g., there are two time series:
>> > > >
>> > > > +-----------------------------+---------------+---------------+
>> > > > |                         Time|root.demo.d1.m1|root.demo.d2.m2|
>> > > > +-----------------------------+---------------+---------------+
>> > > > |1970-01-01T08:00:00.001+08:00|            1.0|            2.0|
>> > > > |2019-12-11T10:00:00.000+08:00|            1.0|            NULL|
>> > > > |2020-12-18T11:45:14.519+08:00|            2.0|            2.0|
>> > > > +-----------------------------+---------------+---------------+
>> > > >
>> > > > or,
>> > > >
>> > > > What you want to query? (you can consider it as a table in MySQL,
>> and
>> > > just
>> > > > write the sqls you need in mysql.)
>> > > >
>> > > > 2. Ah, we are testing the performance of v0.12. maybe 2-3 weeks, I
>> > think.
>> > > >
>> > > > Best,
>> > > > -----------------------------------
>> > > > Xiangdong Huang
>> > > > School of Software, Tsinghua University
>> > > >
>> > > >  黄向东
>> > > > 清华大学 软件学院
>> > > >
>> > > >
>> > > > Dhruv Garg <dgar...@gmail.com> 于2021年3月8日周一 下午4:11写道:
>> > > >
>> > > > > Hello Xiangdong,
>> > > > >
>> > > > > Thanks for your response.
>> > > > >
>> > > > > 1. I have the same use-case: I want to run a join query on two
>> time
>> > > > > series but I think I am getting the syntax wrong.
>> > > > > I tried a few SQL-like join queries on IoTDB v0.11.2 and got the
>> > > > following
>> > > > > error:  "mismatched input 'JOIN' expecting {<EOF>, WHERE, ORDER,
>> > > SLIMIT,
>> > > > > LIMIT, OFFSET, SOFFSET, FILL, GROUP, DISABLE, ALIGN, ',', '.'}"
>> > > > > Could you please refer me to some documentation or provide a
>> simple
>> > > > example
>> > > > > join query for IoTDB?
>> > > > >
>> > > > > 2. I am also excited to try out the cluster version. Is there an
>> > > > > approximate timeline for v0.12 rollout?
>> > > > >
>> > > > > Thanks in advance.
>> > > > >
>> > > > > Regards,
>> > > > > dgargcs
>> > > > >
>> > > > > On Tue, 2 Mar 2021 at 17:24, Xiangdong Huang <saint...@gmail.com>
>> > > wrote:
>> > > > >
>> > > > > > Hi Dhruv,
>> > > > > >
>> > > > > > Welcome!
>> > > > > >
>> > > > > > 1. "join" for what requirements?
>> > > > > >
>> > > > > > IoTDB supports JOIN two time series ON their timestamp, i.e.,
>> time
>> > > > series
>> > > > > > alignment.
>> > > > > >
>> > > > > > 2. I think the cluster version is coming... In the coming
>> v0.12, I
>> > > > think
>> > > > > a
>> > > > > > cluster version (that does
>> > > > > > not support dynamically scale-out) will be released, and the
>> > > scale-out
>> > > > > > feature may be released in v0.13 or 0.14.
>> > > > > >
>> > > > > > Best,
>> > > > > > -----------------------------------
>> > > > > > Xiangdong Huang
>> > > > > > School of Software, Tsinghua University
>> > > > > >
>> > > > > > Dhruv Garg <dgar...@gmail.com> 于2021年3月2日周二 下午3:54写道:
>> > > > > >
>> > > > > > > Hello,
>> > > > > > >
>> > > > > > > I am a researcher and a new user of IoTDB. I was excited when
>> I
>> > saw
>> > > > the
>> > > > > > > performance numbers of IoTDB compared to InfluxDB, and I have
>> set
>> > > it
>> > > > up
>> > > > > > on
>> > > > > > > a few workstations and a Raspberry Pi device.
>> > > > > > >
>> > > > > > > I am becoming familiar with it and have a few queries:
>> > > > > > >
>> > > > > > >    1. Does IoTDB support Join queries? - I tried looking up
>> some
>> > > > > > >    documentation on it, but could not find any. If the
>> feature is
>> > > > > > > available,
>> > > > > > >    could you please provide a sample query or the predicates
>> for
>> > > join
>> > > > > > > queries?
>> > > > > > >    2. I also browsed through the IoTDB Jira issues page. I saw
>> > that
>> > > > the
>> > > > > > >    distributed / cluster version is being developed.
>> > Approximately
>> > > > how
>> > > > > > much
>> > > > > > >    time would it take to get a stable / working version of the
>> > > > cluster
>> > > > > > > IoTDB?
>> > > > > > >
>> > > > > > > It would be great if someone can respond to my queries. I
>> would
>> > be
>> > > > > > > waiting for a reply. Thanks in advance.
>> > > > > > >
>> > > > > > > Regards,
>> > > > > > > dgargcs
>> > > > > > >
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>

Reply via email to