Vai al contenuto

Convertitore di schema da JSON a BigQuery — Numio

Genera uno schema di tabella Google BigQuery (un array JSON di campi name, type e mode) da un esempio JSON. Gli array diventano REPEATED, gli oggetti annidati diventano RECORD e tutti gli elementi di un array vengono uniti in un solo schema.

Redazione di un file di schema per bq load o bq mk --schema da un evento di esempio o una risposta API.

JSON

Big Query Schema

Quando usarlo

  • Redazione di un file di schema per bq load o bq mk --schema da un evento di esempio o una risposta API.
  • Verifica del modo in cui gli oggetti e gli array nidificati in un record di log vengono mappati alle colonne RECORD e REPEATED prima di creare una tabella.

Come si usa

  1. Incolla un oggetto JSON o una serie di record di esempio nell'editor di sinistra oppure utilizza il pulsante carica file per aprire un file UTF-8.
  2. Leggi lo schema a destra; controlla il tipo scelto per ogni campo, in particolare date, stringhe numeriche e array.
  3. Copia l'array JSON, regola i tipi o imposta la modalità su REQUIRED dove necessario e salvalo come file di schema.

Oggetto campione JSON

{
  "order_id": 1024,
  "zip": "02139",
  "coupon": null,
  "created_at": "2026-01-05T10:00:00Z",
  "items": [{ "sku": "A1", "qty": 2 }, { "sku": "B7", "price": 4.5 }]
}

BigQuery schema JSON

[
  {
    "name": "order_id",
    "type": "INTEGER",
    "mode": "NULLABLE"
  },
  {
    "name": "zip",
    "type": "STRING",
    "mode": "NULLABLE"
  },
  {
    "name": "coupon",
    "type": "STRING",
    "mode": "NULLABLE"
  },
  {
    "name": "created_at",
    "type": "TIMESTAMP",
    "mode": "NULLABLE"
  },
  {
    "name": "items",
    "type": "RECORD",
…

Dettagli e limiti

Le stringhe vengono digitate TIMESTAMP solo quando assomigliano a una data-ora ISO (2026-01-05T10:00:00Z) e DATE solo per un YYYY-MM-DD nudo; tutto il resto, comprese le stringhe numeriche come "02139", rimane STRING.

Un valore nullo o un array vuoto non contiene alcun tipo, quindi diventa STRING (NULLABLE o REPEATED) a meno che un altro record non fornisca un valore. La modalità REQUIRED non viene mai generata.

I campi vengono uniti in tutti gli elementi dell'array: INTEGER con FLOAT diventa FLOAT e altri tipi in conflitto ricadono in STRING.

La conversione viene eseguita nel tuo browser; non viene caricato nulla.

FAQ

Perché la mia colonna timestamp è digitata TIMESTAMP e non DATETIME?

Il generatore non distingue le date e gli orari suddivisi in zone e locali; qualsiasi stringa data-ora ISO diventa TIMESTAMP. Modificalo manualmente in DATETIME se i valori non hanno fuso orario.

Posso incollare una serie di record?

Sì. Un array radice di oggetti viene unito in uno schema, quindi un campo presente solo in alcuni record viene comunque incluso. NDJSON (un oggetto per riga) non viene analizzato; racchiudere le righe tra [ ] con virgole.

Come vengono digitati i valori nulli?

Come NULLABLE STRING quando nessun altro campione fornisce un valore al campo, come mostra il coupon nell'esempio. Fornisci un campione non nullo o modifica il tipo, se la colonna è numerica o RECORD.

Specifiche e riferimenti