ただの備忘録です。業務でタブ区切りの8万のTSVファイル(テキスト)をBigQueryに全件ロードする方法を探してた際のtipsです。ログデータを扱う場合、タブ区切りになっていることがあるかと思います。bqコマンド使ったロード方法やサポートされているデータ形式は公式サイト通りで、ロード方法も書いてありますが、タブ区切りのロード方法は書いてなかったので備忘録として投稿します。ロードしたいデータはGCSにおいた状態で書いてます。
# サポートされているデータ形式 ・CSV ・JSON(改行区切りのみ) ・Avro ・Parquet ・ORC
# tsv load
bq load --source_format=CSV --encoding=UTF-8 --field_delimiter="\t" [dataset.table] [gs://*******************/*]
GBQにロードされてることが確認できると思います。
「--field_delimiter="\t"」を書けばロードできるよって話でした。
単純なCSVのロードは以下の通りです。(1ファイル単位でカラム情報がついてる場合です)
$ bq load --source_format CSV --autodetect [dataset.table] gs://<gcs-path>/*
headerをスキップしたい場合は以下のように書きます。
オープンデータなど2行余計にあるようなデータには有益です。
bq load --skip_leading_rows=2 --source_format CSV [dataset.table] gs://<gcs-path>/*.txt
読んでいただきありがとうございました。