MCPcopy Index your code
hub / github.com/djouallah/aemo_fabric

github.com/djouallah/aemo_fabric @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
12 symbols 57 edges 3 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Please use this one, it is much simpler : https://github.com/djouallah/fabric_demo

A Full end to end solution using Fabric Lakehouse

AEMO manage electricity and gas systems and markets across Australia, they provide extensive data at a very granular level and updated every 5 minutes, see example here https://nemweb.com.au/Reports/CURRENT/

image

Architecture

image

Howto

1- Create a Fabric Workspace

2- Fork this repo, and connect Fabric to it : https://learn.microsoft.com/en-us/fabric/cicd/git-integration/git-integration-process?tabs=azure-devops#connect-and-sync

3-Open Notebook Initial Setup, attach the Lakehouse "storage" then run it,it will automatically:

Attach the lakehouse to the two notebooks, and load data for 1 day, you can change the parameter to 60 days notebookutils.notebook.run("Process_Data_Every_24_Hours", 2000,{"Nbr_Files_to_Download": 1 })

rebind the semantic model to the new Lakehouse

rebind the report to the new semantic model

image

and here is the PowerBI report

image

Optional

3- turn on scheduler for 5 minutes and daily, notice daily files get updated at 6 AM Brisbane time.

Lessons learnt

  • Use data pipeline to schedule job, to control concurrency and timeout.

  • Develop using starter pool, but for production use a single node to reduce capacity usage.

  • Direct Lake don't like too many small files, run SQL optimize to get good performance

  • Vacuum to remove old snapshots to reduce data storage.

Core symbols most depended-on inside this repo

unzip
called by 3
Process_Data_Every_24_Hours.Notebook/notebook-content.py
download
called by 2
Process_Data_Every_24_Hours.Notebook/notebook-content.py
download
called by 2
Process Data Every 5 Minutes.Notebook/notebook-content.py
unzip
called by 2
Process Data Every 5 Minutes.Notebook/notebook-content.py
get_notebook_content
called by 1
00_Initial_setup.Notebook/notebook-content.py
update_notebook_default_lakehouse
called by 1
00_Initial_setup.Notebook/notebook-content.py
extract_scada
called by 1
Process_Data_Every_24_Hours.Notebook/notebook-content.py
extract_price
called by 1
Process_Data_Every_24_Hours.Notebook/notebook-content.py

Shape

Function 12

Languages

Python100%

Modules by API surface

Process_Data_Every_24_Hours.Notebook/notebook-content.py6 symbols
Process Data Every 5 Minutes.Notebook/notebook-content.py4 symbols
00_Initial_setup.Notebook/notebook-content.py2 symbols

For agents

$ claude mcp add aemo_fabric \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact