Add parallel event ingestion to Tinybird alongside existing Postgres/ClickHouse flow. Events are sent to both systems simultaneously via EventBatchingManager. - Add Tinybird client setup and ingest endpoint (zod-bird) - Add event mapping and send utilities with retry/error handling - Add complete Tinybird datafiles (datasources, pipes, materializations, copies, scripts) - Modify EventBatchingManager to dual-write to SQS + Tinybird - Route track events through batching manager Tinybird will silently skip if not configured (TINYBIRD_URL/TINYBIRD_TOKEN).
37 lines
1.2 KiB
Plaintext
37 lines
1.2 KiB
Plaintext
DESCRIPTION >
|
|
Simple timeseries aggregation pipe with NO grouping and NO limiting.
|
|
Fastest possible query for basic event aggregation.
|
|
|
|
TOKEN "aggregate_simple_read" READ
|
|
|
|
NODE endpoint
|
|
TYPE endpoint
|
|
SQL >
|
|
%
|
|
SELECT
|
|
{% if String(bin_size, 'day') == 'hour' %}
|
|
formatDateTime(hour, '%F %T') as period,
|
|
{% elif String(bin_size, 'day') == 'month' %}
|
|
formatDateTime(toStartOfMonth(hour, {{ String(timezone, 'UTC') }}), '%F %T') as period,
|
|
{% else %}
|
|
formatDateTime(toStartOfDay(hour, {{ String(timezone, 'UTC') }}), '%F %T') as period,
|
|
{% end %}
|
|
event_name,
|
|
sum(total_value) as total_value
|
|
FROM events_hourly_mv
|
|
WHERE
|
|
org_id = {{ String(org_id, '') }}
|
|
AND env = {{ String(env, 'test') }}
|
|
AND event_name IN {{ Array(event_names, 'String', default='[]') }}
|
|
AND hour >= toDateTime({{ String(start_date, '2024-01-01 00:00:00') }})
|
|
AND hour <= toDateTime({{ String(end_date, '2024-12-31 23:59:59') }})
|
|
{% if defined(customer_id) and String(customer_id, '') != '' %}
|
|
AND customer_id = {{ String(customer_id) }}
|
|
{% end %}
|
|
GROUP BY
|
|
period,
|
|
event_name
|
|
ORDER BY
|
|
period,
|
|
event_name
|