Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add influxdb3_client #24662

Closed
wants to merge 4 commits into from
Closed

Conversation

hiltontj
Copy link
Contributor

A new crate, influxdb3_client, was added, which provides the Client struct to give programmatic access to the influxdb3 HTTP API.

Closes #24661

Description

WIP

@hiltontj hiltontj self-assigned this Feb 12, 2024
A new crate, influxdb3_client, was added, which provides the Client
struct. This gives programmatic access to the infludxb3 HTTP API.

This commit implements a partial version of the api_v3_write_lp method
along with a test for ensuring the happy path. The underlying API is
not yet complete, so the response handling is still a TODO.
@hiltontj hiltontj force-pushed the hiltontj/24661-influxdb3-client branch from 5ede4d5 to e8e1f23 Compare February 12, 2024 15:16
mgattozzi and others added 3 commits February 12, 2024 15:31
Prior to this change we've had CI fail nightly because we can't push the
image to CI due to permissions issues. The problem is that
influxdata/influxdb_iox is the one that actually has access to push that
data to quay.

This commit removes the nightly build and references to it as this image
is built nightly by the IOx team. If things break we have access to fix
it, but I don't think it'll be an issue.
This commit adds the ability to choose the output format of a query via
the v3 api so that a user can choose, whether by Accept headers or the
format url param, how the data will be returned to them.

Prior to this commit the default was a pretty printed text format, but
that instead has been changed to json as the default.

There are multiple formats one can choose:

1. json
2. csv
3. pretty printed text
4. parquet

I've tested each of these out and it works well. In particular the
parquet output is exciting as users will be able to perform a query and
receive back parquet data that they can then load into say a Python
script or something else to work on and operate it. As we extend what
data can be queried, as well as persisting it, what people will be able
to do with Edge will be really cool and I'm interested to see how users
will end up using this functionality in the future.
* refactor: move write buffer into its own dir

* feat: implement write buffer segment with wal flushing

This creates the WriteBufferFlusher and OpenBufferSegment. If a wal is passed into the buffer, data written into it will be persisted to the wal for the initialized segment id.

* refactor: use crossbeam in flusher and pr cleanup
@hiltontj
Copy link
Contributor Author

Closing after making a mess of the git commit history, see #24665

@hiltontj hiltontj closed this Feb 12, 2024
@hiltontj hiltontj deleted the hiltontj/24661-influxdb3-client branch February 12, 2024 22:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Create influxdb3_client for programmatic access to HTTP API
3 participants