Metadata
Last updated
{
"METADATA_SPEC_VERSION": "V1",
"tables": {
"hotels": {
"primary_key": "hotel_id",
"columns": {
"hotel_id": { "sdtype": "id", "regex_format": "HID_[0-9]{3}" },
"city": { "sdtype": "categorical" },
"rating": { "sdtype": "numerical" }
},
"column_relationships": []
},
"guests": {
"primary_key": "guest_email",
"columns": {
"guest_email": { "sdtype": "email" },
"hotel_id": { "sdtype": "id", "regex_format": "HID_[0-9]{3}" },
"checkin_date": { "sdtype": "datetime", "datetime_format": "%d %b %Y" },
"checkout_date": { "sdtype": "datetime", "datetime_format": "%d %b %Y" },
"room_type": { "sdtype": "categorical" }
},
"column_relationships": []
}
},
"relationships": [{
"parent_table_name": "hotels",
"parent_primary_key": "hotel_id",
"child_table_name": "guests",
"child_foreign_key": "hotel_id"
}]
}from sdv.metadata import Metadata
# Create metadata via auto-detection (if you don't already have it)
metadata = Metadata.detect_from_dataframes(data)
# Carefully inspect and update your metadata
metadata.visualize()
metadata.update_column(
column_name='room_type',
sdtype='categorical',
table_name='guests'
)
metadata.validate()
# When you're done, save it to a file for future use
metadata.save_to_json('my_final_metadata.json')