feat: add import templates
This commit is contained in:
295
config/import_templates.json
Normal file
295
config/import_templates.json
Normal file
@@ -0,0 +1,295 @@
|
||||
{
|
||||
"area_monthly_metrics": {
|
||||
"description": "Monthly area-level housing market metrics.",
|
||||
"target_table": "silver.area_monthly_metrics",
|
||||
"primary_key": ["area_id", "month"],
|
||||
"columns": [
|
||||
{
|
||||
"name": "area_id",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"description": "Stable area identifier from silver.areas."
|
||||
},
|
||||
{
|
||||
"name": "month",
|
||||
"type": "month",
|
||||
"required": true,
|
||||
"description": "Metric month in YYYY-MM format."
|
||||
},
|
||||
{
|
||||
"name": "transaction_count",
|
||||
"type": "integer",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Observed second-hand transaction count."
|
||||
},
|
||||
{
|
||||
"name": "transaction_price_psm",
|
||||
"type": "decimal",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Average transaction price, RMB per square meter."
|
||||
},
|
||||
{
|
||||
"name": "listing_count",
|
||||
"type": "integer",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Active listing count."
|
||||
},
|
||||
{
|
||||
"name": "listing_price_psm",
|
||||
"type": "decimal",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Average listing price, RMB per square meter."
|
||||
},
|
||||
{
|
||||
"name": "median_days_on_market",
|
||||
"type": "decimal",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Median days on market."
|
||||
},
|
||||
{
|
||||
"name": "rent_price_psm",
|
||||
"type": "decimal",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Monthly rent, RMB per square meter."
|
||||
},
|
||||
{
|
||||
"name": "new_supply_units",
|
||||
"type": "integer",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "New residential supply units."
|
||||
},
|
||||
{
|
||||
"name": "land_residential_gfa_sqm",
|
||||
"type": "decimal",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Residential land transaction GFA, square meters."
|
||||
},
|
||||
{
|
||||
"name": "mortgage_rate_pct",
|
||||
"type": "decimal",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"max": 20,
|
||||
"description": "Mainstream mortgage rate percentage."
|
||||
},
|
||||
{
|
||||
"name": "policy_signal",
|
||||
"type": "integer",
|
||||
"required": true,
|
||||
"min": -2,
|
||||
"max": 2,
|
||||
"description": "Policy direction signal from -2 to 2."
|
||||
},
|
||||
{
|
||||
"name": "source",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"description": "Human-readable source name or source code."
|
||||
}
|
||||
]
|
||||
},
|
||||
"neighborhood_monthly_metrics": {
|
||||
"description": "Monthly neighborhood-level housing market metrics.",
|
||||
"target_table": "silver.neighborhood_monthly_metrics",
|
||||
"primary_key": ["neighborhood_id", "month"],
|
||||
"columns": [
|
||||
{
|
||||
"name": "neighborhood_id",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"description": "Stable neighborhood identifier from silver.neighborhoods."
|
||||
},
|
||||
{
|
||||
"name": "month",
|
||||
"type": "month",
|
||||
"required": true,
|
||||
"description": "Metric month in YYYY-MM format."
|
||||
},
|
||||
{
|
||||
"name": "transaction_count",
|
||||
"type": "integer",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Observed transaction count."
|
||||
},
|
||||
{
|
||||
"name": "transaction_price_psm",
|
||||
"type": "decimal",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Average transaction price, RMB per square meter."
|
||||
},
|
||||
{
|
||||
"name": "listing_count",
|
||||
"type": "integer",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Active listing count."
|
||||
},
|
||||
{
|
||||
"name": "listing_price_psm",
|
||||
"type": "decimal",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Average listing price, RMB per square meter."
|
||||
},
|
||||
{
|
||||
"name": "rent_price_psm",
|
||||
"type": "decimal",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Monthly rent, RMB per square meter."
|
||||
},
|
||||
{
|
||||
"name": "median_days_on_market",
|
||||
"type": "decimal",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Median days on market."
|
||||
},
|
||||
{
|
||||
"name": "available_units",
|
||||
"type": "integer",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Currently available units in the neighborhood sample."
|
||||
},
|
||||
{
|
||||
"name": "source",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"description": "Human-readable source name or source code."
|
||||
}
|
||||
]
|
||||
},
|
||||
"policy_events": {
|
||||
"description": "Policy events that can affect market liquidity, credit or demand.",
|
||||
"target_table": "raw.policy_events",
|
||||
"primary_key": ["event_date", "title"],
|
||||
"columns": [
|
||||
{
|
||||
"name": "event_date",
|
||||
"type": "date",
|
||||
"required": true,
|
||||
"description": "Policy event date in YYYY-MM-DD format."
|
||||
},
|
||||
{
|
||||
"name": "level",
|
||||
"type": "enum",
|
||||
"required": true,
|
||||
"allowed_values": ["national", "shanghai", "district"],
|
||||
"description": "Policy jurisdiction level."
|
||||
},
|
||||
{
|
||||
"name": "title",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"description": "Short policy title."
|
||||
},
|
||||
{
|
||||
"name": "impact_direction",
|
||||
"type": "integer",
|
||||
"required": true,
|
||||
"min": -2,
|
||||
"max": 2,
|
||||
"description": "Expected impact from -2 tightening to 2 easing."
|
||||
},
|
||||
{
|
||||
"name": "notes",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "Analyst notes and interpretation."
|
||||
},
|
||||
{
|
||||
"name": "source_url",
|
||||
"type": "url",
|
||||
"required": false,
|
||||
"description": "Official notice or source URL."
|
||||
},
|
||||
{
|
||||
"name": "source",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"description": "Human-readable source name or source code."
|
||||
}
|
||||
]
|
||||
},
|
||||
"land_sales": {
|
||||
"description": "Residential land transaction records used for supply pressure analysis.",
|
||||
"target_table": "raw.land_sales",
|
||||
"primary_key": ["parcel_id"],
|
||||
"columns": [
|
||||
{
|
||||
"name": "parcel_id",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"description": "Stable land parcel identifier from the source."
|
||||
},
|
||||
{
|
||||
"name": "area_id",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"description": "Mapped area identifier from silver.areas."
|
||||
},
|
||||
{
|
||||
"name": "transaction_date",
|
||||
"type": "date",
|
||||
"required": true,
|
||||
"description": "Land transaction date in YYYY-MM-DD format."
|
||||
},
|
||||
{
|
||||
"name": "parcel_name",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"description": "Land parcel name."
|
||||
},
|
||||
{
|
||||
"name": "residential_gfa_sqm",
|
||||
"type": "decimal",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Residential planned gross floor area, square meters."
|
||||
},
|
||||
{
|
||||
"name": "transaction_price_total_cny",
|
||||
"type": "decimal",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Total transaction price in RMB."
|
||||
},
|
||||
{
|
||||
"name": "floor_price_cny_psm",
|
||||
"type": "decimal",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
"description": "Implied floor price, RMB per square meter."
|
||||
},
|
||||
{
|
||||
"name": "buyer",
|
||||
"type": "text",
|
||||
"required": false,
|
||||
"description": "Winning bidder or buyer."
|
||||
},
|
||||
{
|
||||
"name": "source_url",
|
||||
"type": "url",
|
||||
"required": false,
|
||||
"description": "Announcement or source URL."
|
||||
},
|
||||
{
|
||||
"name": "source",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"description": "Human-readable source name or source code."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user