SQL
Permite a configuração de um banco SQL de onde as mensagens serão consumidas.
Parâmetros
Parâmetros aceitos para esse tipo de entrada:
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.scheduler
Informações do agendador
Tipo: object Obrigatório
sql.scheduler.cron
Expressão cron com tempo das execuções
Tipo: string
Obrigatório se o campo seconds
não for informado
sql.scheduler.seconds
Tempo em segundos entre as execuções
Tipo: int
Obrigatório se o campo cron
não for informado
sql.query
Informações da query
Tipo: object Obrigatório
sql.query.select
Projeção de campos da resposta
Tipo: string Obrigatório
sql.query.from
Tabela a ser consultada
Tipo: string Obrigatório
sql.query.where
Condição da busca
Tipo: string Obrigatório
sql.query.group_by
Campo para agrupamento
Tipo: string Obrigatório
sql.query.having
Coluna para agrupamento
Tipo: string Obrigatório
sql.query.order_by
Campo para ordenação
Tipo: string Obrigatório
sql.query.limit
Limite de dados da busca
Tipo: int[1-10000] Obrigatório
Requisição
curl --location '<HOST>/v1/configs' \
--header 'Content-Type: application/json' \
--header 'Authorization: <ACCESS-TOKEN>' \
--data '{
"input": {
"type": "SQL",
"sql": {
"driver": "postgres",
"uri": "postgres://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]",
"scheduler": {
"seconds": 60
},
"query": {
"select": "*",
"from": "TABLE",
"where": "key == 'value'",
"group_by": "key",
"order_by": "date",
"limit": 1000
}
}
},
"output": {...}
}'
Resposta
A resposta desse endpoint será no seguinte formato:
{
"id": "FIREHOSE-ID",
"input": {
"type": "SQL",
"sql": {
"driver": "postgres",
"uri": "*",
"scheduler": {
"seconds": 60
},
"query": {
"select": "*",
"from": "TABLE",
"where": "key == 'value'",
"group_by": "key",
"order_by": "date",
"limit": 1000
}
}
},
"output": {...}
}
Limitações
Hoje existe um limite máximo de registros a serem recuperados por busca de 10000, porém ocorre a paginação da resposta utilizando offset
internamente pelo Firehose garantindo a entrega de todos os registros que satisfaçam à uma query.
Last updated