Azure Parquet data lake
Here we explain how to deploy an Azure Parquet data lake with automation and an interface.
This can e.g. be used in Grafana-Synapse dashboards, PowerBI-Synapse dashboards or Python.
Overview
This guide lets you set up an automated data pre-processing workflow, including:
An ‘input container’ (for MDF/DBC files) and ‘output container’ (for Parquet files)
An ‘Azure function’ (DBC decodes new MDF files and outputs them as Parquet files)
A ‘Synapse’ SQL interface for querying the data lake (e.g. from Grafana)
Three ‘support jobs’ (map data lake, process MDF backlogs, summarize trips)
Note
The below assumes that you have an Azure account and input container deployed via our Terraform script (not manually). If not, see this guide[1].
Note
Ensure you test the MF4 decoders with your log files & DBC files locally before proceeding.
1: Upload to input container
Upload the prefixed DBC files (e.g.
can1-xyz.dbc) to your input container root via the console[2]Upload below zip[3] to your container root
Note
If you later need to update the function zip, upload the new version and repeat the steps below
2: Deploy integration
Open the canedge-azure-cloud-terraform repository
Go through the ‘setup instructions’ to open your Cloud Shell and clone the repository
Go through step 2 (MF4-to-Parquet) with
--github-token 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Go through step 3 (Synapse) with the above token
Note down the Synapse connection output (for use in e.g. connecting Grafana/PowerBI)
3: Test your cloud function
Upload a test MDF from your CANedge into your input container via CANcloud or the console
Verify that the decoded Parquet files are created in your output container[4]
Your data lake will now get auto-filled when new MDF files are uploaded to the input container.
4: Map your Parquet data lake to tables
Verify that your output container contains Parquet files[5]
Open your ‘synapse-map-tables’ Container App Job via the console
Click ‘Run now’ (at the top) and then click the execution history
Verify that the job succeeds[7] (the job may fail the 1st time, re-run it)
Note
The mapping script adds ‘meta data’ about your output container. If new devices/messages are added to your Parquet data lake, the script should be run again (manually or by schedule)[6]
Next, you can setup Grafana-Synapse dashboards - or check the advanced topics to process your historical backlog of MDF files, add custom event triggers and more.