Step 4: Create the event producer script

Teradata Developer Guides

ft:locale
en-US
ft:lastEdition
2026-08-18

Create a file named producer.py:

import redis
import time
from datetime import datetime

# Connect to Redis
r = redis.Redis(host='localhost', port=6379, decode_responses=True)

# Event stream name
STREAM_KEY = "events:stream"

# Sample events to simulate
events = [
    {"event_type": "user_signup", "user_id": 101, "country": "US"},
    {"event_type": "user_login", "user_id": 102, "country": "CA"},
    {"event_type": "purchase", "user_id": 103, "country": "GB"},
    {"event_type": "user_logout", "user_id": 101, "country": "US"},
    {"event_type": "purchase", "user_id": 104, "country": "DE"},
]

print("Redis Event Producer")
print("=" * 50)
print(f"Publishing events to stream: {STREAM_KEY}")
print()

# Publish events
for idx, event in enumerate(events, 1):
    event_data = {
        "event_id": idx,
        "event_type": event["event_type"],
        "user_id": event["user_id"],
        "event_timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
        "country": event["country"],
    }

    # Add to Redis stream
    stream_id = r.xadd(STREAM_KEY, event_data)

    print(f"✓ Event {idx}: {event['event_type']} (user={event['user_id']}, id={stream_id})")
    time.sleep(0.5)  # Small delay between events

print()
print(f"✓ {len(events)} events published to Redis stream")