influxdata / influxdata/influxdb
Supports executing Insert SQL to InfluxDB 3 Core via Arrow Flight API
- Dominant language
- Rust
- Stars
- 31.7k
- Forks
- 3.7k
- Avg merge
- 13h 37m
- Merged PRs (30d)
- 8
Description
__Use case:__
Why is this important (helps with prioritizing requests)?
- Currently, the documentation of InfluxDB 3 Core only records that data can be inserted into InfluxDB 3 Core through influxdb3 CLI and InfluxDB client at https://docs.influxdata.com/influxdb3/core/write-data/. And https://github.com/InfluxCommunity/influxdb3-java performs insertion operations through the RESTful API `/api/v2/write` mentioned at https://docs.influxdata.com/influxdb3/core/#write-data .
- 
- Most tools are happy to query InfluxDB 3 Core via the Arrow Flight JDBC Driver, as a JDBC Driver is easily incorporated into the use case of DBeaver or Flink Plugin. However, unit tests like https://github.com/linghengqian/influxdb-3-core-jdbc-test/blob/master/src/test/java/io/github/linghengqian/FlightSqlDriverTest.java show that it is not possible to perform `insert` operations to InfluxDB 3 Core through the Arrow Flight JDBC Driver `org.apache.arrow:flight-sql-jdbc-driver`, which requires a separate Maven dependency of `com.influxdb:influxdb3-java`.
- If InfluxDB 3 Core can support avoiding the use of HTTP API, that is, directly executing statements like `INSERT INTO mydb.myrp example-m,tag1=value1 field1=1i 16409952000000000000` mentioned in https://docs.influxdata.com/influxdb/v2/query-data/influxql/manage-data/#write-data-with-insert on Arrow Flight JDBC Driver, it will obviously help the integration of third-party tools.
- 
__Proposal:__
Short summary of the feature.
- Supports executing Insert SQL to InfluxDB 3 Core through Arrow Flight API.
__Current behaviour:__
Describe what currently happens.
- Currently, it is not supported to execute Insert SQL to InfluxDB 3 Core through Arrow Flight API.
__Desired behaviour:__
Describe what you want.
- Supports executing Insert SQL to InfluxDB 3 Core through Arrow Flight API.
__Alternatives considered:__
Describe other solutions or features you considered.
- PRs like https://github.com/apache/arrow/pull/36409 suggest Arrow Flight API allows this, but I don't know how complex this is for InfluxDB 3 Core.
Contributor guide
Research direction
Read the repository's README contributing section first, then review the referenced Apache Arrow Flight API proposal and FlightSqlDriverTest.java example. Determine where InfluxDB 3 Core handles Flight SQL statements and how INSERT support would be validated. Done means INSERT SQL executes successfully through the Arrow Flight API without requiring the separate REST client.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- sql
- Domain
- api, databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100