feat(cdc): app-level Cassandra+Neo4j change events to Kafka (->S3) on generate
This commit is contained in:
@@ -9,6 +9,13 @@ import random
|
||||
from datetime import datetime, timedelta
|
||||
import uuid
|
||||
import sys
|
||||
import os
|
||||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||||
try:
|
||||
from cdc_emit import emit_changes
|
||||
except Exception:
|
||||
def emit_changes(*a, **k):
|
||||
return 0
|
||||
|
||||
# Database connection details
|
||||
DB_HOST = "10.0.21.51"
|
||||
@@ -57,12 +64,25 @@ def main():
|
||||
)
|
||||
|
||||
total_generated = 0
|
||||
cdc_buffer = []
|
||||
CDC_TOPIC = "cassandra_telemetry.cdc.device_metrics"
|
||||
for i in range(TARGET_ROWS):
|
||||
session.execute(insert_stmt, generate_fake_device_metric())
|
||||
row = generate_fake_device_metric()
|
||||
session.execute(insert_stmt, row)
|
||||
total_generated += 1
|
||||
cdc_buffer.append({
|
||||
"device_id": row[0], "metric_ts": row[1], "metric_type": row[2],
|
||||
"metric_value": row[3], "payload": row[4],
|
||||
})
|
||||
if len(cdc_buffer) >= 1000:
|
||||
emit_changes(CDC_TOPIC, "telemetry", "device_metrics", cdc_buffer)
|
||||
cdc_buffer = []
|
||||
if total_generated % 1000 == 0:
|
||||
print(f"Generated {total_generated} rows...")
|
||||
|
||||
if cdc_buffer:
|
||||
emit_changes(CDC_TOPIC, "telemetry", "device_metrics", cdc_buffer)
|
||||
|
||||
session.shutdown()
|
||||
cluster.shutdown()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user