SQL

Permite a configuração de um banco SQL que receberá as mensagens trafegadas.

Parâmetros

Parâmetros aceitos para esse tipo de sindicância de destino:

Campo
Descrição
Valor

sql.driver

Driver do banco SQL

Tipo: enum[mysql postgres mssql] Obrigatório

sql.uri

URI de conexão com o banco SQL

Tipo: string Obrigatório

sql.table

Tabela no banco

Tipo: object Obrigatório

sql.table.schema

Nome do schema

Tipo: string Obrigatório

sql.table.name

Nome da tabela

Tipo: string Obrigatório

sql.mssql

Configurações do banco MSSQL (SQL Server)

Tipo: object

sql.mssql.data_types

Tipos das colunas da tabela

Tipo: list Opcional

sql.mssql.data_types[].name

Nome da coluna

Tipo: string Obrigatório

sql.mssql.data_types[].type

Tipo da coluna

Tipo: enum[NVARCHAR VARCHAR BIGINT FLOAT DATE DATETIME DATETIME_OFFSET] Obrigatório

sql.mssql.data_types[].date

Configuração do tipo date

Tipo: string Obrigatório se type = DATE

sql.mssql.data_types[].date.format

Formato da data conforme a documentação

Tipo: string Obrigatório Exemplo: 2006-01-02

sql.mssql.data_types[].datetime

Configuração do tipo datetime

Tipo: string Obrigatório se type = DATETIME

sql.mssql.data_types[].datetime.format

Formato da data conforme a documentação

Tipo: string Obrigatório Exemplo: 2006-01-02T15:04:05Z07:00

sql.mssql.data_types[].datetime_offset

Configuração do tipo datetimeoffset

Tipo: string Obrigatório se type = DATETIME_OFFSET

sql.mssql.data_types[].datetime_offset.format

Formato da data conforme a documentação

Tipo: string Obrigatório Exemplo: 2006-01-02T15:04:05Z07:00

Tipos de dados

Os seguintes tipos de dados são suportados para cada banco de dados:

MSSQL (SQL Server)

Caso algum campo da URI tenha caracteres especiais, será necessário deixar a URI em um formato especial. Exemplo de formatos por driver:

Requisição

curl --location '<HOST>/v1/configs' \
--header 'Content-Type: application/json' \
--header 'Authorization: <ACCESS-TOKEN>' \
--data '{
    "output": {
        "type": "SQL",
        "sql": {
          "driver": "mssql",
          "uri": "sqlserver://[user[:password]@][netloc][:port][?database=dbname&param1=value1&…​]",
          "table": {
            "schema": "SCHEMA",
            "name": "NAME"
          },
          "mssql": {
            "data_types": [
              {
                "name": "col1",
                "type": "VARCHAR"
              },
              {
                "name": "col2",
                "type": "BIGINT"
              },
              {
                "name": "col3",
                "type": "DATE",
                "date": {
                  "format": "2006-01-02"
                }
              }
            ]
          }
        }
    }
}'

Resposta

A resposta desse endpoint será no seguinte formato:

{
  "id": "FIREHOSE-ID",
  "output": {
    "type": "SQL",
    "sql": {
      "driver": "mssql",
      "uri": "*",
      "table": {
        "schema": "SCHEMA",
        "name": "NAME"
      },
      "mssql": {
        "data_types": [
          {
            "name": "col1",
            "type": "VARCHAR"
          },
          {
            "name": "col2",
            "type": "BIGINT"
          },
          {
            "name": "col3",
            "type": "DATE",
            "date": {
              "format": "2006-01-02"
            }
          }
        ]
      }
    }
  }
}

Limitações

A tabela com todas as colunas necessárias já deve estar criada no banco para que as mensagens sejam adicionadas. Somente campos de primeiro nível do json serão considerados colunas da tabela. Objetos ou arrays aninhados serão convertidos para string antes de serem inseridos no banco.

Last updated