Skip to main content

Boas práticas

Prática 01 - Em algumas estratégias de processamento parcial de pipelines é utilizada a informação do último registro de uma staging table processado que está armazenado no Data Model correspondente. Com isso é possível processar apenas registros de uma staging table que ainda não foram processados. Essa informação é representada pelo ultimo valor do campo mdmStagingCounter no Data Model em questão, por exemplo o Data Model fictício DATAMODELNAME. A forma mais otimizada de buscar essa informação no Data Model DATAMODELNAME, é buscando pela última partição conforme comando SQL abaixo.

SELECT
MAX(mdmStagingCounter) AS max,
RAND()
FROM
DATAMODELNAME dm
WHERE dm._ingestionDatetime >=
(
SELECT last_partition
FROM
(
SELECT
IFNULL(PARSE_DATE('%Y%m%d',MAX(partition_id)), DATETIME(TIMESTAMP_SECONDS(0))) AS last_partition
FROM
`INFORMATION_SCHEMA.PARTITIONS`
WHERE
table_name = 'ingestion_DATAMODELNAME'
AND partition_id <> '__NULL__'
)
)