Data consumption
Solução
A Carol permite efetuar o consumo de dados através de comandos SQL, o que pode ser realizado através de requisições com resposta de resultados síncrona ou assíncrona utilizando API REST. Em requisições em que o resultado da consulta é síncrono, como o tempo de resposta está diretamente relacionado à complexidade da consulta em SQL, podem ocorrer erros de tempo de espera excedido, sendo a opção de resultados assíncronos indicada nestes casos.
Requisições
Autenticação
Consulte a documentação relacionada ao fluxo de Autenticação.
Resposta Síncrona
Para obtenção dos resultados da consulta como resposta da requisição de consulta realizada.
Exemplo de requisição de consulta
curl --location --request POST 'https://api.carol.ai/sql/v1/query/v1/query_sync' \
--header 'accept: application/json' \
--header 'Authorization: 2df9b50c4a8b4918871b04fe9768f4ec' \
--header 'Content-Type: application/json' \
--data-raw '{
"mdmOrgId": "{{carol_orgid}}",
"mdmTenantId": "{{carol_envid}}",
"query": "SELECT id, description AS `desc` FROM stg_protheus_carol_company LIMIT 3",
"page": 1,
"pageSize": 100
}'
Exemplo de resposta com resultados
{
"schema": {
"id": "STRING",
"desc": "STRING"
},
"rows": [
{
"id": "00",
"desc": "LNG-MtzCabreuva"
},
{
"id": "08",
"desc": "TGF AUTOMOTIVE"
},
{
"id": "00",
"desc": "ALMEIDA"
}
],
"totalRows": 3,
"totalRowsPage": 3,
"pageSize": 100
}
Resposta Assíncrona
Para obtenção dos resultados da consulta posteriormente à requisição de consulta realizada.
Exemplo de requisição de consulta
curl --location --request POST 'https://api.carol.ai/sql/v1/query/v1/query' \
--header 'accept: application/json' \
--header 'Authorization: 2df9b50c4a8b4918871b04fe9768f4ec' \
--header 'Content-Type: application/json' \
--data-raw '{
"mdmOrgId": "{{carol_orgid}}",
"mdmTenantId": "{{carol_envid}}",
"query": "SELECT COUNT(*) FROM mdbusinesspartnergroup",
"page": 1,
"pageSize": 100
}'
Exemplo de resposta com ID da requisição
{
"queryId": "carol-a654e18d03a34aa2aef75becba74-cb73-4b27-9ccf-f1dbb8342c13"
}
Exemplo de requisição de resultados
curl --location --request POST 'https://api.carol.ai/sql/v1/query/v1/query_polling' \
--header 'accept: application/json' \
--header 'Authorization: 2df9b50c4a8b4918871b04fe9768f4ec' \
--header 'Content-Type: application/json' \
--data-raw '{
"queryId": "carol-a654e18d03a34aa2aef75becba74-cb73-4b27-9ccf-f1dbb8342c13"
}'
Exemplo de resposta com resultados pendentes
{
"queryPending": true
}
Exemplo de resposta com resulados
{
"schema": {
"f0_": "INTEGER"
},
"rows": [
{
"f0_": 65044949
}
],
"totalRows": 1,
"totalRowsPage": 1,
"lastPage": true,
"pageSi
Nomenclatura de Tabelas
O consumo de dados usando SQL permite a consulta de dados originais inseridos na plataforma Carol, estes podem estar armazenados em tabelas staging ou suas derivações a partir de processos ETL, e permite também a consulta de dados processados na forma de Data Model (golden records).
Staging Tables
Deve ser utilizado o seguinte formato quando a consulta fizer referência a uma tabela staging:
stg_<nome_do_conector>_<nome_da_tabela>
Ex:
stg_protheus_carol_ct1
stg_protheus_carol_ct1_analitica
stg_datasul_carol_emsuni_empresa
Data Models
Deve ser utilizado o nome do data model tal como apresentado na Carol UI (não utilizar o label) quando a consulta fizer referência a um data model:
Ex:
arpaymentstype
organization
mdbusinesspartnerdocreference