Ir al contenido

Conector SQL

El conector SQL escribe datos en bases de datos relacionales.

Tipo de Conector: SqlWriter

Bases de Datos Soportadas:

  • 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: Cadena de conexión específica de la base de datos
  • driver: Driver de base de datos (mysql, postgres, sqlserver)
  • table: Nombre de la tabla de destino
  • writeAction: Operación de escritura (Insert, Update, Upsert)
  • mode: Modo de mapeo (ColumnMapping)
  • columns: Mapear claves de carga a columnas de base de datos

Agregar nuevas filas:

{
"writeAction": "Insert"
}

Actualizar filas existentes (requiere condición WHERE):

{
"writeAction": "Update"
}

Insertar o actualizar si existe:

{
"writeAction": "Upsert"
}

Mapear claves de carga de Meddle a columnas de base de datos:

{
"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

Caso de Uso: Registro de Datos de Producción

Sección titulada «Caso de Uso: Registro de Datos de Producción»
{
"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 índices apropiados en columnas consultadas frecuentemente
  2. Usa Upsert para operaciones idempotentes
  3. Asegúrate de que el esquema de la tabla coincida con los mapeos de columnas
  4. Usa connection pooling para escenarios de alto rendimiento
  5. Monitorea el rendimiento de la base de datos y tiempos de ejecución de consultas
  • Verifica el formato de la cadena de conexión
  • Verifica que el servidor de base de datos esté funcionando
  • Verifica las credenciales
  • Verifica las reglas del firewall
  • Asegúrate de que los nombres de columnas en el mapeo coincidan con el esquema de la base de datos
  • Verifica que la tabla exista
  • Verifica la sensibilidad a mayúsculas/minúsculas
  • InfluxDB - Alternativa de series temporales
  • MongoDB - Alternativa NoSQL
  • Reshape - Transformar datos antes de escribir