Jeśli tabela nie składa się z rekordowych powtarzanych pól/typ - Twój prosta opcja:
Wybierz poprawnych kolumn natomiast filtrowanie złe zapisy do nowej tabeli temp
SELECT < listę oryginału kolumny>
OD YourTable
GDZIE < filtr, aby usunąć złe wpisy tutaj> Strona
Napisz wyżej tabeli temp - YourTable_Temp
Zrób kopię zapasową "złamanym" Tabela - YourTable_Backup
- Usuń
YourTable
- Kopiowanie
YourTable_Temp
do YourTable
- Sprawdź, czy wszystko wygląda jak oczekiwano, a jeśli tak - pobranie Pozbądź się tabel zastępczych i zapasowych
Uwaga: koszt powyżej # 1 jest dokładnie taki sam, jak w przypadku pierwszego punktu w pytaniach tację. Reszta działań (kopia) są wolne
W przypadku jeśli powtarzane/pola Record - nadal może wykonywać powyżej planu, ale w # 1 trzeba będzie korzystać z niektórych BigQuery User-Defined Functions mieć właściwego schematu produkcji
Ty można zobaczyć poniżej na przykładach - Oczywiście będzie to wymagało trochę więcej dev - ale jeśli jesteś w sytuacji krytycznej - to powinno działać dla ciebie
Create a table with Record type column
create a table with a column type RECORD
mam nadzieję, że w pewnym momencie Google BigQuery zespół będzie dodaj lepszą obsługę takich przypadków jak Twoja, gdy potrzebujesz mani pulate i output powtarzają/zapisują dane, ale na razie jest to najlepsze obejście, jakie znalazłem - przynajmniej dla siebie
W jaki sposób ograniczyłoby to pomoc w uproszczeniu schematu (a nie wielkości tabeli)? – Lior
Limit pomoże to przetestować. Możesz wybrać w kolumnie, którą chcesz zachować. – Pentium10