Este projeto parte da necessidade de gerar arquivos contendo Tabelas Dimensão de Data para serem utilizadas em diferentes projetos de Business Intelligence e compatíveis com diferentes ferramentas de BI e contendo diferentes granularidades de valores de tempo, concebidos a partir de cálculos matemáticos testados e obedecendo às legislações estaduais e federais vigentes que regulamentam feriados e dias úteis no Brasil.
O resultado final é um software capaz de ser rodado em nuvem ou local, que gera Tabelas Dimensão de Data em diferentes formatos de arquivos e permite a inclusão de feriados estaduais e federais de forma dinâmica a partir de uma interface gráfica simples e funcional.
Oferecer um software capaz de:
- Gerar arquivos para serem utilizados como Tabelas Dimensão de Data nos formatos mais populares do mercado;
- Oferecer ao usuário a opção de customizar o arquivo a ser gerado em relação ao formato e conteúdo;
- Ser executado standalone ou na nuvem;
- Oferecer pré-visualização antes de fazer o download dos arquivos gerados;
- Ser facilmente reproduzível, copiável, adaptável ou modificável.
Os seguintes formatos de arquivos de saída são suportados:
- Arquivo de dados no formato texto (
.csv); - Arquivo de planilhas do Microsoft Excel (
.xlsx); - Arquivo de dados no formato JSON (JavaScript Object Notation) (
.json); - Arquivo de script executável SQL (
.sql).
| Coluna | Descrição | Formato | Exemplo |
|---|---|---|---|
Data |
Data no formato ISO 8601 ("yyyy-MM-ddTHH:mm:ssZ") | Date | 2025-12-31 00:00:00 |
Ano |
Ano numérico com quatro dígitos | Int | 2025 |
Mes |
Mês numérico com dois dígitos de 1 a 12 | Int | 12 |
DiaDoMes |
Dia numérico com dois dígitos de 1 a 31 | Int | 31 |
DiaDoAno |
Dia numérico de 1 a 366 | Int | 365 |
DiaSemana |
Posição do dia na semana numérico com um dígito de 1 a 7 | Int | 3 |
NomeDiaSemana |
Dia da semana por extenso | String | Quarta-feira |
NomeMes |
Mês por extenso | String | Dezembro |
AnoMes |
Ano e mês no formato de texto | String | "2025-12" |
Trimestre |
Trimestre numérico com um dígito | Int | 4 |
Semestre |
Semestre numérico com um dígito | Int | 2 |
SemanaAno |
Semana do ano numérico padrão Brasil/EUA - 1 a 53 | Int | 53 |
SemanaAnoISO |
Semana do ano numérico ISO 8601, padrão Internacional/ERP - 52 semanas | Int | 52 |
EhFimDeSemana |
Valor lógico indicativo de fim de semana | Boolean | FALSO |
DataInt |
Data no formato de número inteiro sem espaço | Int | 20251231 |
DataEpoch |
Data no formato de número inteiro padrão Excel/Google Sheets - Base 1900 | Int | 46082 |
DataUnixPosix |
Data no formato de número inteiro padrão Unix/Posix, quantidade de segundos desde 1970 | Int | 1767216000 |
Feriado |
Nome do feriado por extenso (caso seja um feriado) | String | Véspera de Ano Novo |
Feriado Estadual |
Nome do feriado por extenso (caso seja um feriado estadual) | String | Revolução Constitucionalista |
Estado |
Nome do Estado do feriado Estadual | String | São Paulo |
EhFeriado |
Valor lógico indicativo de feriado nacional ou estadual | Boolean | VERDADEIRO |
Note
As colunas Feriado Estadual e Estado são preenchidas automaticamente quando pelo menos um Estado é selecionado na lista de Estados onde há feriados estaduais.
- Python 3.13.5 (ou compatível)
- Streamlit 1.52.2 (ou compatível)
- Pandas 2.3.3 (ou compatível)
- Numpy 2.4.0 (ou compatível)
- Xlsxwriter 3.2.9 (ou compatível)
Important
Instruções de utilização baseadas em sistemas Linux derivados do Debian (Ubuntu, Linux Mint, Elementary OS, Pop!_OS, etc).
$ python3 -m venv .venv
$ source .venv/bin/activate$ python3 -m pip install --upgrade pip
$ pip install pandas streamlit numpy xlsxwriter black$ streamlit run app.pyO software executará em uma nova aba do navegador utilizando o seguinte endereço: http://localhost:8501
Note
Para saber mais sobre o deploy e execução na nuvem do Streamlit ou demais nuvens, consulte a documentação do Streamlit.
- Servir como tabela dimensão em projetos de Business Intelligence para análises temporais complexas;
- Utilizar em análises de dados que incluem múltiplas tabelas fato contendo datas, granularidades diferentes ou períodos sem dados de transações;
- Análises regionais ou com requisitos de negócio específicos como feriados, dias úteis, etc;
- Pré-calcular e indexar atributos da dimensão de data em data warehouses com grandes volumes de dados nas tabelas fato para ganho de performance em agregações.
Este é um projeto em estágio experimental. Antes de utilizar os arquivos de dados gerados através desse projeto em produção, verifique a consistência e a precisão dos dados gerados. O autor original desse projeto não se responsabiliza pelo uso indevido dos dados gerados através do projeto original ou por forks ou clones do mesmo.
O cálculo da data de Domingo de Páscoa que representa parte importante desse projeto foi baseado em informações adquiridas no vídeo do especialista em Power BI Laennder Alves. Título: "Obter Lista de Feriados no Power BI (sem API)" - disponível em: https://youtu.be/kOf5P6tiTbg?si=whEJ3CxMsfILfEU9
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.
