case-kの備忘録

日々の備忘録です。データ分析とか基盤系に興味あります。

BigQueryにタブ区切りのTSVファイル[テキスト]を全件ロードする方法

ただの備忘録です。業務でタブ区切りの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

読んでいただきありがとうございました。

参考
BigQuery へのデータの読み込みの概要  |  BigQuery  |  Google Cloud