githubEdit

nodeNode.js SDK

The Node.js SDK spice.jsarrow-up-right is the easiest way to use and query spiceuseai.usarrow-up-right with Node.js.

It uses Apache Apache Flightarrow-up-right to efficiently stream data to the client and Apache Arrowarrow-up-right Records as data frames which are then easily converted to JavaScript objects/arrays or JSON.

Requirements

Installation

npm install @spiceai/spice@latest --save

Usage

Import SpiceClient and instantiate a new instance with an API Key.

You can then submit queries using the query function.

import { SpiceClient } from "@spiceai/spice";

const spiceClient = new SpiceClient("API_KEY");
const table = await spiceClient.sql(
  'SHOW TABLES;'
);
console.table(table.toArray());

SpiceClient has the following arguments:

  • apiKey (string, required): API key to authenticate with the endpoint.

  • url (string, optional): URL of the endpoint to use (default: flight.spiceai.io:443)

sqlJson(query: string) - Execute SQL queries with JSON results

The sqlJson() method executes SQL queries and returns results in a JSON format with schema information.

The response includes:

  • row_count: Number of rows returned

  • schema: Schema information with field names and types

  • data: Array of row objects

  • execution_time_ms: Query execution time in milliseconds

Usage with local Spice runtime

Follow the quickstart guidearrow-up-right to install and run spice locally.

Check Spice OSS documentationarrow-up-right to learn more.

Connection retry

From version 1.0.1arrow-up-right the SpiceClient implements connection retry mechanism (3 attempts by default). The number of attempts can be configured via setMaxRetries:

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).

Contributing

Contribute to or file an issue with the spice.js library at: https://github.com/spiceai/spice.jsarrow-up-right.

Last updated

Was this helpful?