...
Durante o processo de ingestão dos dados vindos do SAP, é feita uma tratativa/limpeza nos dados para adequá-los ao formato de armazenamento do Databricks, visando sempre o formato mais genérico e limpo o possível para que possa atender os mais diferentes tipo de cenários que esse dados irá irão atender.
No sistema SAP possui um tipo de campo de dados denominado TIMS referente a horas, sem a data, exemplo: 13:30:00
. Link de referencia https://www.se80.co.uk/sap-data-element/?name=tims
O dado está sendo lido inicialmente em um formato string
long
(Unix time) e o armazenamento desse dado no Databricks está sendo feito da seguinte forma:
Concatenação com a data padrão
1970-01-01
;Conversão Conversão de
long
para datatypetimstamp
timestamp
;Soma de GMT+3;
Concatenação com a data padrão 1970-01-01
O motivo da concatenação com a data padrão é para posteriormente conseguirmos converter para um formato timestamp
e Conversão de long
para datatype timestamp
Um dos motivos da conversão é para manter uma melhor usabilidade dos usuários na utilização desses tipos de dados no Databricks.
...
O segundo motivo da conversão é seguir o padrão do Posix Time (https://pt.wikipedia.org/wiki/Era_Unix)para posteriormente ser possível, tanto converter o horário padrão do timezone utilizando funções GMT, quanto proporcionar a possibilidade de utilização de funções nativas para trabalhar com horas.
...
Obs.: Não deverá ser considerado o valor da data 1970-01-01
como data e sim apenas o valor do horário contido no campo, pois naturalmente no SAP todas as tabelas que possuem colunas de horas, Exemplo: , são acompanhadas, com uma coluna de data, e essa sim, poderá ser considerada em cálculos para obter a data deste registro.
...
Soma de GMT+3
Para todas as colunas do tipo hora, que são feitas as ingestões do SAP ao Databricks, será somado o valor de GMT+3. Isto ocorrerá pois o SAP envia para o Databricks o registro da hora no formato GMT-3 e para, poder mantermos a interoperabilidade entre sistemas, permanecemos no padrão GMT+0.
...
⚠️ IMPORTANTE ⚠️
Fique atento a visualização do GMT que está utilizando para efetuar suas querys no Databricks em relação as tabelas dos databases SAP, caso esteja utilizando o formato padrão GMT+0 (+000 no final da data), utilize a função de SET TIMEZONE
para especificar o GMT com a sua necessidade, ou em caso de grandes equipes que compartilharão os mesmo recursos de GMT, é recomendável a solicitação a equipe de Arquitetura de Dados um cluster previamente configurado com o timezone necessário.
...
Links uteis