struct SchemaSniffer {
// The application (site, game, app etc) this event belongs to, and the tracker platform 1: optional string app_id, 2: optional string platform, // Date/time 3: optional string etl_tstamp, 4: optional string collector_tstamp, 5: optional string dvce_created_tstamp, // Transaction (i.e. this logging event) 6: optional string event, 7: optional string event_id, 8: optional string txn_id, // Versioning 9: optional string name_tracker, 10: optional string v_tracker, 11: optional string v_collector, 12: optional string v_etl, // User and visit 13: optional string user_id, 14: optional string user_ipaddress, 15: optional string user_fingerprint, 17: optional string domain_userid, 18: optional i16 domain_sessionidx, 19: optional string network_userid, // Location 20: optional string geo_country, 21: optional string geo_region, 22: optional string geo_city, 23: optional string geo_zipcode, 24: optional double geo_latitude, 25: optional double geo_longitude, 26: optional string geo_region_name, // Other IP lookups 27: optional string ip_isp, 28: optional string ip_organization, 29: optional string ip_domain, 30: optional string ip_netspeed, // Page 31: optional string page_url, 32: optional string page_title, 33: optional string page_referrer, // Page URL components 34: optional string page_urlscheme, 35: optional string page_urlhost, 36: optional string page_urlport, 37: optional string page_urlpath, 38: optional string page_urlquery, 39: optional string page_urlfragment, // Referrer URL components 40: optional string refr_urlscheme, 41: optional string refr_urlhost, 42: optional string refr_urlport, 43: optional string refr_urlpath, 44: optional string refr_urlquery, 45: optional string refr_urlfragment, // Referrer details 46: optional string refr_medium, 47: optional string refr_source, 48: optional string refr_term, // Marketing 49: optional string mkt_medium, 50: optional string mkt_source, 51: optional string mkt_term, 52: optional string mkt_content, 53: optional string mkt_campaign, // Custom Contexts 54: optional string contexts, // Structured Event 55: optional string se_category, 56: optional string se_action, 57: optional string se_label, 58: optional string se_property, 59: optional string se_value, // Technically should be a Double but may be rendered incorrectly by Cascading with scientific notification (which Redshift can't process) // Unstructured Event 60: optional string unstruct_event, // Ecommerce transaction (from querystring) 61: optional string tr_orderid, 62: optional string tr_affiliation, 63: optional string tr_total, 64: optional string tr_tax, 65: optional string tr_shipping, 66: optional string tr_city, 67: optional string tr_state, 68: optional string tr_country, // Ecommerce transaction item (from querystring) 69: optional string ti_orderid, 70: optional string ti_sku, 71: optional string ti_name, 72: optional string ti_category, 73: optional string ti_price, 74: optional string ti_quantity, // Page Pings 75: optional string pp_xoffset_min, 76: optional string pp_xoffset_max, 77: optional string pp_yoffset_min, 78: optional string pp_yoffset_max, // User Agent 79: optional string useragent, // Browser (from user-agent) 80: optional string br_name, 81: optional string br_family, 82: optional string br_version, 83: optional string br_type, 84: optional string br_renderengine, // Browser (from querystring) 85: optional string br_lang, // Individual feature fields for non-Hive targets (e.g. Infobright) 86: optional i8 br_features_pdf, 87: optional i8 br_features_flash, 88: optional i8 br_features_java, 89: optional i8 br_features_director, 90: optional i8 br_features_quicktime, 91: optional i8 br_features_realplayer, 92: optional i8 br_features_windowsmedia, 93: optional i8 br_features_gears, 94: optional i8 br_features_silverlight, 95: optional i8 br_cookies, 96: optional string br_colordepth, 97: optional i16 br_viewwidth, 98: optional i16 br_viewheight, // OS (from user-agent) 99: optional string os_name, 100: optional string os_family, 101: optional string os_manufacturer, 102: optional string os_timezone, // Device/Hardware (from user-agent) 103: optional string dvce_type, 104: optional string dvce_ismobile, // Device (from querystring) 105: optional i16 dvce_screenwidth, 106: optional i16 dvce_screenheight, // Document 107: optional string doc_charset, 108: optional i16 doc_width, 109: optional i16 doc_height, // Currency 110: optional string tr_currency, 111: optional string tr_total_base, 112: optional string tr_tax_base, 113: optional string tr_shipping_base, 114: optional string ti_currency, 115: optional string ti_price_base, 116: optional string base_currency, // Geolocation 117: optional string geo_timezone, // Click ID 118: optional string mkt_clickid, 119: optional string mkt_network, // ETL tags 120: optional string etl_tags, // Time event was sent 121: optional string dvce_sent_tstamp, // Referer 122: optional string refr_domain_userid, 123: optional string refr_dvce_tstamp, // Derived contexts 124: optional string derived_contexts, // Session ID 125: optional string domain_sessionid, // Derived timestamp 126: optional string derived_tstamp, // Derived event vendor/name/format/version 127: optional string event_vendor, 128: optional string event_name, 129: optional string event_format, 130: optional string event_version, // Event fingerprint 131: optional string event_fingerprint
}