Prior to SAPPHIRE this year the sales guys at my company ran an event for HANA customers which involved racing NASCARs around a track at ridiculous speeds. In an attempt to introduce a slightly more nuanced association with in-memory computing I started dreaming up ways to capture the engine telemetry from the cars and store it in the appliance. Although ultimately futile, my efforts were not entirely wasted. Not only did I get my VP to authorise the purchase of a very cool video game on expenses, but I also figured out how to generate big test data that is even more exciting than smart energy meter readings and justifies hours of multi-player gaming on the corporate network.
First of all, though, let’s consider how you can justify to your management the pressing need to generate big test data using these techniques.
- Telemetry data is real so insights from analytics are meaningful
- Use cases are representative of real-life scenarios involving homogeneous multi-sensor equipment sets where you want to compare performance between different units with identical operating cycles (transformers, rail vehicles, production line equipment, etc)
- High volume with up to 60 measurements per second across 40 sensors for every vehicle in a race
- Suitable for real time scenarios
- Data is inexpensive to generate
- Universal appeal
- Potential marketing opportunities with motor sports events (the sales team will appreciate this)
Now we’ve got that out of the way, you can get back to the important business of setting up your test data creation infrastructure. You will need:
- One or more networked PCs for gaming – the more the better
- F1 2011 game from Codemasters for each PC http://www.formula1-********/us/
- Windows Live user id for each player
- .Net developer for a day (or high end UDP port logger/data capture)
- Optional (although I won’t tell if you say mandatory)
- Professional gaming video monitors and sound amplification
- Game controllers – steering and pedals
So far so good. So how can we get the telemetry data out of the game and into Hasso’s New Architecture?
- Install the F1 2011 video game for PC from Codemasters on one or more networked PCs
- Register a Windows Live account for each player
- Configure My Documents / My Games / FormulaOne2011 / hardwaresettings /
hardware_settings_config.xml to publish telemetry to the UDP end point that will
be listening for the data e.g. Local host 127.0.0.1
- Install a UDP listener on the endpoint (see next section)
- Start racing on one or more networked machines and collect the data
A couple of points to note:
Finally, how do we read the data from the UDP end point and save it in HANA?
This is where I was hoping someone much cleverer than me could come and provide some insight. Rob Gray is such a person, and he describes in detail how to write the .NET code to read the data at http://www.robertgray.net.au/2012/3/24/connecting-to-codemasters-f1-telemetry-feed.aspx
The boring solution would be to generate an huge CSV file and load that up into HANA when you got tired of playing games.
A much more interesting option would be to connect directly to the HANA environment and update the database in real time.
That’s it from me… over to you!