01_基礎

セクション3 基礎:データの保存 📘

このファイルは 📘 基礎レベル。各ストレージサービスの「役割」と「特徴」を理解することがゴールです。 選定の意思決定ツリーや設計のベストプラクティスは 02_応用.md で扱います。


3.0 全体像:まず「軸」を頭に入れる

ストレージ選定は5つの軸で考えます。この軸が試験のあらゆる選択問題の土台になります。

① ワークロード   : OLTP(更新中心・1行処理) vs OLAP(分析中心・大量集計)
② 構造化の度合い : 構造化(表)/半構造化(JSON等)/非構造化(画像・動画)
③ スケール規模   : GB級 〜 TB級 〜 PB級
④ 整合性要件     : 強整合(ACID) vs 結果整合(最終的に整合)
⑤ レイテンシ要件 : ミリ秒応答が必須か/秒〜分でよいか

試験は「最適なものを1つ」選ばせる形式が大半。上の軸でふるい分けると、ほぼ一意に決まります。


3.1 ストレージシステムの選択:各サービスの役割

主要ストレージ早わかり

サービス 種別 ワークロード 整合性 キーワード
Cloud Storage (GCS) オブジェクトストレージ 強整合(オブジェクト単位) 非構造化・データレイク・バックアップ
BigQuery DWH OLAP 強整合 サーバーレス分析・PB級・SQL
Cloud SQL リレーショナルDB OLTP 強整合(ACID) MySQL/PostgreSQL/SQL Server・リージョナル
AlloyDB リレーショナルDB OLTP+分析(HTAP) 強整合(ACID) PostgreSQL互換・高性能・分析も速い
Spanner 分散リレーショナルDB OLTP 強整合(ACID)・グローバル 水平スケール・無停止・TrueTime
Bigtable NoSQL(ワイドカラム) 大量書き込み/読み取り 結果整合(単一行は強整合) ミリ秒・時系列・IoT・PB級
Firestore NoSQL(ドキュメント) OLTP(ドキュメント) 強整合 モバイル/Web・リアルタイム同期
Memorystore インメモリ キャッシュ Redis/Memcached・サブミリ秒
BigLake ストレージエンジン OLAP(レイク上) GCS/他クラウドをBQから統一管理

⚠️ 同じ「リレーショナル」でも Cloud SQL / AlloyDB / Spanner は別物。リージョナルか・グローバルか・分析併用かで分かれる(後述)。


① Cloud Storage(GCS)— 非構造化データの土台

オブジェクトストレージ。ファイル(オブジェクト)をバケットに格納する。スキーマを持たず、画像・動画・ログ・Parquet/Avro など何でも置ける。

ストレージクラス(アクセス頻度でコストが変わる。後述のライフサイクル管理と必ずセット):

クラス 想定アクセス頻度 最低保存期間 主な用途
Standard 頻繁(ホット) なし 稼働中データ・配信
Nearline 月1回程度 30日 バックアップ・たまに参照
Coldline 四半期に1回程度 90日 アーカイブ(年数回)
Archive 年1回未満(コールド) 365日 長期保管・コンプライアンス保存

⚠️ 取り出し(読み取り)コストは Standard→Archive の順に高くなる。保存料は逆に安くなる。「めったに読まないが消せない」→ Coldline/Archive。

② BigQuery — サーバーレスなデータウェアハウス(OLAP)

フルマネージドのDWH。サーバー管理不要で、ペタバイト級のデータに対しSQLで高速集計できる。ストレージとコンピュート(スロット)が分離しているのが特徴。

BigQueryは「書き込みを大量に更新する用途には不向き」。1行ずつのUPDATE/DELETEを多用するならRDB(OLTP)を選ぶ。

③ Cloud SQL — マネージドな一般RDB(OLTP・リージョナル)

MySQL / PostgreSQL / SQL Server のマネージド版。ACIDトランザクションに対応したリージョナルなRDB。

④ AlloyDB — 高性能なPostgreSQL互換(OLTP+分析)

PostgreSQL互換で、Cloud SQLより高性能。トランザクション(OLTP)と分析クエリの両方が速いHTAP寄りのDB。

⑤ Spanner — グローバル分散・強整合のRDB

水平スケールしながら強整合のACIDトランザクショングローバルに提供する唯一のRDB。TrueTime(GPS+原子時計による高精度な時刻同期)で世界規模の一貫性を実現。

⑥ Bigtable — 低レイテンシ・高スループットのNoSQL

ワイドカラム型のNoSQL。ミリ秒のレイテンシで、毎秒数百万件規模の読み書きにスケールする。HBase API互換

⑦ Firestore — ドキュメント型NoSQL(モバイル/Web向け)

ドキュメント(JSON的)指向のNoSQL。スケーラブルで、モバイル/Webクライアントとのリアルタイム同期・オフライン対応が強み。

⑧ Memorystore — インメモリのキャッシュ

マネージドな Redis / Memcached。サブミリ秒の超低レイテンシ。

⑨ BigLake — レイクとウェアハウスを橋渡し

GCSや他クラウド上のデータを、BigQueryから**統一的に(細粒度アクセス制御付きで)**扱えるようにするストレージエンジン。


3.2 データウェアハウスの利用計画(BigQuery設計の基礎)

DWHは「分析しやすい形」にデータを整えて保管する。OLTPのRDBとは設計思想が逆になる点が重要です。

正規化 vs 非正規化

正規化 (Normalized) 非正規化 (Denormalized)
狙い 冗長排除・更新の整合性 読み取り(分析)の高速化
JOIN 多い 少ない(事前に結合済み)
向く処理 OLTP(Cloud SQL等) OLAP(BigQuery)
正規化(RDB流)              BigQuery流(ネスト構造)
orders ── order_items        orders
  │  JOINが必要                ├─ order_id
  └─ 1:N                       └─ items: ARRAY<STRUCT<sku, qty, price>>
                              (1行に注文明細を内包=JOIN不要)

パーティションとクラスタリング(コスト・性能の要)

機能 何をする 効果
パーティション (Partitioning) テーブルを日付/取り込み時刻/整数範囲で物理分割 不要な区画をスキャンせずスキャン量=コスト削減(プルーニング)
クラスタリング (Clustering) 指定列の値で並べ替えて格納 フィルタ/集計対象を絞り込み、I/Oをさらに削減

スロット(Slot)

BigQueryのクエリを実行する仮想CPUの計算単位。クエリは複数スロットで並列処理される。

試験ポイント:BigQueryでコストを下げる=「スキャン量を減らす」=パーティション+クラスタリング+必要な列だけSELECTSELECT * を避ける)。


3.3 データレイクの利用(GCSとレイク管理の基礎)

データレイク (Data Lake) = 構造化・半構造化・非構造化を問わず、生データをそのまま大量に貯める場所。GCPでは主に Cloud Storage が実体。

データレイク vs データウェアハウス

データレイク(GCS) データウェアハウス(BigQuery)
データ 生データ・あらゆる形式 整形・統合済みの構造化データ
スキーマ スキーマオンリード(読む時に解釈) スキーマオンライト(入れる時に定義)
主な利用者 データエンジニア・データサイエンティスト アナリスト・BI
コスト 安価(保存中心) クエリ性能・分析最適化

レイク管理の3観点(試験で問われる「管理」)

観点 内容 主な手段
ディスカバリ 「どこに何のデータがあるか」を見つけられる Dataplex Catalog(メタデータ検索・タグ)
アクセス制御 誰がどのデータを読めるか IAM・BigLake(細粒度)・Dataplex
コスト制御 安く・無駄なく保管 ストレージクラス+ライフサイクル管理

3.4 データプラットフォームの設計(統合ガバナンスの基礎)

複数のレイク・DWHを横断して、一貫したガバナンス(品質・セキュリティ・発見性)を効かせる。

Dataplex / Dataplex Catalog

Dataplex(論理的なデータ管理レイヤ)
└── レイク(例:販売ドメイン)
    ├── ゾーン: raw(生データゾーン / GCS)
    └── ゾーン: curated(整形済みゾーン / BigQuery)
        └── アセット(実体のバケット/データセット)

データメッシュとフェデレーテッドガバナンス

イメージ:各部門が自分のデータに責任を持ちつつ(自律)、組織共通のガバナンスは Dataplex で横串に効かせる(統制)。


📌 このセクションの基礎まとめ

次は 02_応用.md で選定の意思決定ツリーと設計のベストプラクティスを学びます。