Skip to main content

Master Data

The Qarion SDK provides methods for creating and managing version-controlled reference and master datasets.

Usage

Create a Dataset

from qarion import QarionClient

client = QarionClient(api_key="qk_...")

dataset = client.master_data.create_dataset(
space_slug="finance",
name="Country Codes",
description="ISO 3166-1 country codes",
category="reference",
)
print(f"Dataset ID: {dataset.id}")

Manage Schema

# Add columns
client.master_data.add_column(
space_slug="finance",
dataset_id=dataset.id,
name="code",
data_type="string",
is_primary_key=True,
)
client.master_data.add_column(
space_slug="finance",
dataset_id=dataset.id,
name="name",
data_type="string",
)

Add Rows

client.master_data.add_row(
space_slug="finance",
dataset_id=dataset.id,
values={"code": "US", "name": "United States"},
)

Bulk Import

client.master_data.import_rows(
space_slug="finance",
dataset_id=dataset.id,
data=[
{"code": "US", "name": "United States"},
{"code": "GB", "name": "United Kingdom"},
{"code": "DE", "name": "Germany"},
],
strategy="upsert",
)

Publish a Version

version = client.master_data.publish(
space_slug="finance",
dataset_id=dataset.id,
)
print(f"Published version: {version.version_number}")

Export Data

csv_data = client.master_data.export_rows(
space_slug="finance",
dataset_id=dataset.id,
format="csv",
)

Compare Versions

diff = client.master_data.compare_versions(
space_slug="finance",
dataset_id=dataset.id,
from_version=v1.id,
to_version=v2.id,
)
print(f"Added: {diff.added}, Modified: {diff.modified}, Deleted: {diff.deleted}")