誰かの参考になれば。
受験概要
- 受験日 2026/01/03
- オンライン受験(Kryterion)※複数回目
- 試験時間 2h ※見直し含めて1h掛からず
- 問題数 40問 ※合格したので正答率不明
受験後の感想
- 以下のUdemyの模擬試験の的中率?が高すぎ
- 問題数が少なかったのでサクッと終わった
- Kryterionのオンライン試験で受験中の回線トラブルが起きなかった(初)
勉強法
- Udemy:【最短合格】Google Cloud Associate Data Practitioner模擬試験問題集(日本語版)
- 割引ありで3000円→1800円
- 一旦真面目に模擬試験を受けて、直しをしながらGeminiと壁打ち
- 物理的にノートに適宜メモを取る
- VSCodeでMDにまとめつつ、Copilotで補完するととても楽ができる
- 勉強時間:3日間集中(10hくらい)
- Udemyの模擬試験で2回とも70%を超えていた
- ACEでGCの基礎を押さえられていたお陰か以下くらい済んだ
- BQとLooker(Studio含む)の深掘り
- 各データパイプラインサービスの整理
- BQ×AI,MLやモデルの理解
前提
- 一般的なwebシステム開発の経験あり
- AWSは触っていた
- Docker、k8sはudemyで学習済み
- いくつかのGoogleCloud資格取得済み(CDL,GAIL,ACE)
- まだ実際のGoogle Cloud環境は一切触ってない(触ると混乱するため)
得られた用語など
※自分用メモ。正確性に責任負いません
各Data pipeline
- Cloud Dataflow(Apache Beam): Streaming/Batch双方をカバーし同一の処理を再利用可能、テンプレート(cloud storage pub/sub->軽微な変換->BQ)もある
- Cloud Dataproc(Apache Spark, Hadoop): 計算リソース(クラスタ)の管理や、処理の構築はユーザ
- Cloud Composer(Apache Airflow): 複雑かつ細かいバッチ、ワークフロー制御が可能、実際の処理は呼び出した先のプログラム等にお任せ
- Cloud Data Fusion: ロー/ノーコードでデータを繋ぐ、GUIベース、プラグインで拡張可能
- Dataform: BQ内専用、SQLX(SQL+独自)、js利用可能、Git連携可、CI/CD対応、データ品質管理
- Cloud Pub/Sub: メッセージングサービス、リアルタイムデータ連携
- BQへのストリーミングテンプレート
- subscribe側のフロー制御: ユーザ側で処理速度に合わせて調整可能(message,bytes,ack deadlineなど)
ETL / ELT / ETLT
- データパイプラインの処理パターン。各処理Extract, Transform, Loadの実行順序をそのまま表す
- 基本的にはETL(抽出->加工->投入)
- 速度優先でまず格納したい場合にELT
- ETLで投入して、さらに追加で加工データ作成する場合にETLT
特殊なデータ型(バイナリ)
- Apache Parque(パルケ): 列指向のデータフォーマット、圧縮率が高い、BQネイティブサポート、列単位での高速検索・集計・読み込みが可能
- Apache Avro(アブロ): 行指向のデータフォーマット、スキーマ情報を含む、BQネイティブサポート、主にデータ連携やストリーミング処理で使用
BigQuery
基本
- データセット: テーブルのコンテナ、プロジェクト内に複数作成可能
- テーブル: データセット内に作成される、行と列で構成されるデータの集合
- スロット: BQの処理リソース、オンデマンド課金は自動で割り当てられるが、予約購入も可能
- リザベーション: BQの処理リソースを予約購入し、コストを抑えるための仕組み
- BQ Editions
- Standard Edition: オンデマンド課金、スロットの自動割り当て
- Flat-rate Edition: スロットを予約購入、専用リザベーションでリソース確保
- Flex-slot: 60分単位でスロットを購入、短期的な負荷増加に対応
- BQ Editions
- タイムトラベル: 最大7日前までのデータを復元可能(デフォルト7日間、2〜7日で設定可能。ストレージ料金にハネる)
- 組み込み関数: 日付操作、文字列操作、数学関数、集計関数など、多数の組み込み関数を提供
- 標準SQL: ANSI SQL準拠のクエリ言語、BQ独自の拡張も含む
- ジョブ: BQで実行される操作の単位、クエリ実行、データの読み込み、エクスポートなど
- モニタリング: Cloud Monitoringと連携し、BQの
高速化・コスト削減手法
- クエリキャッシュ: 同一クエリの再実行時に結果をキャッシュから取得、コスト削減と高速化
- マテリアライズドビュー: 定期的に更新される集計済みビュー、クエリの高速化(BQの場合は自動更新可)
- パーティション分割: 日付や整数値でテーブルを分割、クエリの高速化とコスト削減
- クラスタリング: 頻出するカラムでデータをまとめて格納、クエリの高速化
権限管理
- IAMロール: プロジェクト、データセット、テーブル単位でのアクセス権限を設定
- 役割例: ビューア、編集者、管理者、データ所有者など
- 列レベルセキュリティ: 特定の列に対するアクセス制御を設定、機密データの保護
- ポリシータグ: 列レベルセキュリティの設定に使用されるラベル、データ分類に基づいてアクセス制御を適用
- データカタログ連携: ポリシータグをData Catalogと連携させ、組織全体で一貫したデータ分類とアクセス制御を実現
- データマスキング: 機密データを部分的に隠す、アクセス権限に応じて表示内容を制御
- 行レベルセキュリティ: 特定の行に対するアクセス制御を設定、ユーザごとに異なるデータアクセスを実現
- ポリシー: 行レベルセキュリティのルールを定義、ユーザ属性や条件に基づいてアクセス制御を適用
- カラムレベル: 特定のカラムに対するアクセス制御を設定、機密データの保護
- AEAD(Authenticated Encryption with Associated Data)関数: 暗号化されたデータと関連情報を同時に保護するための関数
- 厳格なデータアクセス制御、コンプライアンス要件の遵守に利用
- 設定方法: CREATE TABLEやALTER TABLEでカラムに適用可能
- AEAD(Authenticated Encryption with Associated Data)関数: 暗号化されたデータと関連情報を同時に保護するための関数
- 承認ビュー: 元テーブルへの直接アクセスを防ぎ、ビュー経由でのみデータを参照可能にする
高度な機能
- BQ ML: SQLで機械学習モデルを構築、トレーニング、評価、予測が可能
- サポートされるモデルタイプ:
- 回帰(売上予測、価格予測、需要予測など): 線形回帰(LINEAR_REG)
- 二値/多値分類(スパム検出、顧客セグメンテーション、異常検知など): ロジスティック回帰(LOGISTIC_REG)
- クラスタリング(顧客クラスタリング、製品分類、市場セグメンテーション): K-means(KMEANS)
- 時系列予測(売上予測、在庫管理、需要予測など): ARIMA+(ARIMA_PLUS)
- レコメンデーション(パーソナライズド推薦、商品推薦、コンテンツ推薦など): 行列分解(MATRIX_FACTORIZATION)
- ディープラーニング(画像認識、自然言語処理、音声認識): DNN_CLASSIFIER, DNN_REGRESSOR
- Vertex AIとの連携: トレーニング済みモデルをVertex AIにエクスポートして、さらに高度なデプロイや管理が可能
- Geminiや他の大規模言語モデル(LLM)との連携も可能
- サポートされるモデルタイプ:
- モデル作成構文サンプル
CREATE MODEL `project.dataset.model_name`
OPTIONS(
model_type='linear_reg',
input_label_cols=['label_column'],
data_split_col='split_column',
data_split_method='random',
data_split_eval_fraction=0.2
) AS
SELECT
feature1,feature2,label_column,split_column
FROM
`project.dataset.training_table`;
- ウィンドウ関数: 集計関数を使用して、クエリ結果セット内の行に対して計算を実行
- 例: ROW_NUMBER(), RANK(), DENSE_RANK(), NTILE(), LAG(), LEAD()
- 外部テーブル: GCSやCloud Bigtableなどの外部データソースをBQから直接クエリ可能にする
- オブジェクトテーブル: GCSバケットをBQのテーブルとして扱い、オブジェクトを行データとして直接クエリ可能にする
- データ転送サービス(DTS:Data Transfer Service): 定期的に外部データソースからBQにデータを自動転送
データ、環境移行
- BQ Data Transfer Service: 定期的に外部データソースからBQにデータを自動転送
- BQ Migration Service: 他のデータウェアハウスからBQへのデータ移行を支援
- CDC(Change Data Capture): データベースの変更をリアルタイムでキャプチャし、BQに反映
Cloud SQL
- フルマネージドのリレーショナルデータベースサービス
- サポートされるDBエンジン: MySQL、PostgreSQL、SQL Server
- 自動バックアップ、スケーリング、パッチ適用、監視などの管理機能を提供
- HA構成やリードレプリカをサポートし、高可用性とパフォーマンスを向上
- リージョンHA: 異なるゾーンにプライマリとセカンダリインスタンスを配置し、障害発生時に自動フェイルオーバーを実行
- クロスリージョンレプリケーション: 異なるリージョンにリードレプリカを作成し、災害復旧とグローバルな読み取りパフォーマンスを向上
Cloud Spanner
- グローバル分散型のフルマネージドリレーショナルデータベースサービス
- 高い可用性とスケーラビリティを提供
- 強力な一貫性とACIDトランザクションをサポート
Cloud Bigtable
- フルマネージドのNoSQLビッグデータデータベースサービス
- 大規模なデータセットの低レイテンシアクセスと高スループットを提供
- HBase互換APIをサポートし、既存のHBaseアプリケーションと連携可能
Cloud Firestore
- フルマネージドのNoSQLドキュメントデータベースサービス
- リアルタイムデータ同期とオフラインサポートを提供
- スケーラブルで高可用性を持ち、モバイルおよびウェブアプリケーションに最適
- DatastoreモードとNativeモードの2つのモードを提供
- Datastoreモード: 既存のDatastoreアプリケーションとの互換性を提供(古い)
Cloud Filestore
- フルマネージドのNFSファイルストレージサービス
- 高性能でスケーラブルなファイル共有を提供
- Compute EngineやGKEなどのコンピューティングリソースと連携可能
Looker / Looker Studio
- データ分析+ビジュアル化
- Lookerがオリジナル、Looker Studioはコンソール操作のみの簡易版
- BQで元データ管理、Looker/Studioでモデリング、可視化
Looker
- LookML(Modeling Language)で処理を定義 ※ML≠MachineLearning
- プロジェクト単位でGit連携可
- Model: DB接続、ExploreとUser紐付け
- View: 接続先テーブルやselect結果
- Dimension: Group by, データの切り口
- Measure: 集計値, 計算結果
- Explore: viewのjoin定義
- Derived Table: 一時表,中間表
- Substition Operator: 置換用の識別子、オブジェクト変更の差分を吸収させたり
- Liquid: 制御用の言語?
- 権限管理: Looker独自のロールベースアクセス制御(RBAC)、詳細な権限設定が可能
- ユーザ属性の利用: 利用者のuser attributeに基づいて、データアクセスや表示内容を動的に変更可能
- ダッシュボードとレポート: インタラクティブなダッシュボード作成、スケジュール配信やアラート設定も可能
- データアクション: Lookerから直接外部システムにデータを送信、更新、トリガー可能
- API: Lookerの機能をプログラムから操作可能にするRESTful API
- カスタムビジュアライゼーション: JavaScriptを使用して独自のチャートやグラフを作成可能
- データ統合: 複数のデータソースを統合し、一元的な分析が可能
Looker Studio
- データブレンド機能
- カスタムフィールド
- Google workspace相当の権限管理のみ
Vertex AI
- データサイエンスとMLのための統合プラットフォーム(AI/MLの工場+デリバリ)
- 工場
- AutoML: コード不要でモデル構築、トレーニング、デプロイが可能
- カスタムトレーニング: 独自のコードやアルゴリズムを使用してモデルをトレーニング
- Vertex AI Studio: ノーコード/ローコードでMLモデルを構築、トレーニング、デプロイ可能なGUIベースのツール
- 管理
- モデルレジストリ: トレーニング済みモデルのバージョン管理と追跡
- モデルモニタリング: デプロイ済みモデルのパフォーマンスと精度を監視
- Feature Store: 機械学習モデルで使用する特徴量を一元管理
- デリバリ
- パイプライン: MLワークフローの自動化と管理
- モデルデプロイ: トレーニング済みモデルをエンドポイントにデプロイし、リアルタイム予測を提供
- API: 予測、トレーニング、モデル管理のためのRESTful API
Jupyter Notebook
- オープンソースのWebアプリケーション、コード、数式、可視化、テキストを1つのドキュメントで扱え、共有知化、再処理に便利
- カーネル: Jupyter Notebookでコードを実行するためのバックエンドプロセス、Python、R、Juliaなど複数の言語に対応
Colab Enterprise
- 企業向けColab、GCP連携やセキュリティ強化
- マジックコマンド: セル内で特定の機能を実行するためのコマンド(例: %timeitでコードの実行時間測定)
- BQマジックコマンド: %%bigquery でセル内で直接BQクエリ実行可能 BQ内の巨大データに対して学習や分析を行う際に便利
Cloud Storage
- ストレージクラス
- Standard: 頻繁にアクセスするデータ向け、高い可用性と耐久性
- Nearline: 月1回程度アクセスするデータ向け、低コスト
- Coldline: 年1回程度アクセスするデータ向け、さらに低コスト
- Archive: 長期保存向け、最低コスト
- ライフサイクル管理: オブジェクトの自動移行や削除ルールを設定、コスト最適化が可能
- 厳格なポリシー適用: オブジェクトの保存期間やアクセス頻度に基づいて、適切なストレージクラスへの自動移行や削除を設定可能
- Autoclass: オブジェクトのアクセスパターンに基づいて、最適なストレージクラスに自動的に移行
- バケットロケーション
- マルチリージョン: 複数のリージョンにデータを分散、最高の可用性と耐久性
- デュアルリージョン: 2つの指定リージョンにデータを分散、特定の地理的要件に対応
- リージョン: 単一リージョンにデータを保存、低レイテンシアクセスが可能
- セキュリティ
- IAMポリシー: バケットやオブジェクト単位でのアクセス制御
- ACL: オブジェクト単位での詳細なアクセス制御
- 監査ログ: Cloud Audit Logsと連携し、アクセス履歴を記録
- データ改竄、変更保護
- バージョニング: オブジェクトの変更履歴を保存、誤削除や上書きからの復元が可能
- オブジェクト保持ロック: オブジェクトの削除や変更を一定期間防止(ポリシー設定)(WORM: Write Once Read Many、法的保持要件に対応)
- 例: コンプライアンス要件、法令遵守
- オブジェクトホールド: オブジェクトの削除や変更を一時的に防止(手動操作)
- 例: 訴訟対応、セキュリティ調査対応
暗号化キーのパターン
- GMEK: Google管理の暗号化キー(GCのデフォルト暗号化で利用される)
- CMEK: 顧客提供キーをCloud KMSで管理
- CSEK: ユーザ側で完全に暗号化キーを管理
その他
- ML,AIにおける"回帰": データから平均値へ戻ること -> 法則性を導き出すこと