Open4
BQに関するメモ

- 日付別シャーディングは非推奨。
- https://cloud.google.com/bigquery/docs/best-practices-performance-compute?hl=ja#avoid_tables_sharded_by_date
- 時間パーティションテーブルが推奨。
- 理由
- シャーディングの場合、各テーブルのスキーマとメタデータを保持することになる。
- クエリされた各テーブルの権限検証が必要になる場合もある。
- 上記2点からクエリのオーバーヘッドが増加しパフォーマンスの低下につながってしまう。

パーティションデコレータ
特定のパーティションに書き込みを行う場合はパーティションデコレータを使う。
https://cloud.google.com/bigquery/docs/managing-partitioned-table-data?hl=ja

パーティション分割テーブルのストレージ料金
ストレージ料金はパーティションごとに決まる。
90 日間連続して編集されていないテーブルがある場合、そのテーブルのストレージ料金は自動的に 50% 減少します。パーティション分割テーブルがある場合、各パーティションは、パーティション分割されていないテーブルと同じルールに従って、長期料金の対象となるかどうか個別に検討されます。
https://cloud.google.com/bigquery/docs/best-practices-storage?hl=ja#store-data-bigquery

CSV読み込みの文字コード
BigQuery に読み込む CSV データは UTF-8 でエンコードされている必要があります。他のサポートされているエンコード形式の CSV ファイルがある場合は、BigQuery がデータを適切に UTF-8 に変換できるように、エンコードを明示的に指定する必要があります。
https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-csv?hl=ja#encoding