RSS.Social

rmoff's random ramblings

follow: @[email protected]

Posts

Materialized Tables in Apache Flink

Kicking the Tyres on Harbor for Agent Evals

Look Ma, I made a JAR! (Building a connector for Kafka Connect without knowing Java)

Interesting links - March 2026

Evaluating Claude's dbt Skills: Building an Eval from Scratch

How I do, and don't, use AI on this blog

Claude Code isn't going to replace data engineers (yet)

Claude Code in action with dbt

AI will fuck you up if you’re not on board

Interesting links - February 2026

Claude the Instructor

Ten years late to the dbt party (DuckDB edition)

Writing to Apache Iceberg on S3 using Kafka Connect with Glue catalog

Interesting links - June 2025

Writing to Apache Iceberg on S3 using Flink SQL with Glue catalog

Digging into Ducklake

Interesting links - May 2025

Exploring Joins and Changelogs in Flink SQL

🏃🚶 The unofficial Current London 2025 Run/Walk 🏃🚶

It's Time We Talked About Time: Exploring Watermarks (And More) In Flink SQL

Interesting links - April 2025

Confluent Cloud for Apache Flink - Exploring the API

Interesting links - March 2025

How to create Carousel posts in LinkedIn…without the bullshit

Building a data pipeline with DuckDB

Exporting Notebooks from DuckDB UI

Kicking the tyres on the new DuckDB UI

Creating an HTTP Source connector on Confluent Cloud from the CLI

Why is kcat showing the wrong topics?

Write more blog articles, not fewer (Don't leave the scraps on the cutting floor)

Data Wrangling with Flink SQL

Joining two streams of data with Flink SQL

How to explode nested arrays with Flink SQL

Exploring UK Environment Agency data in DuckDB and Rill

DuckDB tricks - renaming fields in a SELECT * across tables

Interesting links - February 2025

Checkpoint Chronicle - December 2024

Disabling Vale Linting Selectively in Asciidoc

Exploring Flink CDC

Streaming Data from Postgres to Snowflake with CDC and Decodable

Checkpoint Chronicle - October 2024

Why Do I Need CDC?

Checkpoint Chronicle - September 2024

Current 2024 Recap

Current 2024 - 5k Fun Run (or Walk)

Adventures with Apache Flink and Delta Lake

Declarative Resource Management for Real-time ETL with Decodable

Troubleshooting Flink SQL S3 problems

How to Migrate from Amazon MSF

Sending Data to Apache Iceberg from Apache Kafka with Apache Flink

Decodable vs. Amazon MSF: Getting Started with Flink SQL

How to get data from Apache Kafka to Apache Iceberg on S3 with Decodable

Checkpoint Chronicle - May 2024

How I Try To Keep Up With The Data Tech World (A List of Data Blogs)

ngrok DNS headaches

How to stop AWS CLI clearing the screen

Flink SQL—Misconfiguration, Misunderstanding, and Mishaps

Checkpoint Chronicle - March 2024

🏃🚶 The unofficial Kafka Summit London 2024 Run/Walk 🏃🚶

Apache Flink talks at Kafka Summit London 2024

Exploring the Flink SQL Gateway REST API

Flink SQL and the Joy of JARs

Checkpoint Chronicle - February 2024

Catalogs in Flink SQL—Hands On

Catalogs in Flink SQL—A Primer

Antora Deployment to Cloudflare Across Private Repositories with GitHub Actions

Hosting on GitHub Pages? Watch out for Subdomain Hijacking

1️⃣🐝🏎️🦆 (1BRC in SQL with DuckDB)

Deploying Antora with GitHub Actions and a private GitHub repo

Checkpoint Chronicle - December 2023

Productivity tools: AI Image Generators

Hugo not detecting changed pages on Mac

Learning Apache Flink S01E06: The Flink JDBC Driver

Checkpoint Chronicle - November 2023

Using Apache Kafka with ngrok

Learning Apache Flink S01E05: Installing PyFlink (with some bumps along the way…)

Learning Apache Flink S01E04: A [Partial] Exploration of the Flink SQL Client

Learning Apache Flink S01E03: Running my First Flink Cluster and Application

cd: string not in pwd

Learning Apache Flink S01E02: What *is* Flink?

Learning Apache Flink S01E01: Where Do I Start?

An Itch That Just Has to Be Scratched… (Or, Why Am I Joining Decodable?)

Blog Writing for Developers

What Does This DevEx Engineer Do?

Authoring Wordpress blogs in Markdown (with Google Docs for review)

Building Better Docs - Automating Jekyll Builds and Link Checking for PRs

Using Delta from pySpark - `java.lang.ClassNotFoundException: delta.DefaultSource`

Quickly Convert CSV to Parquet with DuckDB

Making the move from Alfred to Raycast

Aligning mismatched Parquet schemas in DuckDB

Looking Forwards, and Looking Backwards

Data Engineering in 2022: ELT tools

Data Engineering in 2022: Wrangling the feedback data from Current 22 with dbt

Data Engineering in 2022: Exploring dbt with DuckDB

Current 22 - Session Analysis with DuckDB and Jupyter Notebook

Data Engineering in 2022: Architectures & Terminology

Current 2022 - 5k Fun Run

Data Engineering in 2022: Exploring LakeFS with Jupyter and PySpark

Data Engineering: Resources

Data Engineering in 2022: Storage and Access

Stretching my Legs in the Data Engineering Ecosystem in 2022

Customising the fields shown in Airtable's Calendar .ics export

Inside the Sausage Factory: How we Built the Program for Current 2022

⚡️ Writing an abstract for a lightning talk ⚡️

How to Write a Good Tech Conference Abstract - Learn from the Mistakes of Others

Remote-First Developer Advocacy

Hanging up my Boarding Passes and Jetlag…for now

Using GitHub Actions to build automagic Hugo previews of draft articles

🏃🚶 The unofficial Kafka Summit London 2022 Run/Walk 🏃🚶

My Favourite Tools on the Mac (Setting up a new Mac)

Why I use Alfred App (and maybe you should too)

A bash script to deploy ksqlDB queries automagically

Loading CSV data into Confluent Cloud using the FilePulse connector

Connecting to managed ksqlDB in Confluent Cloud with REST and ksqlDB CLI

Using ksqlDB to process data ingested from ActiveMQ with Kafka Connect

Kafka Connect JDBC Sink deep-dive: Working with Primary Keys

Kafka Connect - SQLSyntaxErrorException: BLOB/TEXT column … used in key specification without a key length

Quick profiling of data in Apache Kafka using kafkacat and visidata

Using Open Sea Map data in Kibana maps

Loading delimited data into Kafka - quick & dirty (but effective)

📼 ksqlDB HOWTO - A mini video series 📼

Performing a GROUP BY on data in bash

Running as root on Docker images that don't use root

Running a self-managed Kafka Connect worker for Confluent Cloud

Creating topics with Kafka Connect

Kafka Connect - Deep Dive into Single Message Transforms

🎄 Twelve Days of SMT 🎄 - Day 12: Community Transformations

🎄 Twelve Days of SMT 🎄 - Day 11: Predicate and Filter

🎄 Twelve Days of SMT 🎄 - Day 10: ReplaceField

Scheduling Hugo Builds on GitHub pages with GitHub Actions

🎄 Twelve Days of SMT 🎄 - Day 9: Cast

🎄 Twelve Days of SMT 🎄 - Day 8: TimestampConverter

🎄 Twelve Days of SMT 🎄 - Day 7: TimestampRouter

🎄 Twelve Days of SMT 🎄 - Day 6: InsertField II

🎄 Twelve Days of SMT 🎄 - Day 5: MaskField

🎄 Twelve Days of SMT 🎄 - Day 4: RegExRouter

🎄 Twelve Days of SMT 🎄 - Day 3: Flatten

🎄 Twelve Days of SMT 🎄 - Day 2: ValueToKey and ExtractField

🎄 Twelve Days of SMT 🎄 - Day 1: InsertField (timestamp)

Life as a Developer Advocate, nine months into a pandemic

My Workstation - 2020

Keynote - Why is Replace Fonts greyed out?

Kafka Connect, ksqlDB, and Kafka Tombstone messages

Streaming Geopoint data from Kafka to Elasticsearch

ksqlDB - How to model a variable number of fields in a nested value (`STRUCT`)

Streaming XML messages from IBM MQ into Kafka into MongoDB

Ingesting XML data into Kafka - Option 3: Kafka Connect FilePulse connector

Ingesting XML data into Kafka - Option 2: Kafka Connect plus Single Message Transform

Ingesting XML data into Kafka - Option 1: The Dirty Hack

Ingesting XML data into Kafka - Introduction

`abcde` - Error trying to calculate disc ids without lead-out information

IBM MQ on Docker - Channel was blocked

Setting key value when piping from jq to kafkacat

Some of my favourite public data sets

📌 🎁 A collection of Kafka-related talks 💝

Using the Debezium MS SQL connector with ksqlDB embedded Kafka Connect

Including content from external links with Asciidoc in Hugo

What is Kafka Connect?

Counting the number of messages in a Kafka topic

Poking around the search engines in Google Chrome

🤖Building a Telegram bot with Apache Kafka, Go, and ksqlDB

Telegram bot - BOT_COMMAND_INVALID

Learning Golang (some rough notes) - S02E09 - Processing chunked responses before EOF is reached

Learning Golang (some rough notes) - S02E08 - Checking Kafka advertised.listeners with Go

Learning Golang (some rough notes) - S02E07 - Splitting Go code into separate source files and building a binary executable

Learning Golang (some rough notes) - S02E06 - Putting the Producer in a function and handling errors in a Go routine

Learning Golang (some rough notes) - S02E05 - Kafka Go AdminClient

Learning Golang (some rough notes) - S02E04 - Kafka Go Consumer (Function-based)

Learning Golang (some rough notes) - S02E03 - Kafka Go Consumer (Channel-based)

Learning Golang (some rough notes) - S02E02 - Adding error handling to the Producer

Learning Golang (some rough notes) - S02E01 - My First Kafka Go Producer

Learning Golang (some rough notes) - S02E00 - Kafka and Go

Learning Golang (some rough notes) - S01E10 - Concurrency (Web Crawler)

Why JSON isn't the same as JSON Schema in Kafka Connect converters and ksqlDB (Viewing Kafka messages bytes as hex)

Learning Golang (some rough notes) - S01E09 - Concurrency (Channels, Goroutines)

Learning Golang (some rough notes) - S01E08 - Images

Learning Golang (some rough notes) - S01E07 - Readers

Learning Golang (some rough notes) - S01E06 - Errors

Learning Golang (some rough notes) - S01E05 - Interfaces

Learning Golang (some rough notes) - S01E04 - Function Closures

Learning Golang (some rough notes) - S01E03 - Maps

Learning Golang (some rough notes) - S01E02 - Slices

Learning Golang (some rough notes) - S01E01 - Pointers

Learning Golang (some rough notes) - S01E00

How to install connector plugins in Kafka Connect

Loading CSV data into Kafka

How to list and create Kafka topics using the REST Proxy API

Working with JSON nested arrays in ksqlDB - example

Searching Alfred's Clipboard history programatically

Building a Telegram bot with Apache Kafka and ksqlDB

Add Markers list from Screenflow to Youtube Table of Contents

Using Confluent Cloud when there is no Cloud (or internet)

How to install kafkacat on Fedora

Converting from AsciiDoc to Google Docs and MS Word

A quick and dirty way to monitor data arriving on Kafka

Are Tech Conferences Dead?

Streaming Wi-Fi trace data from Raspberry Pi to Apache Kafka with Confluent Cloud

Kafka Connect JDBC Sink - setting the key field name

Adventures in the Cloud, Part 94: ECS

Primitive Keys in ksqlDB

Fantastical / Mac Calendar not showing Google Shared Calendar

Notes on getting data into InfluxDB from Kafka with Kafka Connect

Kafka Connect and Schemas

Monitoring Sonos with ksqlDB, InfluxDB, and Grafana

UnsupportedClassVersionError: `<x>` has been compiled by a more recent version of the Java Runtime

Changing the Logging Level for Kafka Connect Dynamically

How to win [or at least not suck] at the conference abstract submission game

Exploring ksqlDB window start time

Streaming messages from RabbitMQ into Kafka with Kafka Connect

Analysing network behaviour with ksqlDB and MongoDB

Detecting and Analysing SSH Attacks with ksqlDB

Copy MongoDB collections from remote to local instance

Kafka Connect - Request timed out

Using tcpdump With Docker

Common mistakes made when configuring multiple Kafka Connect workers

Streaming data from SQL Server to Kafka to Snowflake ❄️ with Kafka Connect

Running Dockerised Kafka Connect worker on GCP

Debezium & MySQL v8 : Public Key Retrieval Is Not Allowed

Using Kafka Connect and Debezium with Confluent Cloud

Skipping bad records with the Kafka Connect JDBC sink connector

Kafka Connect and Elasticsearch

Copying data between Kafka clusters with Kafkacat

Kafka Summit GoldenGate bridge run/walk

Staying sane on the road as a Developer Advocate

Where I'll be on the road for the remainder of 2019

Reset Kafka Connect Source Connector Offsets

Starting a Kafka Connect sink connector at the end of a topic

Resetting a Consumer Group in Kafka

Migrating Alfred Clipboard to New Laptop

So how DO you make those cool diagrams? July 2019 update

Taking the Vienna-Munich sleeper train

Manually delete a connector from Kafka Connect

Automatically restarting failed Kafka Connect tasks

Putting Kafka Connect passwords in a separate file / externalising secrets

Deleting a Connector in Kafka Connect without the REST API

A poor man's KSQL EXPLODE/UNNEST technique

When a Kafka Connect converter is not a _converter_

Reading Kafka Connect Offsets via the REST Proxy

Pivoting Aggregates in Ksql

Connecting KSQL to a Secured Schema Registry

Exploring KSQL Stream-Stream Joins

Terminate All KSQL Queries

Quick Thoughts on Not Making a Crap Slide Deck

Using httpie with the Kafka REST Proxy

Preparing a New Talk

Travelling for Work, with Kids at Home

Kafka Connect Change Log Level and Write Log to File

Replacing UTF8 non-breaking-space with bash/sed on the Mac

How KSQL handles case

KSQL REST API cheatsheet

Confluent Schema Registry REST API cheatsheet

What to Do When Docker on the Mac Runs Out of Space

Quick Thoughts on Not Writing a Crap Abstract

Moving from Ghost to Hugo

Pull new version of multiple Docker images

Docker Tips and Tricks with Kafka Connect, ksqlDB, and Kafka

Streaming data from Oracle into Kafka

Tools I Use: iPad Pro

So how DO you make those cool diagrams?

Get mtr working on the Mac

Kafka Connect CLI tricks

ERROR: Invalid interpolation format for "command" option in service…

Flatten CDC records in KSQL

Exploring JMX with jmxterm

Accessing Kafka Docker containers' JMX from host

Sending multiline messages to Kafka

Window Timestamps in KSQL / Integration with Elasticsearch

Where I'm speaking in the rest of 2018

Kafka Listeners - Explained

Syntax highlighting code for presentation slides

Analysing Network Data with Apache Kafka, KSQL, and Elasticsearch

Compare and apply a diff / patch recursively

Kafka Connect and Oracle data types

Stream-Table Joins in KSQL: Stream events must be timestamped after the Table messages

Quick 'n Easy Population of Realistic Test Data into Kafka

Blogging v2

Streaming Data from MongoDB into Kafka with Kafka Connect and Debezium

Cloning Ubiquiti's MongoDB instance to a separate server

Streaming Data from MySQL into Kafka with Kafka Connect and Debezium

KSQL: Topic … does not conform to the requirements

Streaming data from Kafka into Elasticsearch

Installing the Python Kafka library from Confluent - troubleshooting some silly errors…

Why Do We Need Streaming ETL?

HOWTO: Oracle GoldenGate + Apache Kafka + Schema Registry + Swingbench

Kafka - AdminClient - Connection to node -1 could not be established. Broker may not be available

Installing Oracle GoldenGate for Big Data 12.3.1 with Kafka Connect and Confluent Platform

Where will I be at OpenWorld / Oak Table World?

Apache Kafka™ talks at Oracle OpenWorld, JavaOne, and Oak Table World 2017

Oracle GoldenGate / Kafka Connect Handler troubleshooting

What is Markdown, and Why is it Awesome?

Conferences & Meetups at which I'll be speaking - 2017

Kafka Connect - JsonDeserializer with schemas.enable requires "schema" and "payload" fields

Simple export/import of Data Sources in Grafana

Linux - USB disk connection problems - uas: probe failed with error -12

Configuring Kafka Connect to log REST HTTP messages to a separate file

kafka.common.KafkaException: No key found on line 1

Keeping Up with the Deluge

Install qemu on AWS EC2 Amazon Linux

Mount VMDK/OVF/OVA on Amazon Web Services (AWS) EC2

Little Technology Wins

Time For a Change

Property Graph in Oracle 12.2

Rittman Mead at BIWA Summit 2017

HBase crash after resuming suspended VM

Kibana Timelion - Anomaly Detection

Streaming / Unbounded Data - Resources

Data Processing and Enrichment in Spark Streaming with Python and Kafka

Getting Started with Spark Streaming, Python, and Kafka

ETL Offload with Spark and Amazon EMR - Part 4 - Analysing the Data

ETL Offload with Spark and Amazon EMR - Part 5 - Summary

ETL Offload with Spark and Amazon EMR - Part 3 - Running pySpark on EMR

ETL Offload with Spark and Amazon EMR - Part 2 - Code development with Notebooks and Docker

ETL Offload with Spark and Amazon EMR - Part 1 - Introduction

Source Control and Automated Code Deployment Options for OBIEE

Enhanced Usage Tracking for OBIEE - Now Available as Open Source!

The Rittman Mead Open Source Project

kafka-avro-console-producer - Error registering Avro schema / io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException

Oracle GoldenGate -> Kafka Connect - "Failed to serialize Avro data"

Kafka Connect - java.lang.IncompatibleClassChangeError

Connecting Oracle Data Visualization Desktop to Google Analytics and Google Drive

Using SQL to Query JSON Files with Apache Drill

OBIEE, Big Data Discovery, and ODI security updates - October 2016

boto / S3 errors

Streaming data from Oracle using Oracle GoldenGate and Kafka Connect

OTN Appreciation Day : OBIEE's BI Server

POUG

All You Ever Wanted to Know About OBIEE Performance…but were too afraid to ask

Using logdump to Troubleshoot the Oracle GoldenGate for Big Data Kafka Handler

How To Poke Around OBIEE on Linux with strace (Working with Unsupported ODBC Sources in OBIEE 12c)

An Introduction to Apache Drill

Using Apache Drill with OBIEE 12c

OGG-15051 oracle.goldengate.util.GGException: Class not found: "kafkahandler"

OGG - Class not found: "com.company.kafka.CustomProducerRecord"

Kafka Connect JDBC - Oracle - Number of groups must be positive

Stream Analytics and Processing with Kafka and Oracle Stream Analytics

An Introduction to Oracle Stream Analytics

Kafka Connect - HDFS with Hive Integration - SchemaProjectorException - Schema version required

Configuring UPS/apcupsd

Using R with Jupyter Notebooks and Oracle Big Data Discovery

Spark sqlContext.read.json - java.io.IOException: No input paths specified in job

Using SparkSQL and Pandas to Import Data into Hive and Big Data Discovery

Proxmox 4 Containers - ssh - ssh_exchange_identification: read: Connection reset by peer

Reset Hue password

Apache Drill - conflicting jar problem - "No current connection"

ClassNotFoundException with MongoDB-Hadoop in Hive

Erroneous SwapFree on LXC causes problems with CDH install

Using Jupyter Notebooks with Big Data Discovery 1.2

Running Big Data Discovery Shell and Jupyter Notebook on Big Data Lite VM 4.5

Reviving a bricked EdgeRouter Lite (ERL) from a Mac

Running a Docker Container on Proxmox for BitTorrent Sync

Importing VMWare and VirtualBox VMs to Proxmox

Commissioning my Proxmox Server - OS and filesystems

A New Arrival

New version of BigDataLite VM from Oracle

OBIEE 12c blog posts

Presentation Services Logsources in OBIEE 12c

OBIEE 12c – Extended Subject Areas (XSA) and the Data Set Service

Changes in BI Server Cache Behaviour in OBIEE 12c : OBIS_REFRESH_CACHE

Lifting the Lid on OBIEE 12c Web Services - Part 2

Dynamic Naming of OBIEE 12c Service Instance Exports

OBIEE 12c - "Add Data Source" in Answers

York Fry Ups

Lifting the Lid on OBIEE 12c Web Services - Part 1

Kibana Timelion - Series Calculations - Difference from One Week Ago

OBIEE 12c hangs at startup - Starting AdminServer ...

oracle.bi.bar.exceptions.UnSupportedBarException: The Bar file provided as input is not supported in this BI Platfrom release.

OBIEE Baseline Validation Tool - Parameter 'directory' is not a directory

Under the Covers of OBIEE 12c Configuration with sysdig

Monitoring Logstash Ingest Rates with Elasticsearch, Kibana, and Timelion

Monitoring Logstash Ingest Rates with InfluxDB and Grafana

Collection of Articles on How to Write a Good Conference Abstract

Experiments with Elastic’s Graph Tool

Using R to Denormalise Data for Analysis in Kibana

OBIEE security patches, and FINAL 11.1.1.7 patchset release

Streaming Data through Oracle GoldenGate to Elasticsearch

Decoupling the Data Pipeline with Kafka - A (Very) Simple Real Life Example

Food Pr0n 02 - Devon & Dorset

New OTN Article - OBIEE Performance Analytics: Analysing the Impact of Suboptimal Design

Experiments with Kibana Timelion

Connecting to OBIEE via JDBC - with jisql

My latest IRC client : Kibana

Food Pr0n - 01

OBIEE 11.1.1.9 installation - JPS-06514: Opening of file based keystore failed

Fun and Games with Oracle GoldenGate, Kafka, and Logstash on BigDataLite 4.4

Presentation Slides… bye-bye Slideshare, hello Speakerdeck

obihackers IRC channel

Streaming data to InfluxDB from any bash command

What makes a good Full English?

Visualising OBIEE DMS Metrics over the years

OBIEE Performance - Why Metrics Matter (and…Announcing obi-metrics-agent v2!)

OBIEE 12c - Repository Password Corruption Issue

Using Linux Control Groups to Constrain Process Memory

Driving OBIEE User Engagement with Enhanced Usage Tracking for OBIEE

Forays into Kafka - Enabling Flexible Data Pipelines

Introducing the Rittman Mead OBIEE Performance Analytics Service

Forays into Kafka - Logstash transport / centralisation

Using the BI Server Metadata Web Service for Automated RPD Modifications

Managing the OBIEE BI Server Cache from ODI 12c

OBIEE BI Server Cache Management Strategies

Security patches released for OBIEE 11.1.1.7/11.1.1.9, and ODI DQ 11.1.1.3

What's New in OBIEE 11.1.1.9 for Systems Administrators and Developers

Using the ELK Stack to Analyse Donor's Choose Data

BI Forum 2015 Preview -- OBIEE Regression Testing, and Data Discovery with the ELK stack

Analysing ODI performance with Flame Graphs

Lifting the Lid on OBIEE Internals with Linux Diagnostics Tools

OBIEE nqcmd Tidbits

Instrumenting OBIEE Database Connections For Improved Performance Diagnostics

An Introduction to Analysing ODI Runtime Data Through Elasticsearch and Kibana 4

OBIEE Monitoring and Diagnostics with InfluxDB and Grafana

Concurrent RPD Development in OBIEE

Linux cluster sysadmin -- OS metric monitoring with colmux

Linux cluster sysadmin -- Parallel command execution with PDSH

Linux cluster sysadmin -- SSH keys

OBIEE SampleApp v406 Amazon EC2 AMI - available for public use

Auditing OBIEE Presentation Catalog Activity with Custom Log Filters

Analytics with Kibana and Elasticsearch through Hadoop - part 2 - Getting data into Elasticsearch

Analytics with Kibana and Elasticsearch through Hadoop - part 3 - Visualising the data in Kibana

Analytics with Kibana and Elasticsearch through Hadoop - part 1 - Introduction

Monitoring OBIEE with Elasticsearch, Logstash, and Kibana

Using rlwrap with Apache Hive beeline for improved readline functionality

First-timer tips for Oracle Open World

OBIEE SampleApp in The Cloud: Importing VirtualBox Machines to AWS EC2

SampleApp v406 - Automatic startup of OBIEE

Visual Regression Testing of OBIEE with PhantomCSS

Mobile App Designer mis-configuration error

Extended Visualisation of OBIEE Performance Data with Grafana

BI Forum 2014 preview - No Silver Bullets : OBIEE Performance in the Real World

Visualising OBIEE DMS metrics with Graphite

Built-In OBIEE Load Testing with nqcmd

Installing obi-metrics-agent, Graphite, and collectl

Introducing obi-metrics-agent - an Open-Source OBIEE Metrics Collector

Date formatting in OBIEE 11g - setting the default Locale for users

Exploring OBIEE Web Services through Python

Automated Regression Testing for OBIEE

OBIEE Regression Testing - An Introduction

Make Use of OBIEE's Command Line Tools with Reduced Exposure of Plain Text Passwords

Monitoring OBIEE Performance for the End User with JMeter from EM12c

Collecting Usage Tracking Data with Metric Extensions in EM12c

Building alerts in EM12c with OBIEE Usage Tracking data

OBIEE "Act As" (ActAs) vs "Impersonate"

Tips and Tricks for the OBIEE linux sysadmin

TimesTen and OBIEE port conflicts on Exalytics

The Rittman Mead scripts github repository

Learn OBIEE 11.1.1.7 from the experts!

Patch OBIEE the quicker way - with OPatch napply

Using OBIEE SampleApp 305 in VM Fusion

Testing aggregate navigation on OBIEE and Exalytics

Incremental refresh of Exalytics aggregates using native BI Server capabilities

Upgrading OBIEE to 11.1.1.7

Performance and OBIEE - part I - Introduction

Performance and OBIEE - part II - Test - Define

Performance and OBIEE - part III - Test - Design

Performance and OBIEE - part IV - Test - Build

Performance and OBIEE - part V - Execute and Measure

Performance and OBIEE - part VI - Analysing results

Performance and OBIEE - part VII - Optimising OBIEE performance ("Tuning")

Performance and OBIEE - Summary and FAQ

Incremental refresh of Exalytics Aggregates using TimesTen

Alternatives to the Summary Advisor for Refreshing Exalytics Aggregates

Advanced monitoring of OBIEE with Nagios

An introduction to monitoring OBIEE with Nagios

Automated Monitoring of OBIEE in the Enterprise - an overview

OBIEE / AD integration - [OBI-SEC-00022] Identity found ... but could not be authenticated

Advanced Presentation Services settings for OBIEE testing & development

OBIEE / FMW and networking on DHCP hosts

Exalytics - TimesTen and OBIEE connectivity

OBIEE 11.1.1.6.2 BP1 - Logical SQL Diagnostic view

Applying patches to OBIEE : 11.1.1.6.2 BP1

Downloading OBIEE patches from Oracle with wget

Running the RCU from the commandline

OBIEE Administration Tool - Import Metadata shows no schemas

OBIEE performance tuning myth : BI Server logging

Public training schedule for 2012-H2 announced

screen and OBIEE

RittmanMead Webinar Series 2012

New Training Courses and Seminars from Rittman Mead

Configuring OBI 11g to use port 80

Scripted OBI 11g Linux startup/shutdown

Event Triggers in BI Publisher 11g

Blogging

Accessing BI Publisher 11g Web Services through a JDeveloper Web Service Proxy

Calling BI Publisher 11g Web Services from BPEL

Web Services in BI Publisher 11g

Instrumenting OBIEE - the final chapter

OBI 11g : UPGAST-00055: error reading the Oracle Universal Installer inventory

Oracle - tnsping - Message 3513 not found; product=NETWORK; facility=TNS

Sourcecode markup tweaks in Wordpress

Friday miscellany

DBMS_STATS - GATHER AUTO

Using preupgrade to upgrade Fedora 14 to Fedora 15 - proxy errors

Labelling Time axes in Excel

A quotation to print out and stick on your wall

New blog from Oracle - OBI Product Assurance

Did you hear that thunk? That was me falling off my chair in shock

Have you defined CLIENT_ID in OBIEE yet?

OBIEE 10.1.3.4.2 released

OBIEE 10.1.3.4.2 released

ODI 10g connectivity problem with OCI

Security issue on OBIEE 10.1.3.4.1, 11.1.1.3

Security issue on OBIEE 10.1.3.4.1, 11.1.1.3

Undocumented nqcmd parameters

Oracle 11g - How to force a sql_id to use a plan_hash_value using SQL Baselines

Global statistics high/low values when using DBMS_STATS.COPY_TABLE_STATS

Global statistics high/low values when using DBMS_STATS.COPY_TABLE_STATS

Data Warehousing and Statistics in Oracle 11g - Automatic Optimizer Statistics Collection

OBIEE performance - get your database sweating

Entertaining Exadata FUD from HP

Oracle documentation - available on Kindle and iPad

Oracle XE 11gR2 installation - "OracleXEService should not be installed already"

Getting good quality I/O throughput data

Getting good quality I/O throughput data

Comparing methods for recording I/O - V$SYSSTAT vs HP Measureware

Comparing methods for recording I/O - V$SYSSTAT vs HP Measureware

OBIEE Systems Management - dodgy counter behaviour

Shiny new geek toys -- rrdtool and screen

Shiny new geek toys -- rrdtool and screen

Changing LDAP settings in an OBIEE RPD with UDML

Instrumenting OBIEE for tracing Oracle DB calls

Materialised Views - PCT Partition Truncation

Oracle Whitepaper - "Best Practices for a Data Warehouse on Oracle Database 11g"

Data Warehousing and Statistics in Oracle 11g - incremental global statistics

Adding OBIEE monitoring graphs into OAS

Charting OBIEE performance data with gnuplot

Collecting OBIEE systems management data with jmx

OBIEE monitoring

OBIEE 10g - javahost hang

Troubleshooting OBIEE - LDAP (ADSI) authentication

A Poor Man's OBIEE EM/BI Management Pack

A Poor Man's OBIEE EM/BI Management Pack

Analysing ODI batch performance

Does this summarise your system development &amp; support ethos?

Two excellent OBI presentations from Jeff McQuigg

Does this summarise your system development & support ethos?

Graphing I/O data using gnuplot and Oracle V$SYSSTAT

Graphing I/O data using gnuplot and Oracle V$SYSSTAT

awk - split a fixed width file into separate files named on content

When is a bug not a bug? When it's a "design decision"

A good maxim to bear in mind when designing reports

Better safe than sorry...sanitising DB input

Better safe than sorry...sanitising DB input

TortoiseSVN doesn't prompt for authentication

The danger of averages - Measuring I/O throughput

The danger of averages - Measuring I/O throughput

RTFM? But where TF is the FM? &gt;&gt; Offline searchable OBIEE 11g documentation

RTFM? But where TF is the FM? >> Offline searchable OBIEE 11g documentation

A fair bite of the CPU pie? Monitoring &amp; Testing Oracle Resource Manager

A fair bite of the CPU pie? Monitoring & Testing Oracle Resource Manager

Misbehaving Informatica kills Oracle

BI Publisher - error creating Quartz tables

Measuring real user response times for OBIEE

Scripts to extract information from OBIEE NQQuery.log

Scripts to extract information from OBIEE NQQuery.log

OBIEE 11g launch date - 7th July 2010

Performance Testing and OBIEE

My first presentation - afterthoughts

RittmanMead BI Forum 2010

Validating EBS-BI authentication, without BI

What am I missing here??? ORA-01017: invalid username/password; logon denied

What am I missing here??? ORA-01017: invalid username/password; logon denied

RTFAL!

Opera + Oracle EM = true love

Opera + Oracle EM = true love

My first presentation - help!

OBIEE 11g tidbit - XUDML support

ORA-13757: "SQL Tuning Set" "string" owned by user "string" is active.

ORA-13757: "SQL Tuning Set" "string" owned by user "string" is active.

Securing OBIEE Systems Management JMX for remote access

Who's been at the cookie jar? EBS-BI authentication and Load Balancers

OBIA 7.9.6 Performance Recommendations

OBIA 7.9.6 Performance Recommendations

Oracle Support Blog back online, kinda.

Oracle Support Blog back online, kinda.

Oracle Support blog no more

Exadata V2 POC numbers

Illustrating data

Illustrating data

Brilliant performance articles by Cary Millsap

Identify your OBIEE users by setting Client ID in Oracle connection

Identify your OBIEE users by setting Client ID in Oracle connection

How to resolve "[nQSError: 12002] Socket communication error at call=: (Number=-1) Unknown"

Hardening OAS

libnnz10.so: cannot restore segment prot after reloc: Permission denied

libnnz10.so: cannot restore segment prot after reloc: Permission denied

Running the OBIEE admin tool on Unix

CAF

Troubleshooting Presentation Services / analytics connectivity

Troubleshooting Presentation Services / analytics connectivity

UKOUG TEBS 2009

I think this summarises everything.

I think this summarises everything.

OBIEE application servers, now and future

SoOotW and sweep

Resolved: sawserver : Error loading security privilege /system/privs/catalog/ChangePermissionsPrivilege

Resolved: sawserver : Error loading security privilege /system/privs/catalog/ChangePermissionsPrivilege

Deploying Oracle Business Intelligence Enterprise Edition on Sun Systems

#Fail: My Oracle Support

#Fail: My Oracle Support

OBIEE clustering - specifying multiple Presentation Services from Presentation Services Plug-in

OBIEE clustering - specifying multiple Presentation Services from Presentation Services Plug-in

Advanced Googling for OBIEE information

CAF installation video

Experts

The state of OBIEE on the web

The mind boggles...

The mind boggles...

Troubleshooting OBIEE and ORA-12154: TNS:could not resolve the connect identifier

Critical Patch Update - OBIEE vuln CVE-2009-1990

OTN forum - "Pro"

Critical Patch Update - OBIEE vuln CVE-2009-1990

New OBIEE blogs

BI Server hung - nQSError 14054 / 15001 / 23005

Heads up - Critical Patch Update affecting OBIEE

BI Server hung - nQSError 14054 / 15001 / 23005

Heads up - Critical Patch Update affecting OBIEE

New OBIEE benchmark - 50,000 users

OBIA 7.9.6.1 released

OBIA 7.9.6.1 released

Usage Tracking - only half the story ...

Usage Tracking - only half the story ...

OBIEE and HP Performance Center (a.k.a. LoadRunner) - Notes

Performance testing OBIEE using HP Performance Center (a.k.a. LoadRunner)

OBIEE and HP Performance Center (a.k.a. LoadRunner) - Notes

Performance testing OBIEE using HP Performance Center (a.k.a. LoadRunner)

James Morle : Spotting the Red Flags (Part 1 of n)

SQL Developer v2.1 Early Adopter released

SQL Developer v2.1 Early Adopter released

Changing password on Oracle 11g from 10g clients (ORA-28001 -&gt; ORA-01017)

Changing password on Oracle 11g from 10g clients (ORA-28001 -> ORA-01017)

Collated OBIEE benchmarks

OBIEE benchmarks

OBIEE cluster controller failover in action

OBIEE on Opera 10 / IE 7 / FF 3.5 / Chrome 4

OBIEE on Opera 10 / IE 7 / FF 3.5 / Chrome 4

Syntax for AdminTool.exe command line script

Syntax for AdminTool.exe command line script

AdminTool.exe /command

AdminTool.exe /command

Metalink 3 followup

RSS feeds for OBIEE, including del.icio.us obiee tags

RSS feeds for OBIEE, including del.icio.us obiee tags

CAF troubles

Metalink 3 RIP

Multiple RPDs on one server - Part 1 - the BI Server

Multiple RPDs on one server - Part 2 - Presentation Services

OBIEE error/message code reference

Tech Support Cheat Sheet [xkcd.com]

OBIEE error/message code reference

Tech Support Cheat Sheet [xkcd.com]

OBIEE and Load Runner - part 2

Querying SQL Server from OBIEE running on Unix

Do you mean (pt II)

Logging specific types of sawserver activity

OBIEE and Load Runner - part 1

sawserver log - short format

OTN forums - different URL to get prompted to login less often

Unix script to report on OBIEE and OBIA processes state

OBIA upgrade 7.9.5 to 7.9.6 - first thoughts

OBIA upgrade 7.9.5 to 7.9.6 - first thoughts

Repository Error ([REP_51821] Failed to connect from Integration Service (pmserver) to repository Oracle_BI_DW_Base running in exclusive mode.)

Repository Error ([REP_51821] Failed to connect from Integration Service (pmserver) to repository Oracle_BI_DW_Base running in exclusive mode.)

Clean install of OAS - Enterprise Manager not available

Google vs Bing

OBIA grumble

What is OBIA...

What is OBIA...

OBIEE performance monitoring and alerting with jManage

OBIEE performance monitoring and alerting with jManage

How to find out what web application server is in use

Maker's Schedule, Manager's Schedule

ORA-00922: missing or invalid option

Metalink 3 - Do You Mean ... ?

OBIEE Windows PerfMon counters

Metalink 3 - Do You Mean ... ?

Mark Rittman's OBIEE repository for DAC

psservice - Windows command line goodness!

sawserver charts crash

sawserver logging configuration - logconfig.xml

sawserver logging configuration - logconfig.xml

Oracle BI Management / Systems Management MBeans

Oracle BI Management / Systems Management MBeans

JConsole / JMX - followup

OBIEE admin tools &amp; hacks

OTN forum rant

OBIEE admin tools &amp; hacks

JConsole / JMX - followup

JConsole / JMX

JConsole / JMX

nqcmd and [nQSError: 27005] Unresolved column

Custom HTTP error page in OBIEE / OAS

Custom HTTP error page in OBIEE / OAS

New releases

OBIEE and F5 BIG-IP

Google and Korean OTN forums

OAS bug 7132128 - Send notification: oracle.ons.Notification

OAS makes you log in twice

OAS bug 7132128 - Send notification: oracle.ons.Notification

sawserver won't start up - resolved

Troubleshooting an HPUX program

Bug in Clustered Publisher Scheduler - ClusterManager: detected 1 failed or restarted instances

sawserver won't start (analytics: Servlet error java.net.ConnectException: Connection refused (errno:239))

sawserver won't start (analytics: Servlet error java.net.ConnectException: Connection refused (errno:239))

ODI Server install - missing odiparams.sh file

Remove windows line feed characters in vi

ODI Server install - missing odiparams.sh file

ORA-12537 / ORA-12518 [Informatica DAC error CMN_1022]

ORA-12537 / ORA-12518 [Informatica DAC error CMN_1022]

Clustering Publisher - Scheduler and Report Repository

Firefox add-ins - ones I find useful

Metalink Metalink Metalink

Which jdbc driver to use

Finding config files in unix

OBIEE Publisher - configuring connection to clustered BI Server

About Me

Search

Talks

Talks

Interesting links - September 2025

Stumbling into AI: Part 4—Terminology Tidy-up (and a little rant)

Stumbling into AI: Part 3—RAG

Stumbling into AI: Part 2—Models

Stumbling into AI: Part 1—MCP

Interesting links - August 2025

Kafka to Iceberg - Exploring the Options

Connecting Apache Flink SQL to Confluent Cloud Kafka broker

Interesting links - July 2025

Keeping your Data Lakehouse in Order: Table Maintenance in Apache Iceberg

Stumbling into AI: Part 5—Agents

Blog Writing for Developers - slides

Interesting links - October 2025

Tech Radar (Nov 2025) - data blips

How we built the demo for the Current NOLA Day 2 keynote using Flink and AI

I've been thinking about Agents and MCP all wrong

Stumbling into AI: Part 6—I've been thinking about Agents and MCP all wrong

(AI) Smells on Medium

Interesting links - November 2025

Using Graph Analysis with Neo4j to Spot Astroturfing on Reddit

Interesting links - December 2025

A love letter to Raycast ❤️

Alternatives to MinIO for single-node local S3

Interesting links - January 2026

Interacting with Developers on Reddit

Reflections of a Developer on LLMs in January 2026

Cosplaying as a webdev with Claude Code in January 2026