A Dataset represents a data model that can be queried in Snuba.
from snuba.datasets.dataset import Datasetfrom snuba.datasets.factory import get_dataset# Get a dataset by namedataset = get_dataset("events")# Access entities in the datasetentities = dataset.get_all_entities()for entity in entities: print(entity)
The factory provides centralized access to all datasets.
from snuba.datasets.factory import ( get_dataset, get_dataset_name, get_enabled_dataset_names, InvalidDatasetError)# Get dataset by nametry: dataset = get_dataset("events")except InvalidDatasetError as e: print(f"Dataset not found: {e}")# Get dataset name from instancename = get_dataset_name(dataset)print(f"Dataset name: {name}")# List all enabled datasetsall_datasets = get_enabled_dataset_names()print(f"Available datasets: {all_datasets}")
from snuba.datasets.factory import get_dataset, get_enabled_dataset_namesfrom snuba.datasets.entities.entity_key import EntityKeyfrom snuba.datasets.entities.factory import get_entity# List all available datasetsprint("Available datasets:")for dataset_name in get_enabled_dataset_names(): print(f" - {dataset_name}")# Get events datasetevents_dataset = get_dataset("events")print(f"\nDataset: events")# Get all entitiesentities = events_dataset.get_all_entities()print(f"Entities: {len(entities)}")for entity in entities: print(f"\nEntity: {entity}") # Get storages storages = entity.get_all_storages() print(f" Storages: {len(storages)}") for storage in storages: key = storage.get_storage_key() schema = storage.get_schema() print(f" - {key.value}") # Get table info if hasattr(schema, 'get_local_table_name'): table = schema.get_local_table_name() print(f" Table: {table}") # Check subscription support sub_processors = entity.get_subscription_processors() if sub_processors: print(f" Subscription processors: {len(sub_processors)}") # Get time column time_col = entity.required_time_column if time_col: print(f" Time column: {time_col}")
from snuba.datasets.entities.entity_key import EntityKey# Available entity keysEntityKey.EVENTSEntityKey.TRANSACTIONSEntityKey.METRICS_COUNTERSEntityKey.METRICS_DISTRIBUTIONSEntityKey.METRICS_SETSEntityKey.PROFILESEntityKey.PROFILE_FUNCTIONSEntityKey.REPLAYS
from snuba.datasets.factory import InvalidDatasetErrortry: dataset = get_dataset("nonexistent")except InvalidDatasetError as e: print(f"Error: {e}") # Error: dataset 'nonexistent' does not existtry: dataset = get_dataset("disabled_dataset")except InvalidDatasetError as e: print(f"Error: {e}") # Error: dataset 'disabled_dataset' is disabled in this environment