Spice.ai client library for Node.JS
See full documentation at docs.spice.ai.
npm install @spiceai/spice
or yarn add @spiceai/spice
High-Performance Apache Arrow Flight Query with https://spice.ai cloud
import { SpiceClient } from '@spiceai/spice';
const main = async () => {
const spiceClient = new SpiceClient({
apiKey: 'API_KEY', // spice.ai api key,
httpUrl: 'https://data.spiceai.io',
flightUrl: 'flight.spiceai.io:443'
});
const table = await spiceClient.query(
'SELECT number, "timestamp", gas_used FROM eth.recent_blocks LIMIT 10'
);
console.table(table.toArray());
};
main();
Querying data is done through a SpiceClient
object that initializes the connection with Spice endpoint. SpiceClient
has the following arguments:
apiKey
(string, optional): API key to authenticate with the endpoint.flightUrl
(string, optional): URL of the Flight endpoint to use (default:localhost:50051
)httpUrl
(string, optional): URL of the HTTP endpoint to use (default:http://localhost:8090
)
Read more about the Spice.ai Apache Arrow Flight API at docs.spice.ai.
Usage with locally running spice runtime
Follow the quickstart guide to install and run spice locally
import { SpiceClient } from '@spiceai/spice';
const main = async () => {
// uses connection to local runtime by default
const spiceClient = new SpiceClient();
// or use custom connection params:
// const spiceClient = new SpiceClient({
// httpUrl: 'http://my_spice_http_host',
// flightUrl: 'my_spice_flight_host',
// });
const table = await spiceClient.query(
'SELECT trip_distance, total_amount FROM taxi_trips ORDER BY trip_distance DESC LIMIT 10;'
);
console.table(table.toArray());
};
main();
From version 1.0.1 the SpiceClient
implements connection retry mechanism (3 attempts by default).
The number of attempts can be configured via setMaxRetries
:
const spiceClient = new SpiceClient('API_KEY');
spiceClient.setMaxRetries(5); // Setting to 0 will disable retries
Retries are performed for connection and system internal errors. It is the SDK user's responsibility to properly handle other errors, for example RESOURCE_EXHAUSTED (HTTP 429).
Check out our API documentation to learn more about how to use the Node.js SDK.
Run the tests with make test
. For more information, see CONTRIBUTING.md