Hello Jialin,

Thanks for your response.

1. Alright I will definitely move from insertRecords() to insertTablet()
then. *Can I use the API on v0.11.2 (I am currently using this) or do I
need v0.11.3?*

2. The info you provided on insertTablet() is very helpful. I could start
with that. I think specifying the data types at the top of the file will
also help reduce the data-type inference time for the api and possibly
reduce ingestion time. *Is there any limit to the number of rows that can
be inserted at once using insertTablet()? Or, is there an optimal number of
rows per insertTablet() to get best performance?*

3. Also, I see that there is a new API in v0.12 called
insertRecordsOfOneDevice(). *Since insertTablet() also takes rows for one
device, what exactly is the difference between insertTablet() and
insertRecordsOfOneDevice()? Are they for different use-cases? Which
performs better?*

4. So the Raspberry Pi are low-end devices. They run on lower RAM (2GB),
have ARM processors and use SD cards for persistent storage. *I suppose
IoTDB does not have benchmark numbers for such devices? *

A couple of additional questions:
5. I see that the IoTDB team is nearing release of v0.12. *How soon can we
expect it to come out? Or can I test it out even now since I eventually
plan to start working with it? Is it stable enough?*

6. *What benefits does the new Tsfile structure in v0.12 bring? Does it
improve DB data ingestion/query performance?*

Thanks in advance!

On Thu, 8 Apr 2021 at 17:26, Jialin Qiao <[email protected]> wrote:

> Hi,
>
> 1. InsertTablets could reach more than 3 times faster than insertRecords.
>
> 2. Yes, Tablet is actually a small table with some columns and rows.
> It has a time column and many value columns. In each row, all columns must
> have a value.
>
> An example:
>
> time, root.sg.d1.s1, root.sg.d1.s2
> 1, 1, 2.2
> 2, 1, 2.2
> 3, 1, 2.2
>
> Tablets do not allow to have null values.
>
> However, the tablet uses an array of primitive types to store data in a
> columnar format, e.g., long[], int[], double[].
> If you store data in a text file, the data type indicator is needed, like
> this:
>
> time, root.sg.d1.s1, root.sg.d1.s2
> long, int, double
> 1, 1, 2.2
> 2, 1, 2.2
> 3, 1, 2.2
>
> Then you could generate a tablet from the data and then use the
> insertTablet.
>
> 3. You could check the memory allocated in Raspberry pi. Is it the same as
> on desktop? This may impact the write throughput.
>
> Thanks,
> —————————————————
> Jialin Qiao
> School of Software, Tsinghua University
>
> 乔嘉林
> 清华大学 软件学院
>
>
> Dhruv Garg <[email protected]> 于2021年4月8日周四 下午1:36写道:
>
> > Hello all,
> >
> > In the past month I have been using the JDBC client of IoTDB to write
> data
> > from CSV into IoTDB and also query on the data. Looking at the CSV code
> in
> > ImportCsv.java
> > <
> >
> https://github.com/apache/iotdb/blob/master/cli/src/main/java/org/apache/iotdb/tool/ImportCsv.java
> > >,
> > it seems that csv itself is again parsed into an IoTDB-friendly structure
> > and then ingested. I would like to avoid the csv-parsing time and
> directly
> > provide the data as needed to IoTDB. This should improve the ingestion
> > performance.
> >
> > What I am talking about is similar to InfluxDB where we can also parse
> from
> > CSV to InfluxDB's native line protocol and then ingest the data into DB.
> > However, for better performance, InfluxDB also provides write APIs
> > <
> >
> https://github.com/influxdata/influxdb-client-java/blob/master/client/src/main/java/com/influxdb/client/WriteApi.java
> > >
> > to take records in line protocol as input and directly ingest those.
> >
> > I have three questions:
> >
> >    1. I see that IoTDB is getting newer write APIs like InsertTablets and
> >    it seems that it is designed to be faster than insertRecords.
> > Approximately
> >    how much performance improvement have you seen with InsertTablets?
> >    2. Is there a way to create a data file such that it is easy to use
> >    InsertTablets with it? This is to know if I can create an
> IoTDB-friendly
> >    and IoTDB-specific input file and then directly use InsertTablets to
> > ingest
> >    the data.
> >    3. As a preliminary check, I am also trying out IoTDB on Raspberry Pi
> 4B
> >    devices. However, the ingestion time with CSV on the Raspberry Pi is
> > taking
> >    10 times of what it is on the desktop (amd64). This ratio should have
> >    ideally been closer to 4X, based on other applications that I have
> >    benchmarked. Have you all run any Raspberry Pi benchmarks for IoTDB
> > earlier?
> >
> > I would be awaiting your response. Thanks!
> >
> > Regards,
> > dgargcs
> >
>

Reply via email to