View on GitHub

documentation

Contains FAQs, guides, how-to and general instructions

How does “importance of the day” calculation work

1. Workflow

https://importance-history-3cuixb5lia-uw.a.run.app/create_importance_history_tasks and https://importance-fine-tune-3cuixb5lia-ew.a.run.app/month_fine_tune

2. runImportancesAndCompetitors

Creates GCP Tasks for CF importance and competitors.

3. importance

It does the calculation and then:

4. Listeners of “calculatePrices” topic

Query per…

Query per vedere le differenze tra due tabelle con la stessa struttura e (quasi) gli stessi dati

SELECT
  COALESCE(t1.reservationId, t2.reservationId) AS reservationId,

  -- Indica se la riga è mancante in una delle due tabelle
  CASE
    WHEN t1.reservationId IS NULL THEN 'MISSING IN VISTA1'
    WHEN t2.reservationId IS NULL THEN 'MISSING IN VISTA2'
    ELSE 'MATCH'
  END AS row_status,

  -- Mostra la differenza di "status" solo se i valori non corrispondono
  IF(t1.status IS DISTINCT FROM t2.status, CONCAT(t1.status, ' -> ', t2.status), NULL) AS status_diff,

  -- Mostra la differenza di "is_outliers" solo se i valori non corrispondono
  IF(t1.is_outliers IS DISTINCT FROM t2.is_outliers, CONCAT(CAST(t1.is_outliers AS STRING), ' -> ', CAST(t2.is_outliers AS STRING)), NULL) AS is_outliers_diff,

  -- Mostra la differenza di "price" solo se i valori non corrispondono
  IF(t1.price IS DISTINCT FROM t2.price, CONCAT(CAST(t1.price AS STRING), ' -> ', CAST(t2.price AS STRING)), NULL) AS price_diff
FROM
  (
    SELECT
      reservationId,
      ANY_VALUE(status) AS status,
      ANY_VALUE(is_outliers) AS is_outliers,
      ANY_VALUE(price) AS price
    FROM `brainy-v2.zzzDEBUG.negresco_luglio_vista1`
    GROUP BY reservationId
  ) AS t1
FULL OUTER JOIN
  (
    SELECT
      reservationId,
      ANY_VALUE(status) AS status,
      ANY_VALUE(is_outliers) AS is_outliers,
      ANY_VALUE(price) AS price
    FROM `brainy-v2.zzzDEBUG.negresco_luglio_vista2`
    GROUP BY reservationId
  ) AS t2
  ON t1.reservationId = t2.reservationId
WHERE
  t1.reservationId IS NULL OR t2.reservationId IS NULL
  OR t1.status IS DISTINCT FROM t2.status
  OR t1.is_outliers IS DISTINCT FROM t2.is_outliers
  OR t1.price IS DISTINCT FROM t2.price
ORDER BY
  reservationId