2014-06-12 15 views
6

Próbuję użyć pliku bigQuery w Google, aby wybrać dane z tabel z datą wieloznaczną. Chciałbym móc korzystać z funkcji TABLE_DATE_RANGE, ale muszę zapytać o duży zakres dat (> 1 rok). Teraz moja kwerenda działa przez rok warto danych, ale nic ponad uzyskać:Używanie tabeli TABLE_DATE_RANGE z tabelami o wartości przekraczającej 1 rok.

błędzie: Błąd TABLE_DATE_RANGE: zbyt wiele dni

#Fails 
SELECT 
    system_id, sample_date, e_pv_array 
FROM 
    (TABLE_DATE_RANGE(workspace.intervaldata, 
        TIMESTAMP('2009-03-01'), 
        TIMESTAMP('2010-03-04'))) 
WHERE 
    system_id = 20006 
    and e_pv_array is not null; 

#Works 
SELECT 
    system_id, sample_date, e_pv_array 
FROM 
    (TABLE_DATE_RANGE(workspace.intervaldata, 
        TIMESTAMP('2009-03-01'), 
        TIMESTAMP('2010-03-03'))) 
WHERE 
    system_id = 20006 
    and e_pv_array is not null; 

Czy to właśnie to ograniczenie BigQuery ? Czy istnieje sposób na użycie symboli wieloznacznych tabeli z zakresami dat dłuższymi niż 1 rok?

Odpowiedz

5

Mam również problemy z TABLE_DATE_RANGE(). Oto możliwe obejście, zakładając, że tabele są nazywane workspace.intervaldata20090303 itp .:

SELECT 
system_id, sample_date, e_pv_array 
FROM 
TABLE_QUERY(workspace, "integer(regexp_extract(table_id, r'intervaldata([0-9]+)')) BETWEEN 20090301 and 20100304") 
WHERE 
system_id = 20006 
and e_pv_array is not null; 

Mam podobny scenariusz (data rozdzielono tabele) i jestem w stanie uruchomić zapytań ponad 2-letnie o wartości danych z wykorzystaniem TABLE_QUERY() bez błędów.

Powiązane problemy