featurizer × dirtyduck
Which food facilities are likely to fail an inspection? (facilities ← inspections)
1 · Full-cohort materialization (v1.0.0)
Each variant materialized through to_dataframe(connection=…)
at one as-of date (2017-12-30 — the day
after the last knowledge date, so every event is under the window); no
permanent writes. Variant definitions and the recovered wide transformer set:
benchmarks/final_matrix.py.
| variant | features | shards | rows | dup-names | seconds | was (v0.8.0) | status |
|---|---|---|---|---|---|---|---|
| narrow | 147 | 1 | 22,169 | 0 | 2.5 | 3.0 | materialized |
| all-agg | 272 | 1 | 22,169 | 0 | 7.0 | 7.5 | materialized |
| wide | 1,252 | 1 | 22,169 | 0 | 60.2 | 63.2 | materialized |
graph_relationships
{
"workload": "graph_relationships",
"dataset": "dirtyduck",
"edges": 13950,
"as_of_dates": [
"2016-01-01",
"2017-01-01",
"2017-12-30"
],
"rows": 66507,
"features": 159,
"degree_columns": [
"DEGREE(chains)",
"DEGREE(chains|interval=P1M)",
"DEGREE(chains|interval=P3M)",
"DEGREE(chains|interval=P6M)"
],
"hand_sql_verified": 5,
"exec_seconds": 7.8,
"explain_top": [
"Sort",
" Sort Key: aod.as_of_date",
" -> Nested Loop",
" -> Seq Scan on as_of_dates aod"
],
"explain_nodes": 28
}centrality snapshots
{
"workload": "centrality_snapshots",
"dataset": "dirtyduck",
"as_of_dates": [
"2016-01-01",
"2017-01-01",
"2017-12-30"
],
"cheap_seconds": 0.5,
"cheap_snapshot_rows": 17011,
"edges": 13950,
"heavy_seconds": 17.2,
"heavy_snapshot_rows": 17011,
"heavy_over_cheap": 34.4
}text bridge end-to-end
{
"workload": "text_bridge_end_to_end",
"dataset": "dirtyduck",
"bridge": "SentimentBridge(en)",
"comments_total": 261088,
"comments_processed": 50000,
"row_cap": 50000,
"bridge_seconds": 0.9,
"spine_seconds": 1.1,
"rows": 22169,
"sentiment_columns": [
"COUNT(sentiment.comment_id)",
"COUNT(sentiment.comment_id|interval=P1M)",
"COUNT(sentiment.comment_id|interval=P3M)",
"COUNT(sentiment.comment_id|interval=P6M)",
"COUNT(sentiment.date)",
"COUNT(sentiment.date|interval=P1M)",
"COUNT(sentiment.date|interval=P3M)",
"COUNT(sentiment.date|interval=P6M)",
"MAX(sentiment.sentiment)",
"MAX(sentiment.sentiment|interval=P1M)",
"MAX(sentiment.sentiment|interval=P3M)",
"MAX(sentiment.sentiment|interval=P6M)",
"MEAN(sentiment.sentiment)",
"MEAN(sentiment.sentiment|interval=P1M)",
"MEAN(sentiment.sentiment|interval=P3M)",
"MEAN(sentiment.sentiment|interval=P6M)",
"MIN(sentiment.sentiment)",
"MIN(sentiment.sentiment|interval=P1M)",
"MIN(sentiment.sentiment|interval=P3M)",
"MIN(sentiment.sentiment|interval=P6M)"
],
"hand_sql_verified": 3
}