BigQuery データセット作成オプションの詳細

BigQueryのデータセットは、テーブルやビューを格納する論理的なコンテナです。データセットを作成する際には、以下の様々なオプションを設定できます。

1. データセットID (Dataset ID)

データセットの一意な識別子です。プロジェクト内で重複することはできません。

用途

SQLクエリやAPI呼び出しでデータセットを指定する際に使用します
(例: project_id.dataset_id.table_id

注意点

  • 英数字とアンダースコア (_) のみ使用できます。
  • 一度作成すると、変更できません。慎重に命名してください。

2. ロケーションタイプ (Location type)

データセットが物理的に保存される地理的な範囲を指定します。

選択肢
リージョン特定の単一の地理的場所(例: asia-northeast1 (東京), us-central1 (アイオワ))。データは選択したリージョン内の少なくとも2つの異なるGoogle Cloudゾーンに複製され、ゾーン障害に対する可用性を確保します。
マルチリージョン2つ以上のリージョンを含む広い地理的エリア(例: US (米国全域), EU (欧州連合全域))。データは、そのマルチリージョン内の複数のリージョンにわたって自動的に複製され、より広範な地理的障害に対する可用性と耐久性を高めます。

用途

  • データレジデンシー要件の遵守: 特定の国や地域のデータ所在地の規制(例: GDPR)を満たすためへの対応
  • パフォーマンス: アプリケーションのユーザーに近いロケーションを選択することで、クエリのレイテンシを最小限に抑えることができます
  • コスト: ロケーションによってストレージ料金が異なる場合があります

注意点

一度データセットを作成すると、ロケーションは変更できません。データを別のロケーションに移動するには、新しいデータセットを目的のロケーションに作成し、データを移行する必要があります。

3. 外部データセット

BigQueryの外部にあるデータソースを、現在のデータセットに「リンク」して、あたかもBigQueryのローカルテーブルであるかのようにクエリできるようにする設定です。
BigQuery内にデータをコピーせずに外部ソースを直接参照します。

用途

  • Cloud Spanner / Cloud SQL: これらのRDBのデータをBigQueryから直接クエリ
  • BigLake (Cloud Storage/S3): Cloud StorageやAWS S3に保存されたファイルをBigQueryからクエリ
  • 他のBigQueryプロジェクトのデータセット: 別のBigQueryプロジェクトのデータセットを現在のプロジェクトで参照

注意点

データソースの種類によって、利用できる機能やパフォーマンス特性が異なります。

4. タグ (Tags)

Google Cloudのリソース(BigQueryデータセット自体というよりは、関連するプロジェクトや組織ポリシーレベルで)に割り当てるキーと値のペアのラベルです

用途

  • リソースの整理と分類: プロジェクト横断でのリソース管理を容易にします。
  • コスト管理: 課金レポートでコストをタグ別に分析し、コストの発生源を特定します。
  • 自動化: スクリプトでのリソース選択条件として利用します。

5. 暗号化 (Encryption)

データセット内のテーブルに適用されるデフォルトの暗号化設定を選択します。

選択肢
Google が管理する暗号鍵Googleが自動的にキーを管理し、データがデフォルトで暗号化されます。ほとんどのユースケースでこれで十分です
Cloud KMS 鍵ユーザーがCloud KMS (Key Management Service) で生成・管理する暗号化キーを使用します。より厳格なセキュリティ要件がある場合に選択します

用途

データのセキュリティとコンプライアンス要件を満たすために使用します。

6. 大文字と小文字の区別なし

このオプションを有効にすると、テーブル名の大文字と小文字が区別されなくなります。

用途

テーブル名が大文字と小文字のいずれかで指定されても、同じリソースとして扱いたい場合に便利です。

注意点

これはテーブル名に関する設定であり、テーブル内のデータ(文字列)に対するクエリでの大文字と小文字の区別には影響しません。データの照合には「デフォルトの照合順序」が関係します。

  • 説明:
  • 用途:
  • 注意点:

7. デフォルトの照合順序

このデータセット内のテーブルにおける文字列の比較やソートの動作を定義する設定です。

選択肢
[デフォルト]大文字と小文字を区別する
und:ci大文字と小文字を区別しない

注意点

正しい照合順序を選択しないと、文字列の比較やソートの結果が期待と異なる場合があります。

8. デフォルトのテーブルの有効期限

このデータセット内に作成される新しいテーブルに自動的に適用されるデフォルトの有効期限(日数)を設定します。この日数を過ぎると、テーブルは自動的に削除されます。

用途

  • コスト管理: 不要なデータの永続的な保存を防ぎ、ストレージコストを削減します。保存する必要がない一時的なデータを活用するのに便利
  • データライフサイクル管理: 古いデータの自動クリーンアップをサポートします

9. デフォルトの丸めモード

数値を丸める際のデフォルトの動作を指定します。

選択肢

ROUNDING_MODE_UNSPECIFIED

丸めモードが明示的に指定されていない状態です。これは通常、デフォルトの挙動(多くの場合は ROUND_HALF_AWAY_FROM_ZERO と同等)になるか、あるいは将来的な変更に備えて定義されているプレースホルダーのようなものです。

挙動

実質的には ROUND_HALF_AWAY_FROM_ZERO と同じ挙動になることが多いですが、明示的に指定しない限り、この値を選択する必要は通常ありません。厳密な丸めルールが必要な場合は、他の具体的なモードを選択すべきです。

用途

デフォルトの挙動を受け入れる場合や、将来的にBigQueryのデフォルト丸めモードが変更された場合に、その変更を自動的に適用したい場合に設定される可能性があります。

ROUND_HALF_AWAY_FROM_ZERO (半数をゼロから遠い方に丸める)

このモードは、一般的に「四捨五入」として最も広く認識されている丸め方です。小数部分が .5 の場合、ゼロから遠い方の整数に丸められます。

挙動の例:
  • 2.53 に丸められます
  • 2.12 に丸められます
  • -2.5-3 に丸められます(ゼロから遠い方)
  • -2.1-2 に丸められます
用途

多くのビジネス計算や日常的な丸めで一般的に使用されるモードです。特に、正の値の場合は「切り上げ」、負の値の場合は「切り捨て」に近い感覚で使われます。

ROUND_HALF_EVEN (半数を偶数に丸める / 銀行家の丸め)

このモードは「偶数丸め」や「銀行家の丸め (Banker’s Rounding)」とも呼ばれます。
小数部分が .5 の場合、最も近い偶数に丸められます。 小数部分が .5 でない場合は、通常通り最も近い整数に丸められます。

  • 2.52 に丸められます(最も近い偶数)
  • 3.54 に丸められます(最も近い偶数)
  • -2.5-2 に丸められます(最も近い偶数)
  • -3.5-4 に丸められます(最も近い偶数)
  • 2.12 に丸められます
  • 2.93 に丸められます
用途
  • 統計計算や科学計算: この丸めモードは、多くの値を丸める際に、丸め誤差の累積を最小限に抑える傾向があるため、統計的なバイアスを減らすのに役立ちます。
  • 金融業界: 厳密な会計処理や金融計算で採用されることがあります。
注意点

一般的な「四捨五入」とは異なるため、このモードを使用する際はその挙動を理解しておく必要があります。

10. ストレージの課金モデル (Storage billing model)

BigQueryのストレージ料金の計算方法を指定します。

選択肢
STORAGE_BILLING_MODEL_UNSPECIFIED設定なし(デフォルトのLOGICALと同様になるはずです)
LOGICALBigQueryに格納されているデータの論理的なサイズ(圧縮前のサイズ)に基づいて課金されます。これは最も一般的で推奨されるモデルです。
PHYSICALBigQueryがデータを物理的に保存しているサイズ(圧縮後のサイズ、タイムトラベル期間のデータも含む)に基づいて課金されます。

11. タイムトラベル期間

BigQueryが過去のテーブルスナップショットを保持する最大期間(時間)を設定します。これにより、誤って削除されたデータや変更されたデータを復元することができます。

デフォルト

7日間

用途

誤操作やバグによるデータ損失からの復旧に役立ちます。

  • データリカバリ: 誤操作やバグによるデータ損失からの復旧に役立ちます。
  • ポイントインタイムリカバリ: 特定の時点のデータ状態をクエリすることができます。
タイトルとURLをコピーしました