Ich habe eine DAY partitionierte Tabelle in BigQuery, wo ich Zeilen entfernen möchte, in denen ein bestimmter Spaltenwert dupliziert wird (ich möchte nur den letzten solchen Wert, sortiert nach einer Timestamp-Spalte). Jetzt, da die SQL-Sprache bigquery keine partitionierten Tabellen unterstützt (und andere Einschränkungen hat), denke ich, was ich tun muss, ist eine temporäre Tabelle zu erstellen, die eine gefilterte Ansicht des Originals ist, das Original zu löschen und dann eine Kopie davon auszuführen die temporäre Tabelle auf den ursprünglichen Namen und löschen Sie die temporäre Tabelle. Ich kann dies wie folgt mit etwas tun:Filtern von partitionierten Tabellen
SELECT * EXCEPT(row_number) FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY partition_col order by time_col desc) row_number FROM my_partioned_table ) WHERE row_number = 1
Aber wie ich mit diesem Ansatz die Partitionierungsinformationen konservieren?
Wenn ich eine vollständige Tabelle kopiere, bleiben die Portionierungsinformationen erhalten, aber was mache ich, wenn ich effektiv eine gefilterte Ansicht einer Tabelle erstellen möchte, die auch die Partitionierung erhält?