AI Data Platform Series
This is the overview of my AI Data Platform series. It follows one real-time demo from start to finish: live London bus arrival predictions from Transport for London (TfL), streamed through OCI into Oracle AI Data Platform (AIDP), refined through a bronze, silver and gold medallion architecture, and finally analysed in Oracle Analytics Cloud, including in plain language through the Oracle Analytics MCP Server.
The series grew out of the "Just Streams" session Sandi Holub and I presented at UKOUG 2025 and Make IT 2026. Each post covers one layer, with the actual notebooks, SQL and console steps, and the problems I ran into along the way.
What the series covers
- Getting data in: a small Python producer polls the TfL API and publishes to OCI Streaming, running as a service on an OCI Compute VM.
- The AIDP environment: Workbench, Master Catalog, Spark cluster, schemas, volumes, Vault and the Credential Store.
- Bronze and silver with Spark Structured Streaming: raw events landed as an append-only Delta table, then deduplicated into one current row per bus, stop, line and direction with a
foreachBatchMERGE. - Gold for analytics: a live arrivals board as a SQL view, a stations reference table for all 674 bus lines, and interpolated live bus positions along TfL's own route geometry.
- Consuming the data: DBeaver over JDBC (with a look at Delta tables readable as Iceberg), Oracle Analytics Cloud workbooks and maps, and Claude querying OAC through MCP.
Just Streams: Real-Time Data Pipelines on OCI
Setting Up the AI Data Platform Environment
OCI Streaming and Stream Producer
Bronze Layer: Spark Structured Streaming
Silver Layer: Spark Structured Streaming
Comparing Bronze and Silver with DBeaver
Gold Layer: Arrivals Board
Gold Layer: Vehicle Movements
OAC MCP Server and Streaming Data