Archive: Žiga Vaupot's Blog

Clear filter — back to home
AI Data Platform Series: Gold Layer Vehicle Movements

AI Data Platform Series: Gold Layer Vehicle Movements

Gold Layer: stations reference data and live bus positions for line 25, interpolated along TfL's own route geometry and shown on an Oracle Analytics Cloud map

This is the seventh post in the AI Data Platform series. The previous post built tfl.gold.arrivals_board, a live view of the next buses at every stop, and connected it to Oracle Analytics Cloud. What it couldn't do was say where anything is: TfL's arrivals feed carries stop IDs and names, but no coordinates. This post adds them. First a reference table with the location of every stop on every bus line, then an estimate of where each bus on line 25 actually is right now, drawn along the real road it drives on.

Read more
AI Data Platform Series: OAC MCP Server and Streaming Data

AI Data Platform Series: OAC MCP Server and Streaming Data

Asking the live data: Claude connected to Oracle Analytics Cloud through the OAC MCP server, querying the AIDP gold layer fed by live TfL streams

This is the eighth post in the AI Data Platform series. Over the last two posts, the gold layer grew three live pieces: an arrivals board for every bus stop in London, a stations reference table, and estimated positions for every bus on line 25, all queryable from Oracle Analytics Cloud. Until now, every question I asked that data was either SQL in a notebook or a workbook in OAC. This time I connected Claude to OAC through Oracle Analytics' MCP server and simply asked, in plain language, what was going on.

Read more
AI Data Platform Series: Gold Layer Arrivals Board

AI Data Platform Series: Gold Layer Arrivals Board

Gold Layer: the arrivals board, a live SQL view over tfl.silver.arrivals_silver, connected to Oracle Analytics Cloud through the Oracle AI Data Platform connection type

This is the sixth post in the AI Data Platform series, following Just Streams: Real-Time Data Pipelines on OCI (the series intro), Setting Up the AI Data Platform Environment (stage 0), OCI Streaming and the Stream Producer (stage 1), Bronze Layer: Spark Structured Streaming (stage 2), Silver Layer: Spark Structured Streaming (stage 3), and the Comparing Bronze and Silver with DBeaver detour. Silver gave me one clean, always-current row per bus, stop, line and direction. This post covers the first half of stage 4: turning that into a live arrivals board, the kind you see on a screen at a bus stop, and putting it in front of Oracle Analytics Cloud.

Read more
Why BI and DWH Are Not Just an IT Project, but a Business Investment

Why BI and DWH Are Not Just an IT Project, but a Business Investment

From fragmented data to trustworthy information and faster decisions with BI and a data warehouse

Most BI conversations start with a dashboard and end with a budget line. That's backwards. The tool you click on is only the last step in a chain — underneath it sits a data warehouse doing the unglamorous work of cleaning, reconciling, and remembering your data so the numbers on screen can actually be trusted. Treat BI as a software purchase and you'll get pretty charts nobody fully believes. Treat it as a business investment — dashboard and foundation together — and you get something people make decisions with.

Read more
AI Data Platform Series: bronze vs. silver

AI Data Platform Series: bronze vs. silver

Illustration of a beaver at a desk running DBeaver against Oracle AI Data Platform, with tfl.bronze.arrivals_bronze and tfl.silver.arrivals_silver open side by side in the SQL editor, and Bronze and Silver Delta Lake barrels flowing toward real-time TfL insights

This is a short detour in the AI Data Platform series, sitting between "Silver Layer: Spark Structured Streaming" (stage 3, link to be added once that post is live) and the upcoming gold layer post. Every table in this series so far has only ever been queried from inside an AIDP Workbench notebook. This time I wanted to connect a plain SQL client, DBeaver, straight to the cluster over JDBC, and use it to look at bronze and silver side by side: same underlying event, two very different shapes. Along the way, DBeaver's own table-metadata commands surfaced something I'd walked past without really registering back in the bronze post: both tables are already readable as Apache Iceberg tables, no extra work required.

Read more
AI Data Platform Series: Silver Layer Spark Structure Streaming

AI Data Platform Series: Silver Layer Spark Structure Streaming

Silver Layer: Spark Structured Streaming, reading the append-only tfl.bronze.arrivals_bronze Delta table, cleaning and type-casting it, keeping only the latest prediction per vehicle/stop/line/direction, and upserting the result into tfl.silver.arrivals_silver via a foreachBatch MERGE, with OCI Logging added at the batch level

This is the fifth post in the AI Data Platform series, following Just Streams: Real-Time Data Pipelines on OCI (the series intro), Setting Up the AI Data Platform Environment (stage 0), OCI Streaming and the Stream Producer (stage 1), and Bronze Layer: Spark Structured Streaming (stage 2). That last post landed every arrival prediction as-is into an append-only Delta table, tfl.bronze.arrivals_bronze. This post covers stage 3: cleaning that data up, keeping only the latest prediction per vehicle/stop/line/direction, and upserting it into a proper silver table.

Read more
AI Data Platform Series: Bronze Layer Spark Structured Streaming

AI Data Platform Series: Bronze Layer Spark Structured Streaming

Read more
AI Data Platform Series: OCI Streaming and Stream Producer

AI Data Platform Series: OCI Streaming and Stream Producer

OCI Streaming and Stream Producer — from TfL live bus arrivals through a Python stream producer on OCI Compute (filter, deduplicate, transform) into the OCI Streaming tfl-arrivals topic, feeding the AI Data Platform's Spark bronze layer next in the series

This is the first technical post in the series that opened with Just Streams: Real-Time Data Pipelines on OCI. That post walked through the whole TfL-bus-arrivals demo Sandi Holub and I gave at Make IT 2026 and UKOUG 2025. This one goes one layer down: the piece that gets live data into the platform in the first place — a small Python producer and an OCI Streaming topic.

Read more
My Presentation @ Oracle Technology Roundtable, August 2026

My Presentation @ Oracle Technology Roundtable, August 2026

Oracle Analytics & AI presentation at Oracle Technology Roundtable — Oracle Analytics Server, MCP and Oracle Private Agent Factory

On 26 August 2026 in Ljubljana, I took part in the Oracle Technology Roundtable, where I presented together with my SmartQ colleagues Mojca Gros and Grega Dvoršak.

For the event, we prepared a joint presentation titled “Oracle Analytics & AI”, with the subtitle “Oracle Private Agent Factory in Oracle Analytics Server.” The session brought together three closely related topics: the latest Oracle Analytics Server platform, the use of Model Context Protocol with OAS, and Oracle AI Database Private Agent Factory.

Read more
AI Data Platform Series

AI Data Platform Series

Oracle AI Data Platform

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.

Read more
AI Data Platform Series: Setting Up the AI Data Platform Environment

AI Data Platform Series: Setting Up the AI Data Platform Environment

Setting Oracle AI Data Platform in OCI

This post backs up a step from the rest of the AI Data Platform series. Before any bronze/silver/gold Spark job can run, or a stream producer can hand data off to something downstream, the AI Data Platform (AIDP) environment itself has to exist: a Workbench, a workspace, a catalog, compute, and a place to keep secrets. This post walks through building all of that from nothing on a brand-new OCI tenancy, using the same TfL bus-arrivals demo's naming (catalog tfl, schemas bronze/silver/gold) as the throughline.

Read more
Connecting OPAF Chat to Oracle Analytics Cloud via MCP

Connecting OPAF Chat to Oracle Analytics Cloud via MCP

OPAF Chat and Oracle Analytics Cloud via MCP

OPAF and OAC via MCP

This post explores how to connect Oracle AI Database Private Agent Factory (OPAF) with Oracle Analytics Cloud (OAC) using the Model Context Protocol (MCP). It walks through the OAuth configuration, MCP server setup, and Agent Builder flow needed to let a private OPAF agent query live, governed OAC subject areas. The result is an analytics-aware AI assistant that can discover metadata, generate Logical SQL, and answer questions using trusted enterprise data—without duplicating the semantic model or underlying data.

Read more