Eine Möglichkeit, das Schema aus einer vorhandenen Tabelle in eine JSON-Datei (vorzugsweise über die Befehlszeile) zu sichern. Ist das möglich?
versuchen Sie es unten
bq show bigquery-public-data:samples.wikipedia
Sie können das Flag –format verwenden, um die Ausgabe zu verschönern
--format: keine | json | hübschjson | csv | sparse | hübsch:
Format für die Befehlsausgabe. Zu den Optionen gehören:
none: ...
pretty: formatted table output
sparse: simpler table output
prettyjson: easy-to-read JSON format
json: maximally compact JSON
csv: csv format with header
Die ersten drei sollen für den Menschen lesbar sein, und die letzten drei sollen an ein anderes Programm übergeben werden. Wenn kein Format ausgewählt ist, wird eines basierend auf dem Befehlslauf ausgewählt.
Als mir klar wurde, dass ich eine teilweise Antwort gegeben habe: o)
Unten macht was PO wollte
bq show --format=prettyjson bigquery-public-data:samples.wikipedia | jq '.schema.fields'
bq show --format=prettyjson bigquery-public-data:samples.wikipedia | jq '.schema.fields'
"
anstelle des Apostrophs benötigt wird'
, also wie folgt:bq show --format=prettyjson bigquery-public-data:samples.wikipedia | jq ".schema.fields"
Sie können das Flag
--schema
[1] hinzufügen , um Tabellendateninformationen zu vermeiden.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-schemas
quelle
jq
.Sie können den REST-API-Aufruf verwenden, um das BigQuery-Tabellenschema als JSON abzurufen. Dokumentationslink: 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
quelle