Raft Suite Hub
Raft-suite é um ecossistema criado pela DP6 para garantir a qualidade dos dados (Data Quality) nos projetos de engenharia de dados implementados nos clientes da DP6, através de monitoramento automatizados de dados.
O Hub é a solução responsável por centralizar a consolidação dos dados no BigQuery, ferramenta escolhida para servir de data warehouse do raft-suite.
Conteúdo
1. Requisitos para utilização
1.1 Produtos Google Cloud Platform (GCP)
- Cloud Functions
- BigQuery
1.2 Dependências do ambiente local
- NodeJS >= 14.17.1
- Google Cloud SDK
2. Instalando o hub
- Acesse o Cloud Shell ou um terminal com git e o gcloud sdk
-
Clone o repositório
git clone https://github.com/DP6/raft-suite-hub.git
-
Em seguida, navegue para a pasta e use o comando deploy
cd raft-suite-hub gcloud functions deploy hub-raft-suite-deploy --entry-point=app --trigger-http
Opcionalmente, você pode preencher as variáveis de ambiente
DATASET_ID
,TABLE_ID
eINSERT_TYPE
com a flag –set-env-vars:cd raft-suite-hub gcloud functions deploy hub-raft-suite-deploy --entry-point=app --trigger-http --set-env-vars DATASET_ID=[dataset] TABLE_ID=[table] INSERT_TYPE=[batch ou stream]
3. Usando o Hub
Para utilizar, é preciso fazer uma requisição POST para a cloud function com um json no body. Por exemplo, em Node com axios:
const axio = require('axios');
let body = {
module: 'penguin-datalayer-collect',
spec: 'dp6_site',
deploy: '2.0.0',
code: '01-00',
description: 'Saving collect data',
payload: {
status: 'OK',
objectName: 'event',
keyName: 'eventCategory',
message: '',
},
};
axios.post('https://us-central1-dp6-brasil.cloudfunctions.net/hub-raft-suite', body);
3.1 Schema da tabela
Parâmetro | Tipo | Exemplo | Obritatório | Descrição |
---|---|---|---|---|
body | object |
- | Sim | Request body |
body.project | string |
Não | Nome do projeto | |
body.module | string |
penguin-datalayer |
Sim | Nome do módulo que enviou a mensagem |
body.spec | string |
dp6_site |
Sim | Detalhe sobre a execução do módulo |
body.deploy | number |
2.1.0 |
Sim | Versão do módulo ou cloud function |
body.code | string |
01-00 |
Não | Código usado para definir a dimensão e o status |
body.description | string |
Não | Descrição do status | |
body.details | string |
Não | – | |
body.payload | Object |
{} | Não | Informações específicas dos módulos, que serão escritas como JSON na tabela |
4. Observações
Por padrão, as cloud functions do tipo http só podem ser executadas com autenticação. Por isso, a requisição post precisa ser feita de um local autenticado, ou com o token de autenticação.
Como contribuir
Pull requests são bem-vindos! Nós vamos adorar ajuda para evoluir esse modulo. Sinta-se livre para navegar por issues abertas buscando por algo que possa fazer. Caso tenha uma nova feature ou bug, por favor abra uma nova issue para ser acompanhada pelo nosso time.
Requisitos obrigatórios
Só serão aceitas contribuições que estiverem seguindo os seguintes requisitos:
Api Docs
Suporte
DP6 Koopa-troopa Team
e-mail: koopas@dp6.com.br