Google PDE: BigQuery による分析とウェアハウスエンジニアリング — 学習ガイド

こちらの一部です: Google Professional Data Engineer — 学習ガイド. 検証済みの解答で練習: Google試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.

概要

BigQueryは、ストレージとコンピューティングを分離した、サーバーレス、カラムナ、MPP(超並列処理)分析ウェアハウスであり、ほぼ無限のスケール、ANSI SQL、統合されたガバナンスを提供します。BigQueryでのウェアハウスエンジニアリングは、スキーマ設計(パーティショニング、クラスタリング、非正規化と正規化の比較、ネストされたレコード)、取り込みパターン(バッチロード、ストリーミング、Storage Write API)、およびワークロード管理(オンデマンド vs. 容量ベースのエディションと予約)のバランスを取ることが重要です。堅牢なセキュリティ(承認済みビュー、行/列レベルのポリシー、ポリシータグ)は、コスト管理およびパフォーマンスツールと共存し、スキャンされるバイト数を最小限に抑え、レイテンシを削減します。このセクションでは、本番環境で予測すべきコア設計、運用、および障害モードについて説明します。

ストレージとセマンティクス:データセット、テーブル、ビュー、レイクアクセス

undefined

WHERE _TABLE_SUFFIX >= ‘2010’。

クエリの最適化とワークロード管理

取り込み、フェデレーション、リカバリ

セキュリティ、ガバナンス、コスト管理

実践的な問題シナリオ

NovaCare Healthは、地域的な遠隔医療プラットフォームを運営しています。パイロット版では単一テーブルのpatient_and_visit設計で対応していましたが、規模が100倍になるとレポートがタイムアウトし、ストリーミングのupsertによって重複が発生し、パートナーからは厳格なデータ分離が要求されるようになりました。

アプローチ:

  1. スキーマとレイアウトの再設計

    • 正規化されたコアテーブルを作成します: patients(patient_id, demographics, updated_at) と visits(visit_id, patient_id, visit_ts, metrics, updated_at)。
    • visitsテーブルをDATE(visit_ts)でパーティション分割し、patient_idとvisit_idでクラスタリングします。ダッシュボードの速度を上げるため、小さな参照ディメンションはvisitsに非正規化して保持します。
    • 理由: 正規化により、単一のホットなテーブルでの高コストな自己結合や重い行の更新を回避できます。パーティション分割は履歴データのスキャンをプルーニングし、クラスタリングはpatient_idでの結合とフィルタを同じ場所に配置することでシャッフルを削減します。
  2. Storage Write APIによる取り込みとべき等性の強制

    • Dataflowパイプラインを使用して、受信イベントを解析、検証し、べき等なオフセットを持つ名前付きストリームでStorage Write APIに書き込みます。
    • 不正な形式のイベントは、トリアージ用のデッドレターBigQueryテーブルにルーティングします。
    • 理由: Storage Write APIは、従来のストリーミングよりも高いスループット、低いレイテンシ、および優れた重複排除の保証を提供します。デッドレタリングにより、パートナーのデータ品質問題に対する可視性が維持されます。
  3. クエリにおける鮮度と重複排除のための設計

    • インタラクティブな分析では、最新のパーティションをクエリする前に短いウォーターマーク(例:観測された可用性の2倍)を追加するか、_PARTITIONDATEでフィルタリングして(where partition_date <= CURRENT_DATE())、処理中の行を除外します。
    • 上流でのリトライを許容する必要があるビューでは、ROW_NUMBER() OVER (PARTITION BY visit_id ORDER BY event_ts DESC) = 1 を使用します。
    • 理由: ストリーミングは短い間、結果整合性です。ウォーターマークとウィンドウベースの重複排除は、一時的なデータの欠落や重複からダッシュボードを保護します。
  4. マテリアライズドビューによる共通集計の高速化

    • DATE(visit_ts)と患者コホートでグループ化された日次KPIのために、visitsテーブル上にパーティションに合わせたMVを作成します。述語が書き換えと互換性があることを確認します。
    • 理由: MVは、定期的なレポートのレイテンシとスキャンされるバイト数を削減します。BigQueryはクエリを透過的に書き換えてMVを使用します。
  5. テナントの分離と詳細なセキュリティの強制

    • 各パートナーを専用のデータセットに配置します。パートナーグループに最小権限のデータセットロールを付与します。
    • 生のテーブルを公開することなく、共有のクロスパートナーベンチマークのために承認済みビューを公開します。
    • PII列にポリシータグを適用し、visitsテーブルに行アクセスポリシーを追加して、内部のマルチテナント分析のためにpartner_idによるアクセスを制限します。
    • 理由: データセットごとのテナントセグメンテーションに加えて、承認済みビューとポリシータグを使用することで、厳選された共有を可能にしながら最小権限を強制します。
  6. エディション、予約、オートスケーリングによるワークロード管理

    • BigQueryエディションでキャパシティを購入し、2つの予約を作成します: etl(Dataflowシンク、スケジュールされた変換)とbi(アドホック/レポーティング)。プロジェクトを適宜割り当て、オートスケーリングを有効にしてピークを吸収します。
    • ELTクエリを明確なSLAを持つバッチとしてスケジュールします。インタラクティブなプロジェクトにはmaximum_bytes_billedを設定します。
    • 理由: 予約を分離することで、ETLがBIを枯渇させるのを防ぎます。オートスケーリングは、過剰なプロビジョニングなしに突発的な負荷に対応します。
  7. コストの統制と使用状況の監視

    • visit_tsでのフィルタを必須にし、共有ビューでのSELECT *を拒否します。INFORMATION_SCHEMA.JOBSを使用して、プルーニングされていないスキャンやスキューのある結合を検出します。
    • ログシンクを使用してBigQueryの監査ログをPub/Subにエクスポートし、visitsテーブルへのinsertジョブでフィルタリングして、予期せぬ急増に対する監視アラートをトリガーします。
    • 理由: バイトプルーニングと列の射影はコストを管理します。監査ログは、アクセスパターンと異常をほぼリアルタイムで明らかにします。
  8. リカバリとバックフィルの計画

    • コンプライアンスとタイムトラベルのニーズに合わせたデフォルトのテーブル有効期限ポリシーを有効にします。大規模な編集の場合は、スナップショットを作成し、変更を実行し、問題があれば迅速にロールバックします。ストレージを複製することなく、開発/テストのwhat-if分析にはテーブルクローンを使用します。
    • 理由: スナップショットとクローンは、高速でスペース効率の良いセーフティネットを提供します。タイムトラベルは、小さな修正リストアをカバーします。
  9. インウェアハウスMLの統合

    • 加工された特徴量をパーティション分割テーブルに保存し、再入院リスクのためのBigQuery ML分類モデルをトレーニングします。Vertex AIでホストされている外部モデルについては、リモートモデルを作成し、予測をクラスタ化テーブルにキャッシュして低レイテンシの結合を実現します。
    • 理由: MLをデータの近くに置くことで、データの移動とガバナンスの複雑さを軽減します。リモート推論をキャッシュすることで、レイテンシとコストを償却します。

この設計により、NovaCareは100倍の負荷下でも予測可能なパフォーマンス、強力なテナント分離、および統制されたコストを達成し、同時に低レイテンシの分析と再現可能なリカバリを維持します。


データストレージ、データレイク、ファイル形式 · すべてのドメイン · Dataflow と Apache Beam によるストリーム処理

これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

試験に合格する →

Googleを閲覧 →

Related guides

オールインワンアクセス

1つのサブスクリプション。すべての試験。

すべてのプランで、無制限の回答検索、模擬試験、AI解説、および完全なリソースライブラリが利用可能 — 20以上の言語に対応。

月額
24.87
Just €0.83/day
すべて含まれています:
  • 無制限の回答検索
  • 無制限の模擬試験
  • AIを活用した解説
  • 完全なリソースライブラリ
  • 20以上の言語
  • 毎週のコンテンツ更新
  • 特典 & 紹介
  • 優先サポート
無料トライアルを開始

クレジットカード不要*

ベストバリュー
12ヶ月
179.87
Just €0.49/daySave 40%
すべて含まれています:
  • 無制限の回答検索
  • 無制限の模擬試験
  • AIを活用した解説
  • 完全なリソースライブラリ
  • 20以上の言語
  • 毎週のコンテンツ更新
  • 特典 & 紹介
  • 優先サポート
無料トライアルを開始

クレジットカード不要*

✓ 無料プランが含まれています · ✓ いつでもキャンセル可能 · ✓ すべてのプランで製品の全機能が利用可能