Come evitare cinque errori comuni in Google BigQuery / SQL

Come evitare i cinque errori più comuni in Google BigQuery / SQL

Mentre lavoravo con BigQuery per anni, ho osservato 5 problemi che vengono comunemente commessi, anche da Data Scientist esperti

Foto di James Harrison su Unsplash

Google BigQuery è popolare per molte ragioni. È incredibilmente veloce, facile da usare, fornisce l’intera suite GCP, si occupa dei tuoi dati e si assicura di rilevare gli errori in anticipo. Inoltre, puoi utilizzare SQL standard e alcune funzioni integrate molto interessanti. In breve, è quasi il pacchetto completo!

Assumi sempre la presenza di bug e duplicati, sempre!

Tuttavia, simile ad altri servizi web e linguaggi di programmazione, quando si lavora con BigQuery ci sono alcune cose che è necessario conoscere per evitare di cadere in una trappola. Nel corso degli anni, ho commesso molti errori da solo e ho realizzato che quasi tutti quelli che conoscevo, ad un certo punto, hanno incontrato gli stessi problemi. Voglio evidenziare qui alcuni di questi problemi perché li ho scoperti abbastanza tardi nella mia carriera e ho visto anche altri data scientist molto esperti affrontare gli stessi problemi.

Pertanto, ti fornirò la mia lista dei primi 5 potenziali errori che quasi tutti commettono in BigQuery ad un certo punto e di cui potresti persino non essere a conoscenza. Assicurati quindi di evitarli perché ogni punto può avere conseguenze gravi e tieni presente la giusta attitudine nel lavoro con i dati: Assumi sempre la presenza di bug e duplicati, sempre!

1. Stai attento quando usi “NOT IN”

Succede così in fretta. Sei di fretta e vuoi controllare rapidamente due tabelle per vedere se un determinato elemento menzionato in una delle tabelle esiste anche all’interno di una seconda tabella. Perché non utilizzare quindi una dichiarazione NOT IN, dato che sembra così intuitivo?

Il problema è che NOT IN non funziona come previsto quando hai valori NULL nella tua tabella. Se è così, non otterrai i risultati desiderati!

Vedilo tu stesso e verifica questo esempio di codice in cui sto cercando solo di trovare le categorie da input_2 che non sono presenti in input_1:

WITH  input_1 AS (  SELECT    category  FROM (    SELECT      ["a", "b", CAST(NULL AS STRING), "d"] AS category),    UNNEST(category) category ),  input_2 AS (  SELECT…