Community Data
The Spice.ai Cloud Platform includes a comprehensive set of free, ready-to-query sample and blockchain datasets.
The Spice runtime can query these datasets using the Spice.ai Data Connector.
Quickstart​
To access these community datasets, navigate to spice.ai, and create a new account by clicking Try for Free.
After logging in, create an app in order to get an API key.
This quickstart will use the eth.recent_blocks
dataset.
Step 1. Initialize a new project:
# Initialize a new Spice app
spice init spice_app
# Change to app directory
cd spice_app
Step 2. Log in to the Spice Cloud Platform from the command line using the spice login
command. A pop up browser window will prompt you to authenticate:
spice login
Logging in will create or update a .env
file in the project directory with the API key.
Step 3. Start the runtime:
# Start the runtime
spice run
Step 4. Configure the dataset:
In a new terminal window, configure a new dataset using the spice dataset configure
command:
spice dataset configure
Enter a dataset name that will be used to reference the dataset in queries. This name does not need to match the name in the dataset source.
dataset name: (spice_app) eth_recent_blocks
Enter the description of the dataset:
description: Recent Ethereum blocks
Enter the location of the dataset:
from: spice.ai/eth.recent_blocks
Select y
when prompted whether to accelerate the data:
Locally accelerate (y/n)? y
You should see the following output from your runtime terminal:
2024-08-05T13:09:08.342450Z INFO runtime: Dataset eth_recent_blocks registered (spice.ai/eth.recent_blocks), acceleration (arrow, 10s refresh), results cache enabled.
2024-08-05T13:09:08.343641Z INFO runtime::accelerated_table::refresh_task: Loading data for dataset eth_recent_blocks
2024-08-05T13:09:09.575822Z INFO runtime::accelerated_table::refresh_task: Loaded 146 rows (6.36 MiB) for dataset eth_recent_blocks in 1s 232ms.
Step 5. In a new terminal window, use the Spice SQL REPL to query the dataset
spice sql
SELECT number, size, gas_used from eth_recent_blocks LIMIT 10;
The output displays the results of the query along with the query execution time:
+----------+--------+----------+
| number | size | gas_used |
+----------+--------+----------+
| 20462425 | 32466 | 6705045 |
| 20462435 | 262114 | 29985196 |
| 20462427 | 138376 | 29989452 |
| 20462444 | 40541 | 9480363 |
| 20462431 | 78505 | 16994166 |
| 20462461 | 110372 | 21987571 |
| 20462441 | 51089 | 11136440 |
| 20462428 | 327660 | 29998593 |
| 20462429 | 133518 | 20159194 |
| 20462422 | 61461 | 13389415 |
+----------+--------+----------+
Time: 0.008562625 seconds. 10 rows.
You can experiment with the time it takes to generate queries when using non-accelerated datasets. You can change the acceleration setting from true
to false
in the datasets.yaml file.
Additional Example​
# Query to display the average gas used in recent Ethereum blocks
SELECT AVG(gas_used) FROM eth_recent_blocks;
The output displays the average gas used:
+------------------+
| avg |
+------------------+
| 15000000.1234567 |
+------------------+
Time: 0.005678123 seconds. 1 row.