Salta ai contenuti

Connettore SQL

Il connettore SQL scrive dati su database relazionali.

Tipo Connettore: SqlWriter

Database Supportati:

  • MySQL
  • PostgreSQL
  • SQL Server (MSSQL)
{
"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"
}
}
}
{
"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"
}
}
}
{
"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"
}
}
}
  • 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

Aggiungi nuove righe:

{
"writeAction": "Insert"
}

Aggiorna righe esistenti (richiede condizione WHERE):

{
"writeAction": "Update"
}

Inserisci o aggiorna se esiste:

{
"writeAction": "Upsert"
}

Mappa chiavi payload Meddle a colonne database:

{
"columns": {
"payload_key": "database_column",
"temperature": "temp_celsius",
"pressure": "pressure_bar",
"timestamp": "recorded_at"
}
}
user:password@tcp(host:port)/database?param=value
host=localhost port=5432 user=user password=pass dbname=db sslmode=disable
sqlserver://user:pass@host:port?database=db&param=value
{
"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"
}
}
}
  1. Crea indici appropriati su colonne frequentemente interrogate
  2. Usa Upsert per operazioni idempotenti
  3. Assicurati che lo schema tabella corrisponda alle mappature colonne
  4. Usa connection pooling per scenari ad alto throughput
  5. Monitora prestazioni database e tempi esecuzione query
  • Verifica formato stringa di connessione
  • Controlla che il server database sia in esecuzione
  • Verifica credenziali
  • Controlla regole firewall
  • Assicurati che i nomi colonne nella mappatura corrispondano allo schema database
  • Controlla che la tabella esista
  • Verifica case sensitivity
  • InfluxDB - Alternativa time-series
  • MongoDB - Alternativa NoSQL
  • Reshape - Trasforma dati prima della scrittura