Previous
CLI reference
Your robot’s sensors, cameras, and other components produce data you need to record, analyze, and act on. Viam’s data management service lets you configure which components to capture from, sync captured data to the cloud, and query, export, or use it for ML training without building a custom data pipeline.
Data moves through four stages, from your robot to actionable insights:
Capture and sync run independently: you can capture without syncing, or sync files from other sources without using Viam’s capture.
To get started recording data, see Capture and sync data.
All captured tabular data is queryable through SQL and MQL, either in the Viam app’s query editor or programmatically through the SDK. You can run ad-hoc queries for data exploration, create custom indexes to speed up frequent queries, and save queries for reuse. An AI-assisted query builder helps you write MQL aggregation pipelines.
Binary data (images, point clouds) is browsable and filterable in the Viam app’s Data tab, with viewers for images, video, and 3D point clouds.
See Query data and Query reference.
Data pipelines run scheduled MQL aggregations on your captured data. Use them to compute hourly averages, detect trends, or reshape data for downstream tools. Pipelines run on a cron schedule with optional backfill for historical data.
A hot data store keeps a rolling window of recent data in a fast-query database, so you can build real-time dashboards without scanning the full archive.
See Create a data pipeline and Hot data store.
Viam is not a data silo. You can export data to your own tools and databases:
See Export data and Sync to your database.
Captured images can be tagged, annotated with bounding boxes, and organized into datasets for ML training. Viam provides a complete path from captured data to a deployed model:
See Create a dataset and the training section for details.
Triggers send webhooks or email alerts when synced data meets a condition, so you can respond to events like temperature spikes or detection results without polling.
For debugging, Viam includes OpenTelemetry distributed tracing that traces requests across your SDK code, viam-server, and modules. Traces can be exported to Jaeger, Grafana Tempo, Datadog, or saved to disk for later analysis.
Monitoring dashboards can be built with Viam’s Teleop workspace or with Grafana connected to your data through MongoDB.
See Trigger on data events and Visualize data.
Robots can generate more data than your network can transfer or your budget can store. Viam provides several tools to control data volume:
See Filter at the edge and Conditional sync.
Data is encrypted in transit using gRPC and encrypted at rest by the cloud storage provider.
The sync process is designed to prevent data loss and duplication:
Was this page helpful?
Glad to hear it! If you have any other feedback please let us know:
We're sorry about that. To help us improve, please tell us what we can do better:
Thank you!