Een BigQuery tabelheeft een schema dat kan worden bekeken in de web-UI, bijgewerktof gebruikt om laad gegevensmet de tool bq
als een JSON-bestand. Ik kan echter geen manier vinden om dit schema van een bestaande tabel naar een JSON-bestand te dumpen (bij voorkeur vanaf de opdrachtregel). Is dat mogelijk?
Antwoord 1, autoriteit 100%
een manier om een schema van een bestaande tabel naar een JSON-bestand te dumpen (bij voorkeur vanaf de opdrachtregel). Is dat mogelijk?
probeer hieronder
bq show bigquery-public-data:samples.wikipedia
U kunt de vlag –format gebruiken om de uitvoer mooier te maken
–format: geen|json|prettyjson|csv|sparse|pretty:
Formaat voor uitvoer van opdrachten. Opties zijn onder meer:
none: ...
pretty: formatted table output
sparse: simpler table output
prettyjson: easy-to-read JSON format
json: maximally compact JSON
csv: csv format with header
De eerste drie zijn bedoeld om leesbaar te zijn voor mensen, en de laatste drie zijn
om naar een ander programma te gaan. Als er geen formaat is geselecteerd, wordt er een gekozen
op basis van de opdrachtuitvoering.
Ik realiseerde me dat ik een gedeeltelijk antwoord heb gegeven :o)
Hieronder doet wat PO wilde
bq show --format=prettyjson bigquery-public-data:samples.wikipedia | jq '.schema.fields'
Antwoord 2, autoriteit 63%
U kunt de vlag --schema
[1] toevoegen om informatie over tabelgegevens te vermijden.
bq show --schema --format=prettyjson [PROJECT_ID]:[DATASET].[TABLE] > [SCHEMA_FILE]
bq show --schema --format=prettyjson mydataset.mytable > /tmp/myschema.json
[1] https://cloud.google.com/bigquery/docs /managing-table-schema’s
Antwoord 3, autoriteit 4%
Antwoord update
Sinds oktober 2020,
je kunt ook een SQL-query uitvoeren op INFORMATION_SCHEMA.COLUMNS
, wat een soort introspectieve functionaliteit is.
SELECT *
FROM <YOUR_DATASET>.INFORMATION_SCHEMA.COLUMNS
en nest de gegevens met behulp van een aggregatiefunctie zoals
SELECT table_name, ARRAY_AGG(STRUCT(column_name, data_type)) as columns
FROM <YOUR_DATASET>.INFORMATION_SCHEMA.COLUMNS
GROUP BY table_name
Het zijn ook interessante metadata in INFORMATION_SCHEMA.VIEWS
als je ook de broncode van je views nodig hebt.
Klik vervolgens op resultaten opslaan / JSON vanuit de BigQuery-interface, of plaats deze in uw geval in de bq query
-opdrachtregel.
Bron: BigQuery-release-opmerkingen
Antwoord 4, autoriteit 3%
U kunt de REST API-aanroep gebruiken om het BigQuery-tabelschema als JSON op te halen. Documentatielink: https://cloud.google.com/bigquery /docs/reference/rest/v2/tables/get
curl 'https://bigquery.googleapis.com/bigquery/v2/projects/project-name/datasets/dataset-name/tables/table-name' \
--header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json' \
--compressed