Skip to content

Voyager quickstart

For the complete documentation index see: llms.txt

All documentation pages available in markdown.

This quickstart takes about 5-10 minutes. By the end, you will have connected to a cluster, browsed sample data, built a filter, and copied an expression string you can use in your application code.

1. Start Voyager

Launch Aerospike Voyager from your Applications folder, Start menu, or Linux application launcher. On first launch, accept the license agreement and usage-statistics opt-in to reach the Home page.

Voyager Home page reading Welcome to Aerospike Voyager, with a Getting to your data section of three steps: Get a cluster connected with a Connect cluster button, Browse or load data, and Query it

2. Create a connection

On the Home page, under Get a cluster connected, click Connect cluster. After you save a cluster, add more with Add connection at the bottom of the cluster list in the Data browser. In the dialog, enter a Display name (optional) and the Cluster address as host:port (for example, localhost:3000).

Click Test to verify connectivity, then click Save to keep the profile or Connect to open a session immediately.

Connect to an Aerospike cluster dialog with Display name Local Aerospike and Cluster address localhost:3000, showing Test, Save, and Connect buttons

3. Load sample data

After connecting, right-click the test namespace in the sidebar, or click its actions menu (⋮), and select Load sample data. Voyager creates 9 sample sets with 600 records across three domains:

  • Ad tech: sample_audience, sample_campaign, sample_creative, sample_lineitem
  • E-commerce: sample_orders, sample_products
  • User data: sample_segment, sample_user_profile, sample_users

Loading takes a few seconds. When it completes, the sets appear in the sidebar and in the namespace view as cards showing the record count for each set.

Voyager sidebar expanded to show the 9 sample sets under namespace test, with the Sets in namespace view listing record counts per set

4. Browse data

Click sample_users in the sidebar to open the set. Records render as cards that expand to show their bins. If a bin contains a nested list or map, click the expand arrow to drill into the structure. Each value shows a type badge, for example string, integer, boolean, map, list, or geojson.

Expanded sample_users record card with the address map drilled in to show city, state, street, and zip, plus type badges for boolean, map, integer, string, and geojson

5. Filter records

The filter row between the page controls and the records reads No filters applied. Click its filter icon (Filter records) to open the filter panel. The panel has two tabs: Filters (builder) and Expression (expression editor). Use Clear all to reset.

On the Filters tab:

  1. Open Field and choose age. The list shows the bins in the loaded records, each with its type, and the record metadata fields you can filter on.
  2. Choose the operator > greater than.
  3. Enter the value 30.
  4. Check that Data type reads integer. Voyager fills it in from the age bin, so the comparison is numeric, not string.
  5. Click Apply, or press CMD+ENTER on macOS or CTRL+ENTER on Windows and Linux.

The record browser updates to show only records where age > 30, and the filter row shows the condition as a chip.

Filters tab with Field age, Operator greater than, Value 30, and Data type integer, and the generated expression $.age > 30 shown below the row

6. View the expression

Click the Expression tab. You see the expression string Voyager generated from your filter, checked as you type and confirmed with Expression valid.:

$.age > 30

In the Aerospike Expression Language (AEL), the $. prefix refers to a bin, so $.age > 30 keeps the records whose age bin is greater than 30. Type $. in the editor to see suggestions for bins and metadata fields, and press TAB to accept one.

Expression tab showing the $.age > 30 expression with the message Expression valid., the hint line with Tab to accept and Cmd+Enter to apply, and the Examples button

7. Use the expression in your SDK

Copy the expression string: click the Copy expression icon beside the expression preview on the Filters tab, or select the text on the Expression tab. You can paste it directly into your Aerospike SDK code to apply the same filter programmatically.

Filters tab with the condition age greater than 30 and the expression preview $.age > 30, with the pointer on the copy icon at the right of the preview showing the tooltip Copy expression

Java (Aerospike Java SDK):

import com.aerospike.client.sdk.Cluster;
import com.aerospike.client.sdk.ClusterDefinition;
import com.aerospike.client.sdk.DataSet;
import com.aerospike.client.sdk.RecordStream;
import com.aerospike.client.sdk.Session;
import com.aerospike.client.sdk.policy.Behavior;
try (Cluster cluster = new ClusterDefinition("localhost", 3000).connect()) {
Session session = cluster.createSession(Behavior.DEFAULT);
DataSet sampleUsers = DataSet.of("test", "sample_users");
RecordStream stream = session.query(sampleUsers).where("$.age > 30").execute();
while (stream.hasNext()) {
System.out.println(stream.next().recordOrNull().bins);
}
stream.close();
}

Python (Aerospike Python SDK):

import asyncio
from aerospike_sdk import Behavior, ClusterDefinition, DataSet
async def main() -> None:
async with await ClusterDefinition("localhost", 3000).connect() as cluster:
session = cluster.create_session(Behavior.DEFAULT)
sample_users = DataSet.of("test", "sample_users")
stream = await session.query(sample_users).where("$.age > 30").execute()
async for result in stream:
print(result.record.bins)
stream.close()
asyncio.run(main())

The $.age > 30 string is Aerospike Expression Language (AEL). See the AEL reference for full syntax.

8. Next steps

You have connected to a cluster, explored sample data, built a filter, and seen how expressions translate to SDK code. Continue learning with these guides: