feat(go): remove mysql realtime kv
This commit is contained in:
@@ -111,9 +111,6 @@ func (w *SnapshotWriter) EnsureSchema(ctx context.Context) error {
|
||||
if _, err := w.exec.ExecContext(ctx, realtimeLocationTableSQL); err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err := w.exec.ExecContext(ctx, realtimeKVTableSQL); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -152,9 +149,6 @@ func (w *SnapshotWriter) Update(ctx context.Context, env envelope.FrameEnvelope)
|
||||
); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := w.upsertKV(ctx, env, parsed); err != nil {
|
||||
return err
|
||||
}
|
||||
location, ok := realtimeLocationFromEnvelope(env, vin, plate)
|
||||
if !ok {
|
||||
return nil
|
||||
@@ -196,31 +190,6 @@ func (w *SnapshotWriter) parsedForEnvelope(ctx context.Context, env envelope.Fra
|
||||
return parsed, nil
|
||||
}
|
||||
|
||||
func (w *SnapshotWriter) upsertKV(ctx context.Context, env envelope.FrameEnvelope, parsed map[string]any) error {
|
||||
rows := realtimeKVFields(env, parsed)
|
||||
if len(rows) == 0 {
|
||||
return nil
|
||||
}
|
||||
placeholders := make([]string, 0, len(rows))
|
||||
args := make([]any, 0, len(rows)*9)
|
||||
for _, row := range rows {
|
||||
placeholders = append(placeholders, "(?, ?, ?, ?, ?, ?, ?, ?, ?)")
|
||||
args = append(args,
|
||||
string(row.Protocol),
|
||||
row.VIN,
|
||||
row.Domain,
|
||||
row.Field,
|
||||
row.Value,
|
||||
row.ValueType,
|
||||
nullableTime(row.EventTimeMS),
|
||||
nullableTime(row.ReceivedAtMS),
|
||||
row.EventID,
|
||||
)
|
||||
}
|
||||
_, err := w.exec.ExecContext(ctx, upsertRealtimeKVSQLPrefix+strings.Join(placeholders, ",")+upsertRealtimeKVSQLSuffix, args...)
|
||||
return err
|
||||
}
|
||||
|
||||
func platformNameFromEnvelope(env envelope.FrameEnvelope) string {
|
||||
if env.Fields != nil {
|
||||
if value := strings.TrimSpace(stringValue(env.Fields["platform_account"])); value != "" {
|
||||
@@ -533,37 +502,6 @@ const realtimeLocationTableSQL = `CREATE TABLE IF NOT EXISTS vehicle_realtime_lo
|
||||
KEY idx_protocol_updated (protocol, updated_at)
|
||||
)`
|
||||
|
||||
const realtimeKVTableSQL = `CREATE TABLE IF NOT EXISTS vehicle_realtime_kv (
|
||||
protocol VARCHAR(32) NOT NULL,
|
||||
vin VARCHAR(32) NOT NULL,
|
||||
domain_name VARCHAR(64) NOT NULL,
|
||||
field_name VARCHAR(160) NOT NULL,
|
||||
field_value TEXT NULL,
|
||||
value_type VARCHAR(16) NOT NULL DEFAULT '',
|
||||
event_time DATETIME(3) NULL,
|
||||
received_at DATETIME(3) NULL,
|
||||
event_id VARCHAR(64) NOT NULL DEFAULT '',
|
||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (protocol, vin, domain_name, field_name),
|
||||
KEY idx_vin_domain (vin, domain_name),
|
||||
KEY idx_protocol_domain (protocol, domain_name)
|
||||
)`
|
||||
|
||||
const upsertRealtimeKVSQLPrefix = `
|
||||
INSERT INTO vehicle_realtime_kv
|
||||
(protocol, vin, domain_name, field_name, field_value, value_type, event_time, received_at, event_id)
|
||||
VALUES `
|
||||
|
||||
const upsertRealtimeKVSQLSuffix = `
|
||||
ON DUPLICATE KEY UPDATE
|
||||
field_value = IF(VALUES(event_time) IS NOT NULL AND (vehicle_realtime_kv.event_time IS NULL OR VALUES(event_time) >= vehicle_realtime_kv.event_time), VALUES(field_value), field_value),
|
||||
value_type = IF(VALUES(event_time) IS NOT NULL AND (vehicle_realtime_kv.event_time IS NULL OR VALUES(event_time) >= vehicle_realtime_kv.event_time), VALUES(value_type), value_type),
|
||||
event_time = IF(VALUES(event_time) IS NOT NULL AND (vehicle_realtime_kv.event_time IS NULL OR VALUES(event_time) >= vehicle_realtime_kv.event_time), VALUES(event_time), event_time),
|
||||
received_at = IF(VALUES(event_time) IS NOT NULL AND (vehicle_realtime_kv.event_time IS NULL OR VALUES(event_time) >= vehicle_realtime_kv.event_time), VALUES(received_at), received_at),
|
||||
event_id = IF(VALUES(event_time) IS NOT NULL AND (vehicle_realtime_kv.event_time IS NULL OR VALUES(event_time) >= vehicle_realtime_kv.event_time), VALUES(event_id), event_id),
|
||||
updated_at = IF(VALUES(event_time) IS NOT NULL AND (vehicle_realtime_kv.event_time IS NULL OR VALUES(event_time) >= vehicle_realtime_kv.event_time), CURRENT_TIMESTAMP, updated_at)
|
||||
`
|
||||
|
||||
const upsertRealtimeLocationSQL = `
|
||||
INSERT INTO vehicle_realtime_location
|
||||
(protocol, vin, plate, event_time, latitude, longitude, speed_kmh, total_mileage_km,
|
||||
|
||||
Reference in New Issue
Block a user