2016-04-17 5 views
7

Ich versuche, eine CSV-Datei zu laden, und BigQuery erstellt das Schema automatisch.Das Abfragen von BigQuery zur automatischen Erkennung des Schemas

bq load --source_format CSV -F '\t' --skip_leading_rows=1 voterdb.voters gs://[[ redacted bucket ]]/extract.csv 
BigQuery error in load operation: Error processing job 'tokyo-unity-87516:bqjob_r3682474e46ce720f_0000015421aee065_1': No schema specified on job or table. 

Nach https://cloud.google.com/bigquery/federated-data-sources automatischen Erstellen/Folgern das Schema unterstützt.

Antwort

4

Wie in einer früheren Antwort angegeben, Schema automatische Erkennung ist ein Teil der föderierten Datenquelle Abfragen. Es ist unter der Überschrift CSV and JSON schema auto-detection nicht explizit angegeben, dass dies nicht für bq load gilt. Wenn Sie der Meinung sind, dass dies in der Dokumentation nicht klar ist, würde ich Ihnen dringend empfehlen, auf zu klicken. Senden Sie dazu in der oberen rechten Ecke dieser Dokumentationsseite und beschreiben Sie diese Mehrdeutigkeit im Detail.

Wie für den bq load Befehl ist das Tabellenschema gemäß der bq load documentation ein erforderlicher Parameter. Wenn Sie es auslassen, führt dies zu der Fehlermeldung, vor der Sie stehen.

BEARBEITEN Dank Polleyg für das Update. In this blog post wurde angekündigt, dass das Schema auch beim Laden erkannt werden soll. Wie von Chris Sears erwähnt, sollte die --autodetect Flagge Ihre Bedürfnisse erfüllen.

+0

Nach diesem Blog-Post (https://cloud.google.com/blog/big-data/2016/03/google-bigquery-cuts-historical-data-storage-cost-in-half-and-accelerates -many-queries-by-10x) unterstützt die automatische Schemaerkennung auch das Laden - "Dies funktioniert bei Ladezeit für CSV, JSON und AVRO" –

+0

Dies ist nicht mehr korrekt. Siehe meine Antwort zu '--autodetect'. –

1

Pro Link, auf den Sie verweisen - BigQuery unterstützt das automatische Erstellen/Ableiten von Schemata, wenn Sie direkt die Datenquelle query föderiert haben.
Der Fehler, den Sie immer auf load von GCS ist

4

Die --autodetect Flagge ist wahrscheinlich, was Sie wollen. Es funktioniert für CSV- und (Newline-getrennte) JSON-Eingabedateien.

Zum Beispiel ...

bq load --source_format=NEWLINE_DELIMITED_JSON --autodetect yourdataset.yourtable inputfile.json 

Siehe Dokumentation hier: https://cloud.google.com/bigquery/bq-command-line-tool#creatingtablefromfile

Beachten Sie, dass dies nichts mit föderierten Datenquellen zu tun hat.

Verwandte Themen