In SQL legacy, gli utenti possono fare riferimento a dati da un sottoinsieme di tabelle in un set di dati utilizzando le funzioni di caratteri jolly della tabella. In SQL standard, gli utenti possono ottenere lo stesso risultato utilizzando UNION ALL
. Tuttavia, questo approccio potrebbe non essere conveniente quando gli utenti desiderano determinare dinamicamente il set di tabelle utilizzando, ad esempio, un intervallo di date (supportato utilizzando TABLE_DATE_RANGE
e TABLE_DATE_RANGE_STRICT
in SQL legacy) o altri criteri complessi (supportato da TABLE_QUERY
in SQL legacy). Con SQL standard, BigQuery offre un equivalente a quanto descritto di seguito.
La seguente query SQL legacy che utilizza la funzione jolly TABLE_QUERY
può essere riscritta utilizzando SQL standard.
di query SQL Legacy (utilizzando TABLE_QUERY
): query SQL
SELECT SUM(value1)
FROM TABLE_QUERY([myproject:mydataset],"table_id = 'mydailytable_20150105' OR
table_id = 'mydailytable_20150106' OR table_id = 'maydailytable_20150110'")
GROUP BY value2;
Legacy (utilizzando TABLE_DATE_RANGE
):
SELECT SUM(value1)
FROM TABLE_DATE_RANGE([myproject:mydataset], TIMESTAMP("2015-01-05"), TIMESTAMP("2015-01-10"))
query SQL standard:
SELECT SUM(value1)
FROM `myproject.mydataset.mydailytable_*`
WHERE _TABLE_SUFFIX = '20150105'
OR _TABLE_SUFFIX = '20150106'
OR _TABLE_SUFFIX = '20150110'
GROUP BY value2;
Nella query sopra riportata, la tabella dei caratteri jolly myproject.mydataset.mydailytable_*
corrisponde a tutte le tabelle nel set di dati myproject.mydataset
che hanno table_id
a partire da mydailytable_
. Ad esempio, per abbinare tutte le tabelle nel set di dati, l'utente può utilizzare un prefisso vuoto per il carattere jolly. Quindi, myproject.mydataset.*
corrisponde a tutte le tabelle nel set di dati.
Poiché *
è un carattere speciale, i nomi delle tabelle jolly devono essere citati quando li si utilizza in una query.
La colonna _TABLE_SUFFIX
pseudo:
La pseudo colonna _TABLE_SUFFIX
ha tipo STRING e può essere usato come qualsiasi altra colonna. È un nome di colonna riservato, quindi deve essere sottoposto a un alias quando lo si utilizza come parte dell'elenco SELECT.
documentazione ufficiale per questa funzionalità è disponibile qui:
https://cloud.google.com/bigquery/docs/wildcard-tables https://cloud.google.com/bigquery/docs/querying-wildcard-tables
è possibile aggiungere link alla documentazione ufficiale si prega –
wow, funziona davvero! cosa resta da sapere se sarà effettivamente supportato nella versione di rilascio –
Questo è già supportato nell'ultima versione di BigQuery, stiamo solo aspettando che la documentazione ufficiale sia disponibile. Pubblicherò un link una volta che lo avremo pronto. Grazie! –