Skip to main content

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. O tempo de resposta está diretamente relacionado à complexidade da consulta em SQL.

Requisições​

Autenticação​

Consulte a documentação relacionada ao fluxo de Autenticação.

Visão Geral

Abaixo um fluxo demonstrando o processo de obtenção de dados via API REST de forma assíncrona.

diagrama_consumption

Abaixo é listado os principais serviços ligados a consulta assíncrona:

endpoints

Esses serviços permitem efetuar o consumo de dados do Big Query através da Carol, vamos detalhar esses serviços:

/api/v1/bigQuery/query

Esse endpoint é responsável por criar uma task de consumo de dados que será repassada para o big Query.

ParâmetroValor
mdmOrgIdOBRIGATÓRIO. Campo gerado pelo sistema, reflete o id da organização.
mdmTenantIdOBRIGATÓRIO. Campo gerado pelo sistema, reflete o id da tenant.
pageSizeOBRIGATÓRIO. Campo gerado pelo sistema, por padrão ele vem preenchido com 25.
queryOBRIGATÓRIO. Campo inserido pelo usuário em forma de string, corresponde à consulta a ser efetuada no Big Query.

Abaixo um exemplo utilizando o Curl:

curl -X POST https://api.carol.ai/api/v1/bigQuery/query \
-H "accept: application/json" \
-H "content-type: application/json" \
-d '{"mdmOrgId":"1d6ac48037d54444873d2064e66075a8", "mdmTenantId":"9620845e87cf404ba41e470aef7ec919", "pageSize":25, "query":"select * from stg_nlp_stg_copy"}'

Exemplo de resposta da API:

{
"queryId": "carol-9620845e87cf404ba41e-explorer-b9a05354-be9c-41ba-94f8-6a58b8a2a002",
"queryExecuted": "SELECT * FROM stg_nlp_stg_copy;"
}

**/api/v1/bigQuery/query_polling

Esse endpoint é responsável por trazer o resultado de forma assíncrona do Big Query, é um endpoint que é enviado pelo sistema contendo os seguintes parâmetros:

ParâmetroValor
queryIdOBRIGATÓRIO. Campo gerado pelo sistema, reflete o id da query criada no BigQuery pelo endpoint api/v1/bigQuery/query.
pageOBRIGATÓRIO. Campo gerado pelo sistema, reflete o número de páginas de consulta efetuada pelo sistema.

Abaixo um exemplo utilizando o Curl:

curl -X POST https://api.carol.ai/api/v1/bigQuery/query_polling \
-H "accept: application/json" \ -H "accept-encoding: gzip, deflate, br, zstd" \
-H "accept-language: pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7" \
-H "authorization: 0d87484fc3e24634b49a2c1f45593c6e" \
-H "content-type: application/json" \
-d {"queryId":"carol-9620845e87cf404ba41e-explorer-83309547-3f17-49bc-abf2-f5e9df8e1328","page":1}'

Exemplo de resposta da API:

{
"schema": {
"mdmCounterForEntity": "INTEGER",
"mdmId": "STRING",
"mdmCreated": "DATETIME",
"mdmLastUpdated": "DATETIME",
"mdmTenantId": "STRING",
"mdmConnectorId": "STRING",
"mdmEntityType": "STRING",
"mdmDeleted": "BOOLEAN",
"mdmAuditId": "STRING",
"mdmBatchId": "STRING",
"mdmBatchIdSequence": "STRING",
"image": "STRING",
"variations": "RECORD",
"productname": "STRING",
"id": "STRING",
"category": "STRING",
"productprice": "FLOAT",
"barcode": "STRING",
"snapshot": "STRING",
"mdmCounterForEntity__DATETIME__": "DATETIME",
"_ingestionDatetime": "DATETIME"
},
"rows": [
{
"mdmCounterForEntity": 2,
"mdmId": "82366254ca09d3c4ad4dd39108aa0c15",
"mdmCreated": "2024-09-01T13:00:00Z",
"mdmLastUpdated": "2024-09-02T15:00:00Z",
"mdmTenantId": "9620845e87cf404ba41e470aef7ec919",
"mdmConnectorId": "755a100d478b45b9aa100b6548bad8c4",
"mdmEntityType": "755a100d478b45b9aa100b6548bad8c4_stg_copy",
"mdmDeleted": false,
"mdmAuditId": "848ad2e77e618ff0",
"mdmBatchId": null,
"mdmBatchIdSequence": null,
"image": "http://example.com/image2.jpg",
"variations": [],
"productname": "Camiseta Azul",
"id": "prod_002",
"category": "Roupas",
"productprice": 35.99,
"barcode": "1234567890456",
"snapshot": "snapshot_002",
"mdmCounterForEntity__DATETIME__": "1970-01-01T00:00:00Z",
"_ingestionDatetime": "2024-09-02T19:55:24.335761Z"
},
{
"mdmCounterForEntity": 1,
"mdmId": "a4c9fa89f5ba8bc685c1e16379b24b1e",
"mdmCreated": "2024-09-01T12:00:00Z",
"mdmLastUpdated": "2024-09-02T14:30:00Z",
"mdmTenantId": "9620845e87cf404ba41e470aef7ec919",
"mdmConnectorId": "755a100d478b45b9aa100b6548bad8c4",
"mdmEntityType": "755a100d478b45b9aa100b6548bad8c4_stg_copy",
"mdmDeleted": false,
"mdmAuditId": "848ad2e77e618ff0",
"mdmBatchId": null,
"mdmBatchIdSequence": null,
"image": "http://example.com/image1.jpg",
"variations": [],
"productname": "Camiseta Vermelha",
"id": "prod_001",
"category": "Roupas",
"productprice": 29.99,
"barcode": "1234567890123",
"snapshot": "snapshot_001",
"mdmCounterForEntity__DATETIME__": "1970-01-01T00:00:00Z",
"_ingestionDatetime": "2024-09-02T19:55:53.076219Z"
}
],
"totalRows": 2,
"totalRowsPage": 2,
"lastPage": true,
"pageSize": 25,
"elapsedTimeInSeconds": 1.965,
"processedMegabytes": 0.0,
"cache": false
}

Plataforma Carol

Dentro da plataforma Carol o processo de consulta de dados ocorre da seguinte forma:

  1. Dentro da aba de exploração escolha o editor.

editor

  1. Dentro do editor escreva a consulta que gostaria de executar:

consulta

  1. Aperte Run e verifique a resposta da consulta:

run