Overview
Concrete tool for detecting, creating, and validating DayZ synthesizer parameters for multi-table relational data provided by the SDV library.
Description
The sdv.multi_table.dayz module provides the multi-table variant of DayZSynthesizer. Like its single-table counterpart, only create_parameters and validate_parameters are publicly available in open-source SDV; instantiation raises SynthesizerInputError. The multi-table version extends parameter detection to include relationship-level parameters (min/max cardinality between parent and child tables). Validation additionally checks relationship structure, cardinality bounds, and consistency between table num_rows and cardinality constraints.
Usage
Use DayZSynthesizer.create_parameters (from sdv.multi_table) when working with multi-table relational datasets. The method detects per-table column statistics and relationship cardinality parameters from the data and metadata. Use validate_parameters to validate a multi-table parameter dictionary before passing to SDV-Enterprise.
Code Reference
Source Location
Signature
class DayZSynthesizer:
"""Multi-Table DayZSynthesizer for public SDV."""
def __init__(self, metadata, locales=['en_US']):
# Raises SynthesizerInputError (Enterprise-only)
...
@classmethod
def create_parameters(
cls,
data: dict,
metadata: Metadata,
filepath: str = None,
) -> dict:
"""Create parameters for the multi-table DayZSynthesizer."""
...
@staticmethod
def validate_parameters(
metadata: Metadata,
parameters: dict,
) -> None:
"""Validate a DayZSynthesizer parameters dictionary."""
...
Import
from sdv.multi_table import DayZSynthesizer
I/O Contract
Inputs (create_parameters)
| Name |
Type |
Required |
Description
|
| data |
dict[str, pd.DataFrame] |
Yes |
Dictionary mapping table names to DataFrames
|
| metadata |
Metadata |
Yes |
SDV Metadata describing the multi-table schema and relationships
|
| filepath |
str |
No |
If provided, writes parameters as JSON to this path
|
Outputs (create_parameters)
| Name |
Type |
Description
|
| parameters |
dict |
DayZ parameter dict with DAYZ_SPEC_VERSION, tables (per-table stats), and relationships (cardinality)
|
Inputs (validate_parameters)
| Name |
Type |
Required |
Description
|
| metadata |
Metadata |
Yes |
SDV Metadata for the multi-table data
|
| parameters |
dict |
Yes |
DayZ parameter dictionary to validate
|
Usage Examples
Creating Multi-Table Parameters
from sdv.datasets.demo import download_demo
from sdv.multi_table import DayZSynthesizer
# Load multi-table demo data
data, metadata = download_demo(modality='multi_table', dataset_name='fake_hotels')
# Create DayZ parameters
params = DayZSynthesizer.create_parameters(
data=data,
metadata=metadata,
filepath='multi_table_params.json',
)
print(params['relationships'])
# Shows min_cardinality, max_cardinality for each relationship
Validating Multi-Table Parameters
from sdv.multi_table import DayZSynthesizer
# Validate parameters against metadata
DayZSynthesizer.validate_parameters(
metadata=metadata,
parameters=params,
)
# No error means parameters are valid
Related Pages
Page Connections
Double-click a node to navigate. Hold to expand connections.