2016-03-17 6 views

risposta

13

Utilizzando SELECT con risultato la scrittura di nuovo al tavolo

SELECT 
    CAST(int_field AS FLOAT) AS float_field, 
    <all_other_fields> 
FROM YourTable 

Questo approccio sarà co $ t si esegue la scansione di tutto il tavolo

Per eseguire questo - si dovrebbe usare opzione Mostra pulsante in UI Web BQ e impostare correttamente le opzioni come nell'esempio seguente. Dopo aver eseguito ciò, la tabella avrà quella colonna con float rispetto al tipo di dati intero originale che si desidera. Nota: Si consiglia di utilizzare una corretta/stesso nome di campo sia per int_field e float_field

enter image description here

se solo bisogno di aggiungere nuova colonna che ti avrei puntare a Tables: patch GBQ API.
io non sono sicuro se questa API permette di cambiare il tipo di colonna - dubito - ma è facile controllare

Utilizzando Jobs: insert ESTRATTO e quindi caricare

Qui è possibile estrarre tabella per GCS e quindi caricarlo di nuovo in GBQ con lo schema corretto

L'approccio precedente a) elimina il costo di costo delle tabelle di interrogazione (scansione) eb) può aiutare con le limitazioni che si possono presentare se si dispone di schame complessi (con record/ripetuti/nidificato, ecc. tipo/modalità)

+0

Ciao Mikhail, grazie per la risposta. Tuttavia, voglio cambiare lo schema e mi piacerebbe sapere come è fatto solo usando le query. Proprio come menzionato qui: http://stackoverflow.com/questions/23703701/bigquery-how-can-i-change-the-type-of-one-of-my-column-from-integer-to-string – scaryguy

+0

vedere Nella sezione "Usare SELECT ..." nella mia risposta. cos'altro hai bisogno di sapere? se questo non è sufficiente, potresti voler fornire maggiori dettagli nella tua domanda –

+0

Scusa se non era abbastanza chiaro. Non sono interessato a "trasmettere" all'interno di una query. Voglio cambiare il tipo di dati della colonna. – scaryguy