KafkaIQ

10.6.2 – Transformations & Filters

Module: Section 10 – Kafka Ecosystem & Tools
Section: 10.6 – Querying & Processing with ksqlDB
Goal: Master SELECT, WHERE, and transformation functions in ksqlDB


SELECT Projections

-- All columns
SELECT * FROM orders EMIT CHANGES;

-- Specific columns
SELECT order_id, amount, user_id FROM orders EMIT CHANGES;

-- Column aliasing
SELECT 
  order_id AS id,
  amount * 1.1 AS amount_with_tax
FROM orders EMIT CHANGES;

WHERE Filtering

-- Simple filter
SELECT * FROM orders
WHERE amount > 100
EMIT CHANGES;

-- Multiple conditions
SELECT * FROM orders
WHERE amount > 100 AND status = 'COMPLETED'
EMIT CHANGES;

-- IN clause
SELECT * FROM orders
WHERE status IN ('PENDING', 'PROCESSING')
EMIT CHANGES;

String Functions

SELECT
  UCASE(username) AS username_upper,
  LCASE(email) AS email_lower,
  CONCAT(first_name, ' ', last_name) AS full_name,
  SUBSTRING(phone, 1, 3) AS area_code
FROM users EMIT CHANGES;

Mathematical Operations

SELECT
  price * quantity AS total,
  price * 0.9 AS discounted_price,
  ROUND(amount, 2) AS rounded_amount,
  ABS(balance) AS absolute_balance
FROM orders EMIT CHANGES;

Type Casting

SELECT
  CAST(user_id AS VARCHAR) AS user_id_string,
  CAST(amount AS INT) AS amount_int,
  CAST(timestamp AS BIGINT) AS timestamp_ms
FROM orders EMIT CHANGES;

Key Takeaways

  1. SELECT: Project specific columns
  2. WHERE: Filter rows
  3. Functions: String, math, type casting
  4. EMIT CHANGES: Continuous query

What's Next?

Next Module: 10.6.3 – Aggregations & Windows