Connettore SQL
Panoramica
Sezione intitolata “Panoramica”Il connettore SQL scrive dati su database relazionali.
Tipo Connettore: SqlWriter
Database Supportati:
- MySQL
- PostgreSQL
- SQL Server (MSSQL)
Configurazione
Sezione intitolata “Configurazione”{ "type": "SqlWriter", "config": { "connectionString": "user:password@tcp(localhost:3306)/database_name", "driver": "mysql", "table": "sensor_data", "writeAction": "Insert", "mode": "ColumnMapping", "columns": { "temperature": "temp_column", "pressure": "press_column", "timestamp": "ts_column" } }}PostgreSQL
Sezione intitolata “PostgreSQL”{ "type": "SqlWriter", "config": { "connectionString": "host=localhost port=5432 user=postgres password=pass dbname=mydb sslmode=disable", "driver": "postgres", "table": "measurements", "writeAction": "Insert", "mode": "ColumnMapping", "columns": { "temperature": "temperature", "humidity": "humidity" } }}SQL Server
Sezione intitolata “SQL Server”{ "type": "SqlWriter", "config": { "connectionString": "sqlserver://user:pass@localhost:1433?database=mydb", "driver": "sqlserver", "table": "sensor_readings", "writeAction": "Upsert", "mode": "ColumnMapping", "columns": { "sensor_id": "id", "value": "reading_value" } }}Parametri di Configurazione
Sezione intitolata “Parametri di Configurazione”- connectionString: Stringa di connessione specifica del database
- driver: Driver database (
mysql,postgres,sqlserver) - table: Nome tabella di destinazione
- writeAction: Operazione di scrittura (
Insert,Update,Upsert) - mode: Modalità mappatura (
ColumnMapping) - columns: Mappa chiavi payload a colonne database
Azioni di Scrittura
Sezione intitolata “Azioni di Scrittura”Aggiungi nuove righe:
{ "writeAction": "Insert"}Aggiorna righe esistenti (richiede condizione WHERE):
{ "writeAction": "Update"}Inserisci o aggiorna se esiste:
{ "writeAction": "Upsert"}Mappatura Colonne
Sezione intitolata “Mappatura Colonne”Mappa chiavi payload Meddle a colonne database:
{ "columns": { "payload_key": "database_column", "temperature": "temp_celsius", "pressure": "pressure_bar", "timestamp": "recorded_at" }}Stringhe di Connessione
Sezione intitolata “Stringhe di Connessione”user:password@tcp(host:port)/database?param=valuePostgreSQL
Sezione intitolata “PostgreSQL”host=localhost port=5432 user=user password=pass dbname=db sslmode=disableSQL Server
Sezione intitolata “SQL Server”sqlserver://user:pass@host:port?database=db¶m=valueCaso d’Uso: Logging Dati Produzione
Sezione intitolata “Caso d’Uso: Logging Dati Produzione”{ "type": "SqlWriter", "config": { "connectionString": "user:pass@tcp(mysql.local:3306)/production", "driver": "mysql", "table": "machine_logs", "writeAction": "Insert", "mode": "ColumnMapping", "columns": { "machine_id": "machine_id", "temperature": "temperature", "speed": "rpm", "status": "operational_status", "timestamp": "log_time" } }}Best Practice
Sezione intitolata “Best Practice”- Crea indici appropriati su colonne frequentemente interrogate
- Usa
Upsertper operazioni idempotenti - Assicurati che lo schema tabella corrisponda alle mappature colonne
- Usa connection pooling per scenari ad alto throughput
- Monitora prestazioni database e tempi esecuzione query
Risoluzione dei Problemi
Sezione intitolata “Risoluzione dei Problemi”Connessione Fallita
Sezione intitolata “Connessione Fallita”- Verifica formato stringa di connessione
- Controlla che il server database sia in esecuzione
- Verifica credenziali
- Controlla regole firewall
Colonna Non Trovata
Sezione intitolata “Colonna Non Trovata”- Assicurati che i nomi colonne nella mappatura corrispondano allo schema database
- Controlla che la tabella esista
- Verifica case sensitivity