influxdb/influxdb_iox_client
Andrew Lamb 5c69a3f43b
chore: Update deps: datafusion, arrow/arrow-flight/parquet to 11, zstd to 0.11 (#4119)
* chore: update datafusion

* chore(deps): Bump arrow from 10.0.0 to 11.0.0

Bumps [arrow](https://github.com/apache/arrow-rs) from 10.0.0 to 11.0.0.
- [Release notes](https://github.com/apache/arrow-rs/releases)
- [Changelog](https://github.com/apache/arrow-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apache/arrow-rs/compare/10.0.0...11.0.0)

---
updated-dependencies:
- dependency-name: arrow
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): Bump arrow-flight from 10.0.0 to 11.0.0

Bumps [arrow-flight](https://github.com/apache/arrow-rs) from 10.0.0 to 11.0.0.
- [Release notes](https://github.com/apache/arrow-rs/releases)
- [Changelog](https://github.com/apache/arrow-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apache/arrow-rs/compare/10.0.0...11.0.0)

---
updated-dependencies:
- dependency-name: arrow-flight
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: update parquet to 11.0.0

* fix: error on create schema, test for same

* fix: upgrade zstd

* chore: Run cargo hakari tasks

* fix: fix logical merge conflict

* fix: hakari

* fix: hakari

* fix: update newly introduced dep

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: CircleCI[bot] <circleci@influxdata.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-03-24 15:27:36 +00:00
..
src feat: schema client and CLI (#4105) 2022-03-23 13:49:24 +00:00
Cargo.toml chore: Update deps: datafusion, arrow/arrow-flight/parquet to 11, zstd to 0.11 (#4119) 2022-03-24 15:27:36 +00:00
README.md chore: remove unused code 2021-04-08 10:02:28 -04:00

README.md

InfluxDB IOx Client

This is the official Rust client library for connecting to InfluxDB IOx.

Using the HTTP API

If you only want to use the HTTP API, create an influxdb_iox_client::Client. Here is an example of creating an instance that connects to an IOx server running at http://127.0.0.1:8080 and creating a database named telemetry:

#[tokio::main]
fn main() {
    use data_types::database_rules::DatabaseRules;
    use influxdb_iox_client::ClientBuilder;

    let client = ClientBuilder::default()
        .build("http://127.0.0.1:8080")
        .expect("client should be valid");

    client
        .create_database("telemetry", &DatabaseRules::default())
        .await
        .expect("failed to create database");
}

Using the Arrow Flight API

IOx supports an Arrow Flight gRPC API. To use it, enable the flight feature, which is off by default:

[dependencies]
influxdb_iox_client = { version = "[..]", features = ["flight"] }

Then you can create an influxdb_iox_client::FlightClient by using the FlightClientBuilder. Here is an example of creating an instance that connects to an IOx server with its gRPC services available at http://localhost:8082 and using it to perform a query:

#[tokio::main]
fn main() {
    use data_types::database_rules::DatabaseRules;
    use influxdb_iox_client::FlightClientBuilder;

    let client = FlightClientBuilder::default()
        .build("http://127.0.0.1:8082")
        .expect("client should be valid");

    let mut query_results = client
        .perform_query(scenario.database_name(), sql_query)
        .await;

    let mut batches = vec![];

    while let Some(data) = query_results.next().await {
        batches.push(data);
    }
}