Wie wähle ich die neueste Partition in der BigQuery-Tabelle aus?
Ich versuche, Daten aus der neuesten Partition in einer BigQuery-Tabelle mit Datumspartitionierung auszuwählen, aber die Abfrage liest weiterhin Daten aus der gesamten Tabelle.
Ich habe versucht (soweit ich weiß, unterstützt BigQuery nichtQUALIFY
):
SELECT col FROM table WHERE _PARTITIONTIME = (
SELECT pt FROM (
SELECT pt, RANK() OVER(ORDER by pt DESC) as rnk FROM (
SELECT _PARTITIONTIME AS pt FROM table GROUP BY 1)
)
)
WHERE rnk = 1
);
Aber das funktioniert nicht und liest alle Zeilen.
SELECT col from table WHERE _PARTITIONTIME = TIMESTAMP('YYYY-MM-DD')
wo'YYYY-MM-DD'
ist ein bestimmtes Datum, das funktioniert.
Ich muss dieses Skript jedoch in Zukunft ausführen, aber die Tabellenaktualisierung (und das_PARTITIONTIME
) ist unregelmäßig. Gibt es eine Möglichkeit, Daten nur von der neuesten Partition in BigQuery abzurufen?