Hands-on work across relational, non-relational and analytics workloads in the Azure portal, plus a written migration proposal for a small retail business.
Provisioned a SQL database and built a two-table relational schema entirely from the portal query editor — creating Manufacturer and Vehicle tables, populating them with automotive sample data, then joining across the foreign key with an INNER JOIN.
Re-running the CREATE TABLE block returned "There is already an object named 'Manufacturer' in the database". A reminder that DDL is not idempotent by default, and a re-run needs DROP TABLE IF EXISTS guards rather than a second execution.
Cleanup meant deleting the resource group to remove the database, server and everything inside it in one step — the habit that stops a lab environment quietly accruing cost.
Created a storage account and explored the three ways Azure stores non-relational data: blob storage, Data Lake Storage Gen2 and Azure Files. This is the practical grounding for the storage recommendations in the proposal below.
Created a Cosmos DB account, added JSON items through Data Explorer and queried them with a SQL-like language.
The instructive part is what Cosmos DB adds on save — system properties such as _rid, _self, _etag and _ts appear automatically alongside the authored fields. A schemaless store still maintains internal metadata. "No fixed schema" is not the same as "no structure".
Built an ingestion pipeline copying the NYC Taxi sample dataset in Parquet format into a Fabric Lakehouse.
Because the source is Parquet, the Rows read and Rows written counters can both report zero while the table is in fact created and populated. A progress counter is not a verification — the table contents are.
A formal report proposing a migration path for a pet shop currently running on manual data collection and spreadsheets.
Recommended architecture: Blob Storage as the raw landing layer, Azure SQL Database for structured operational data, Data Factory for scheduled ETL, Synapse Analytics for warehousing, and Power BI for management dashboards. Machine Learning was deliberately deferred — reliable, well-structured data has to exist first, or the model learns the mess.
Compliance: worked through all seven UK GDPR principles and translated each into a concrete obligation, addressed data subject rights and the 72-hour ICO breach notification requirement, and recommended reviewing policies against current ICO guidance given that the Data (Use and Access) Act 2025 has altered the framework.
On payment data the recommendation is explicitly not to store card details at all. A PCI-compliant provider processes the transaction and the business retains only a reference. The safest way to handle card data is to never hold it.
Data model: six entities with primary and foreign keys, including a SoldItems table that resolves the many-to-many between sales and inventory — which is what makes stock decrement correctly per line item rather than per transaction. Security covers AES-256 encryption at rest, TLS in transit, role-based access control, multi-factor authentication and Key Vault for credentials.