Skip to main content

BigQuery

A plataforma Carol disponibiliza o BigQuery como camada de armazenamento dos dados por padrão. Você pode utilizar a documentação do BigQuery para obter mais detalhes quanto aos recursos disponíveis e como implementar em suas consultas.

PyCarol

Para ter acesso ao BigQuery através do PyCarol você vai precisar:

  • PyCarol ≥ 2.47.4
  • Uma Service Account com acesso ao BigQuery

Ambos registros de staging e data model podem ser consultados. Abaixo temos um exemplo de consulta aos modelos:

import pycarol

SA_FILEPATH = "/home/jro/wk/totvs/sa.json"
TEST_QUERY1 = """
SELECT *
FROM `dm_clockinrecords`
LIMIT 100
"""

with open(SA_FILEPATH, "r") as file:
service_account = json.loads(file.read())
return service_account

carol = Carol()
sql = pycarol.SQL(carol)
result = sql.query(TEST_QUERY1, method="bigquery", service_account=service_account, dataframe=True)

Abaixo temos um exemplo de consulta para staging tables:

TEST_QUERY1 = """
SELECT *
FROM `stg_CONNECTORID_TABLENAME`
LIMIT 100
"""

Você pode usar o syntactic sugar para não ter que inserir o connector id:

test_query = """
SELECT mdmId
FROM {{clockinmobile.clockinrecords}}
UNION ALL
SELECT mdmId
FROM {{clockinrecords}}
LIMIT 100
"""

Na consulta acima, o PyCarol vai substituir {{clockinmobile.clockinrecords}} por stg_CONNECTORID_clockinrecords automaticamente.

API de consulta de CNPJ

Este tutorial descreve como efetuar a consulta de dados na Carol para obter dados mestres de empresas provenientes da Receita Federal do Brasil.

Para usar a API de consulta de CNPJs é necessário criar acesso na plataforma Carol. Para conseguir o acesso, abrir um ticket em suporte.carol@totvs.com.br com assunto “Acesso API CNPJ”. Você irá receber um email com um convite para criar um usuário e senha na plataforma Carol.

Para consultar o CNPJ (53113791000122) da TOTVS por exemplo, podemos usar a seguinte chamada:

curl -X POST "https://app.carol.ai/api/v3/queries/named/findCompany?indexType=MASTER&pageSize=10&sortOrder=ASC&scrollable=false" -H "accept: application/json" -H "Authorization: TOKEN" -H "content-type: application/json" -d "{\"cnpj\":\"53113791000122\"}" 

A resposta será:

{

"count": 1,

"totalHits": 1,

"took": 6,

"hits": [

{

"mdmGoldenFieldAndValues": {

"mdmsituationdate": "2005-11-03T00:00:00.000Z",

"mdmisheadquarters": true,

"industrybr": "6201501",

"mdmsituationdescription": "",

"mdmaddress": [

{

"mdmstate": "SP",

"mdmzipcode": "02511000",

"mdmaddress3": "CASA VERDE",

"mdmaddress2": "",

"mdmcity": "SAO PAULO",

"mdmaddress1": "AVENIDA BRAZ LEME 1000"

}

],

"situationreasoncode": "00",

"registerdate": "1983-12-13T00:00:00.000Z",

"empty_registerdate": false,

"mdmisactive": true,

"sharecapital": 1382508564.43,

"mdmtaxid": "53113791000122",

"empty_mdmsituationdate": false,

"mdmphone": [

{

"mdmphonenumber": "",

"mdmphonetype": "phone2"

},

{

"mdmphonenumber": "1139817000",

"mdmphonetype": "phone1"

}

],

"cnaebr": "6201501",

"legalnaturecode": "2046",

"roottaxid": "53113791",

"legalnaturedescription": "Sociedade Anônima Aberta",

"mdmdba": "TOTVS S/A",

"mdmname": "TOTVS S.a.",

"companysize": "DEMAIS"

}

}

],

"aggs": {}

}

O resultado estará em $.hits.[].mdmGoldenFieldAndValues.

Note que na chamada da API é necessário enviar um TOKEN. Você pode ver como gerar esse token → clicando aqui

O connector ID pra gerar o TOKEN é 47b343909f214230b81195aa37a733bb

SOBRE OS DADOS

Os dados dessa API são os mesmo encontrados no portal da receita federal → clicando aqui

Estes dados são atualizados a cada mês. Significa que os dados de reposta podem estar em até um mês de atraso.