Synchronizing data to the cloud¶
Synchronization keeps your local experimental data in sync with the server: the sync agent runs as a background service on your computer, continuously discovering new datasets from your data sources and uploading them to QM Data Management.
Synchronization is one-way — data flows from your computer up to QM Data Management. The agent only reads your local files; it never modifies or deletes them, and changes made on the server are not written back to disk.
How it works¶
graph LR
A["Data sources<br/>(Qualibrate, QCoDeS,<br/>Quantify, folders, …)"] -->| discovered by | B["Sync agent<br/>(background service)"]
B -->| uploads to | C[("Data Management<br/>server")]
A few concepts are worth knowing:
- Sync agent — the background service that does the work. It is installed and managed through the qDrive package; see qDrive installation.
- Connector — the plugin that knows how to read a particular data format and adapt it for synchronization. Pre-built connectors exist for QUAlibrate, QCoDeS, Quantify, Labber, Core Tools, and generic folders (see connectors); you can also create your own.
- Sync source — a configured data source to synchronize. Each source has a name, a connector, and connector-specific configuration (for example, the folder or database to watch).
- Sync item — a single dataset queued for synchronization. A sync item is always part of a sync source. The agent creates one per discovered dataset and tracks its sync state.
Prerequisites¶
Before you can synchronize data:
- Install the background sync services — see qDrive installation.
- Log in to your institution — see Authentication.
Once the agent is running and you are logged in, you can configure and monitor synchronization in two ways.
Two ways to manage synchronization¶
-
In the DataQruiser app
Add and monitor sync sources from the desktop application — the easiest way to get started, no code required.
-
From Python (the SDK)
Manage sources, scope mappings, and sync items programmatically with the
etiket-sdkpackage — ideal for servers and automation.
Want to synchronize a data format that isn't covered by the built-in connectors? See Creating a connector.