Zum Inhalt springen

SQL-Konnektor

Der SQL-Konnektor schreibt Daten in relationale Datenbanken.

Konnektor-Typ: SqlWriter

Unterstützte Datenbanken:

  • 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: Datenbankspezifische Verbindungszeichenfolge
  • driver: Datenbanktreiber (mysql, postgres, sqlserver)
  • table: Zieltabellenname
  • writeAction: Schreiboperation (Insert, Update, Upsert)
  • mode: Zuordnungsmodus (ColumnMapping)
  • columns: Zuordnung von Payload-Schlüsseln zu Datenbankspalten

Neue Zeilen hinzufügen:

{
"writeAction": "Insert"
}

Vorhandene Zeilen aktualisieren (erfordert WHERE-Bedingung):

{
"writeAction": "Update"
}

Einfügen oder aktualisieren, falls vorhanden:

{
"writeAction": "Upsert"
}

Meddle-Payload-Schlüssel zu Datenbankspalten zuordnen:

{
"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. Geeignete Indizes für häufig abgefragte Spalten erstellen
  2. Upsert für idempotente Operationen verwenden
  3. Sicherstellen, dass Tabellenschema mit Spaltenzuordnungen übereinstimmt
  4. Connection Pooling für Hochdurchsatz-Szenarien verwenden
  5. Datenbankleistung und Abfrageausführungszeiten überwachen
  • Verbindungszeichenfolgen-Format überprüfen
  • Sicherstellen, dass Datenbankserver läuft
  • Anmeldeinformationen überprüfen
  • Firewall-Regeln überprüfen
  • Sicherstellen, dass Spaltennamen in der Zuordnung mit Datenbankschema übereinstimmen
  • Überprüfen, dass Tabelle existiert
  • Groß-/Kleinschreibung überprüfen
  • InfluxDB - Zeitreihen-Alternative
  • MongoDB - NoSQL-Alternative
  • Reshape - Daten vor dem Schreiben transformieren