influxdb/influxdb_iox_client/README.md

63 lines
1.8 KiB
Markdown
Raw Normal View History

# 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`:
```rust
#[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](https://arrow.apache.org/docs/format/Flight.html). To use
it, enable the `flight` feature, which is off by default:
```toml
[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:
```rust
#[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);
}
}
```