- Google Cloudに関する記事
【Professional Data Engineer】試験直前対策!これだけは覚えておこう! プラス 5 点で合格を勝ち取る!
みなさん、こんにちは! クラウドエースのラリオスです! 普段はエモーショナル エバンジェリストとして、Google Cloud の魅力をみなさんにお伝えしています。また、Google Cloud 認定トレーナーとして Google 公式トレーニングの講師も務めています。私自身、Google Cloud の認定資格はすべて取得しています。
さて、今回は Google Cloud の認定資格の一つである Professional Data Engineer の試験をこれから受けようとする方のために、これだけは覚えておいて欲しいポイントをお伝えします。ぜひ、このコラムを読んで合格を勝ち取ってください!
目次
はじめに
この記事の内容
試験の利用規約により、試験の具体的な内容については詳しく触れることができませんが、合格に必要な知識について、特にサービスに焦点を当てて解説していきます。合格に必要な知識をしっかり理解すれば、Google Cloud の公式ドキュメントを参考に、効率的に学習を進められますし、実務にも活かせるスキルが身につくはずです。
ただ、この記事を読んだからといって必ず合格できるわけではありません。公式の試験ガイドや模擬試験も活用して、しっかりと準備を進めてくださいね。
一緒に Google Cloud の世界を楽しみながら、合格を目指しましょう!
どんな方に読んで欲しいか
- Professional Data Engineer 試験の出題傾向を知りたい方
- 試験直前で最後の追い込みをかけている方
特に 2 の方は効率よく出題範囲をカバーできるのでオススメです!
Professional Data Engineer 試験とは
Professional Data Engineer 認定試験は、データ処理システムの設計、構築、デプロイ、監視、保守、セキュリティに関する能力を評価する、2 時間の選択式試験です。試験は英語と日本語で提供されます。
試験範囲には、データ処理システムの設計、データの取り込みと処理、データの保存、分析用データの準備と使用、データワークロードの管理と自動化が含まれます。
試験を受けるための前提条件はありませんが、Google では、受験者が業界で少なくとも 3 年の経験を持ち、そのうち 1 年は Google Cloud を使用したソリューションの設計と管理の経験を持つことを推奨しています。
試験範囲の詳細
- データ処理システムの設計 : データの流れを考え、最適なシステムを設計できるか
- データの収集と処理 : 必要なデータを収集し、分析しやすい形に変換できるか
- データの保存 : 大量のデータを安全かつ効率的に保管できるか
- 分析用データの準備と活用 : 分析に適したデータを作成し、それを活用できるか
- データ処理の自動化と管理 : 自動化で効率化を図り、システムを安定稼働させられるか
詳細は以下のサイトをご参照ください。
Google Cloud Professional Data Engineer 認定試験 : https://cloud.google.com/learn/certification/data-engineer
解説
Google Cloud が提供するデータ基盤サービスを、データのライフサイクルに沿って、以下のカテゴリに分類して解説していきます。
- データの取り込み
- データの蓄積
- データの変換・加工・パイプラインの構築
- データの分析・活用
- データの管理・統制
1.データの取り込み
【Pub/Sub】
Google Cloud が提供するメッセージングサービスです。メッセージの送信者(パブリッシャー)と受信者(サブスクライバー)を繋ぎ、リアルタイムかつ信頼性の高いメッセージ配信を実現します。
Pub/Sub の仕組み
- トピック: メッセージを分類するためのラベルのようなものです。パブリッシャーは、送信したいメッセージの種類に応じてトピックを選びます。
- パブリッシャー: メッセージを送信する役割を担います。送信したいメッセージを、特定のトピックに送信します。
- サブスクライバー: メッセージを受信する役割を担います。興味のあるトピックを購読し、そのトピックに送信されたメッセージを受信します。
- Pub/Sub では、Pub/Sub で定義された一意のメッセージ ID に基づき、リージョン内で exactly-once(1 回限り)の配信がサポートされます。
- この機能を有効にすると、Pub/Sub では次のことを実現します。
- メッセージの確認応答が正常に完了すると、再配信は行われません。
【例】
異なる担当者による注文が 2 回処理されないようにしたい
- トピックのメッセージ保持を使用すると、サブスクリプションを作成する前にパブリッシュされたメッセージを再生できます。トピックのメッセージ保持が有効になっている場合、トピックが保持するメッセージのストレージ料金は、トピックが配置されているプロジェクトに課金されます。
【例】
新しいサブスクライバーが過去 30 日間のデータを読み取るソリューションが必要なとき。
- サブスクリプションの再試行ポリシー
- Pub/Sub がメッセージの配信を試みてもサブスクライバーによるメッセージの確認応答ができない場合、Pub/Sub はメッセージを自動的に再送信しようとします。この再配信の試みは、サブスクリプションの再試行ポリシーと呼ばれます。これは、オンまたはオフにできる機能ではありません。ただし、使用する再試行ポリシーのタイプは選択できます。
- サブスクリプションを最初に作成して構成するときに、2 つの再試行ポリシー(即時再配信または指数バックオフ)のいずれかを選択できます。デフォルトでは、即時再配信が使用されます。
- 指数バックオフ
- 指数バックオフを使用すると、再試行の間の遅延を徐々に長くすることができます。最初の配信が失敗すると、Pub/Sub は最小バックオフ時間だけ待機してから再試行します。メッセージが連続して失敗するたびに、最大遅延時間(0〜600 秒)に達するまで遅延時間が長くなります。
【例】
信頼性の高いメッセージング システムを構成する必要がある。
失敗したメッセージを徐々に再試行し、再試行後に失敗したメッセージをトピックに保存する必要があるとき。
- スナップショットとシーク
- スナップショットは、作成時にサブスクリプション内のすべてのメッセージの確認応答状態を記録します。
- スナップショットの最大有効期間は 7 日間です。作成後 1 時間以内に期限切れになるスナップショットは作成できません。
- シーク機能を使用すると、サブスクリプションの特定のスナップショットまたはタイムスタンプまでシーク(探索)できます。この機能を使用すると、Pub/Sub で特定の時点または特定のスナップショットからメッセージを配信する方法を制御できます。
- 過去に遡ってシークし、前に確認済みのメッセージを再生する場合は、まずトピックのメッセージ保持を構成するか、または確認済みのメッセージを保持するようにサブスクリプションを構成する必要があります。
【例】
過去 ⚪︎ 日間に配信された Pub/Sub メッセージを再処理するようにする必要がある。
【Datastream】
Google Cloud が提供するサーバーレスの変更データキャプチャ(CDC)およびレプリケーション サービスです。オンプレミスまたはクラウドのソースデータベースから、Google Cloud の様々なターゲット(BigQuery、Cloud SQL、Cloud Spanner、Cloud Storage)に、リアルタイムでデータの変更をキャプチャし、レプリケーションできます。
Datastream の主な特徴
- リアルタイムCDC : データベースの変更(挿入、更新、削除)をリアルタイムでキャプチャし、ターゲットにストリーミングします。
- 幅広いソースとターゲットのサポート : Oracle、MySQL、PostgreSQL、SQL Server などの主要なデータベースに加え、Cloud SQL、Cloud Spanner、BigQuery、Cloud Storage など、Google Cloud の様々なサービスをサポートしています。
- スケーラビリティ : 大規模なデータベースや高頻度の変更にも対応できるスケーラビリティを備えています。サーバーレス: インフラの管理が不要で、簡単に利用できます。
- 信頼性 : 少なくとも 1 回の配信保証を提供し、データの損失を防ぎます。
【例】
インフラストラクチャの管理を最小限に抑えつつ、オンプレミスの Oracle や MySQL などのテーブルを BigQuery に複製して継続的に同期したいとき。
2.データの蓄積
【Cloud Storage】
Google Cloud が提供する、インターネット上でファイルを保存・管理できるオンライン ストレージサービスです。
Cloud Storage の特徴
- 大容量 : ペタバイト級のデータを保存できます。容量を気にせず、安心してファイルを保管できます。
- 高可用性 : 複数のデータセンターにファイルを複製して保存するため、万が一の障害時にもデータが失われる心配がありません。
- セキュリティ : 強力なセキュリティ対策が施されており、安心して機密データを保管できます。
- 共有 : ファイルへのアクセス権を設定し、特定のユーザーとファイルを共有できます。
- 連携 : BigQuery や Compute Engine など、他の Google Cloud サービスと連携して、ファイルを効率的に活用できます。
- Cloud Storage の署名付き URL は、一時的なアクセス権限を持つ特別な URL です。この URL を使用すると、通常は非公開に設定されているオブジェクト(ファイル)へのアクセスを、特定の条件下で許可することができます。
- 一時的なファイル共有: 特定の期間だけファイルへのアクセスを許可したい場合に便利です。
- アクセス制御: 特定の IP アドレスからのアクセスのみ許可するなど、細かいアクセス制御を実現できます。
- セキュリティ強化: 署名付き URL は改ざんが難しいため、セキュリティを強化できます。
- 署名付き URL は有効期限があるため、転送処理の途中で有効期限が切れてエラーになる場合があります。その場合は、有効期限の長い URL を生成することでエラーを回避することができます。
- Cloud Storage の Autoclass は、オブジェクトのアクセス頻度に基づいて、自動的に最適なストレージクラスに移行させる機能です。これにより、ストレージコストを最適化しながら、必要なときにデータにアクセスできるようになります。
- コスト削減 : アクセス頻度の低いオブジェクトは、より安価なストレージクラスに自動的に移行されるため、ストレージコストを削減できます。
- 運用負荷軽減 : オブジェクトのライフサイクル管理を自動化できるため、運用負荷を軽減できます。
- パフォーマンス維持 : アクセス頻度の高いオブジェクトは、Standard Storage に保持されるため、パフォーマンスを維持できます。
【例】
個々のオブジェクト(データ)へのアクセス頻度がランダムで、オブジェクトの保存と取得にかかるコストを最適化したいとき。
- ターボ レプリケーションではデュアルリージョン バケット内のデータがリージョン間でより高速に冗長化されるため、データ損失のリスクが軽減され、リージョンで障害が発生した後も中断なくサービスを提供できます。
- 有効になると、オブジェクトのサイズに関係なく、ターボ レプリケーションは新しく書き込まれたオブジェクトの 100% を、デュアルリージョンを構成する両方のリージョンに目標復旧時点の 15 分以内で複製するように設計されています。
【例】
RPO (災害復旧における目標復旧時点)が 15 分であるとき、リージョン停止が発生した場合にデータ損失を防ぎたい。
保持ポリシー
Cloud Storage の保持ポリシーは、バケット内のオブジェクト(データ)が削除または上書きされないように保護するためのルールです。保持ポリシーを設定すると、指定した期間内はオブジェクトの削除や上書きが禁止され、データの損失や誤操作を防ぐことができます。
【例】
コンプライアンス : 法律や規制で一定期間のデータ保持が義務付けられている場合に、保持ポリシーを設定することでコンプライアンスを遵守できます。
データ保護 : 誤ってデータを削除したり上書きしたりすることを防ぎ、データの安全性を確保できます。
バージョン管理 : オブジェクトのバージョン管理と組み合わせて使用することで、過去のバージョンを保持し、必要に応じて復元できます。
Storage Transfer Service と Transfer Appliance の違い
- Storage Transfer Service
- ネットワーク経由 でデータを転送するマネージドサービス
- オンライン転送: データ転送中もソースデータへのアクセスが可能
- 定期的な転送: スケジュールを設定して定期的に転送を実行可能
- 多様な転送元: Google Cloud Storage、Amazon S3、HTTP/HTTPS サーバーなど
- 費用効果: 転送したデータ量に対して課金
- Transfer Appliance
- 物理アプライアンスを使用してデータを転送
- オフライン転送: アプライアンスにデータを書き込んだ後、Google のデータセンターに発送
- 大容量データ転送: ペタバイト、エクサバイト規模のデータ転送に最適
- セキュリティ: データは暗号化され、輸送中も保護
- 費用: アプライアンスのレンタル費用とデータ取り込み費用が発生
【BigTable】
Google Cloud が提供する NoSQL 型のワイドカラム データベースです。ペタバイト級のデータを高速に処理できる高いスケーラビリティとパフォーマンスを備えており、大規模な Web アプリケーションや IoT システムなどで利用されています。
BigTable の主な特徴
- スケーラビリティ : ペタバイト級のデータを扱うことができ、必要に応じて簡単にスケールアップ/スケールダウンできます。読み書きのレイテンシが非常に低く、大量のデータへの高速なアクセスが可能です。
- 柔軟なスキーマ : 事前にスキーマを厳密に定義する必要がなく、データの追加や変更に柔軟に対応できます。各行に異なる数のカラムを持つことができ、構造化データだけでなく半構造化データも扱えます。
- 高可用性 : 複数のゾーンにデータをレプリケーションすることで、高い可用性を実現しています。データの損失やシステムダウンのリスクを低減できます。
- Bigtable は、行キーに基づいてデータをソート・格納するため、行キーの設計がパフォーマンスに直結します。効率的な行キー設計は、読み書き速度の向上やホットスポットの回避に繋がります。
- 行キーに意味を持たせる : 行キーは、データの意味を表すように設計します。例えば、ユーザー ID、タイムスタンプ、センサー ID などを組み合わせることで、データの検索やフィルタリングが容易になります。
- 行キーを適切な長さに : 行キーが長すぎると、ストレージ容量が増加し、パフォーマンスが低下する可能性があります。行キーが短すぎると、行数が多くなり、ホットスポットが発生しやすくなります。データの特性に合わせて、適切な長さの行キーを設計する必要があります。
- 行キーにタイムスタンプを含める : 時系列データを扱う場合、行キーにタイムスタンプを含めることで、特定の期間のデータを取得しやすくなります。タイムスタンプを逆順にすることで、最新のデータから取得できるため、効率的なクエリが可能です。
- 行キーに接頭辞をつける : 複数の種類のデータを同じテーブルに格納する場合、行キーに接頭辞をつけることで、データの種類ごとに効率的にアクセスできます。
アンチパターン | 説明 | 回避策 |
---|---|---|
連番の行キー | 行キーが単純な連番だと、新しいデータが常に同じノードに書き込まれるため、ホットスポットが発生しやすくなります。 | タイムスタンプやランダムな文字列を組み合わせることで、行キーを分散させます。 |
単調増加する行キー | 行キーが単調増加する(例えば、タイムスタンプのみ)場合も、ホットスポットが発生しやすくなります。 | タイムスタンプを逆順にしたり、他の情報と組み合わせることで、行キーを分散させます。 |
長すぎる行キー | 行キーが長すぎると、ストレージ容量が増加し、パフォーマンスが低下します。 | 行キーに必要な情報のみを含めるようにし、不要な情報は別のカラムに格納します。 |
意味のない行キー | 行キーがランダムな文字列など、意味のない値だと、データの検索やフィルタリングが困難になります。 | データの意味を表す情報を組み合わせて、行キーを設計します。 |
【例】
大規模な Web アプリケーション : ユーザーデータ、セッションデータ、ログデータなどの大量のデータを高速に処理する必要があるアプリケーションに適しています。
IoT システム : センサーデータ、デバイスデータなどのリアルタイムデータ(時系列データ)を高速に収集・処理する必要があるシステムに適しています。
金融システム : 取引データ、市場データなどの大量のデータを高速に処理し、リアルタイム分析を行う必要があるシステムに適しています。
ゲーム : ランキングデータ、ユーザーデータなどの大量のデータを高速に処理する必要があるゲームに適しています。
【AlloyDB for PostgreSQL と Cloud SQL for PostgreSQL】
どちらも Google Cloud で PostgreSQL を利用するためのマネージド サービスですが、それぞれの特徴やユースケースが異なります。
- 高いスケーラビリティとパフォーマンス: 大規模なデータセットや高負荷なワークロードに対応できる高いスケーラビリティとパフォーマンスを備えています。Cloud SQL for PostgreSQL と比較して、最大4倍のトランザクション処理性能、最大100倍の分析クエリ性能を実現します。
- PostgreSQL との互換性: PostgreSQL との高い互換性を持ち、既存のアプリケーションやツールをそのまま利用できます。
- 自動化された運用管理: バックアップ、高可用性、セキュリティなどの運用管理タスクが自動化されており、運用負荷を軽減できます。
- 使いやすさ : 初心者でも簡単に PostgreSQL を利用できるよう、シンプルなインターフェースと自動化された運用管理機能を提供しています。
- 柔軟な料金体系 : インスタンスの種類やサイズ、ストレージ容量などを柔軟に選択でき、必要な分だけ支払うことができます。
- PostgreSQL との互換性 : PostgreSQL との高い互換性を持ち、既存のアプリケーションやツールをそのまま利用できます。
特徴 | AlloyDB for PostgreSQL | Cloud SQL for PostgreSQL |
---|---|---|
スケーラビリティとパフォーマンス | 高い | 比較的低い |
ユースケース | 大規模な OLTP、HTAP、 データ ウェアハウス |
小規模から中規模の OLTP、 Web アプリケーション、CMS |
料金 | 比較的高い | 比較的低い |
3.データ変換・加工・パイプラインの構築
【Dataflow】
Google Cloud が提供するフルマネージドなデータの変換・加工(ETL)サービスです。バッチ処理とストリーミング処理の両方に対応しており、大規模なデータパイプラインを構築・実行できます。Dataflow は Apache Beam SDK をベースにしており、Python や Java 、Go などで記述したデータ処理プログラムを、Google Cloud のインフラ上で実行できます。
Dataflow の主な特徴
- 統合されたバッチ・ストリーミング処理 : バッチ処理とストリーミング処理を同じパイプラインで実行できるため、リアルタイムデータと履歴データの統合分析が容易になります。
- スケーラビリティ : Google Cloud のインフラを活用し、データ量や処理量に応じて自動的にスケールします。
- サーバーレス : インフラの管理が不要で、開発者はデータ処理ロジックの開発に集中できます。
- 柔軟なプログラミングモデ ル: Apache Beam SDK を使用することで、様々なデータソースやデータ形式に対応できます。
- Dataflow のストリーミング パイプラインでは、無限に続くデータの流れを一定の塊(ウィンドウ)に分けて処理します。これは、流れ続けるデータを分析可能な単位に変換するためです。ウィンドウの分け方にはいくつか種類があり、分析の目的に合わせて適切なものを選びます。
- タンブリングウィンドウ(固定ウィンドウ) : 一定の時間幅で区切る最も基本的なウィンドウです。例えば、1 時間ごとのデータを集計したい場合に利用します。
- ホッピングウィンドウ(スライディングウィンドウ) : 一定の時間幅で区切りつつ、開始点をずらして重複を許容するウィンドウです。例えば、過去 1 時間分のデータを 10 分ごとに集計したい場合に利用します。
- セッションウィンドウ : データの発生間隔を見て、一定時間以上間隔が空いたら新しいウィンドウを作る方法です。例えば、Web サイトのユーザーセッションを分析したい場合に利用します。
- Dataflow のストリーミング パイプラインでは、データが常にリアルタイムで流れてきますが、ネットワークの遅延などでデータの到着が遅れることがあります。ウォーターマークは、「ウォーターマークは、ある時点までに、それより前のデータはほぼすべて到着した」と Dataflow が判断するための基準となるタイムスタンプです。
- ウォーターマークがないと、Dataflow はいつまでも遅れてくるデータがあるかもしれないと考え、ウィンドウを閉じることができません。これにより、結果の出力も遅れてしまいます。ウォーターマークを設定することで、ある程度遅れてくるデータは許容しつつ、適切なタイミングでウィンドウを閉じ、結果を出力することができます。
【例】
Dataflow を使用してリアルタイムのセンサーデータを処理しています。センサーデータは、発生時刻のタイムスタンプとともに Pub/Sub に送信されますが、ネットワークの遅延などにより、データの到着が遅れることがあります。以下の要件を満たす Dataflow パイプラインを設計する必要があります。
- 1 分間の固定ウィンドウでデータを集計する。
- 最大 5 分遅れて到着するデータも集計に含める。
- 遅れて到着したデータのために集計結果の確定を無期限に遅らせない。
こうした場合に、ウォーターマークを利用して、遅延データを許容しつつ、ウィンドウを適切なタイミングで閉じることができます。
- Apache Beam の Reshuffle は、データ処理パイプラインの中間でデータを再分配するための変換操作です。Dataflow は Apache Beam SDK 上に構築されているため、Dataflow でも Reshuffle を利用できます。Reshuffle の役割は以下のとおりです。
- データの偏りの解消 : 特定のワーカー(処理を実行する仮想マシン)にデータが偏り、処理が遅くなる「データの偏り」を解消します。
Reshuffle は、データをランダムにシャッフルすることで、各ワーカーに均等にデータを分配し、処理の並列性を向上させます。 - フュージョンの防止 : Apache Beam は、連続する変換操作をまとめて最適化することでパフォーマンスを向上させる「フュージョン」という機能を備えています。しかし、特定の変換操作を分離したい場合や、フュージョンによってパフォーマンスが低下する場合があります。Reshuffle を挿入することで、フュージョンを意図的に防ぎ、特定の変換操作を分離することができます
- データの偏りの解消 : 特定のワーカー(処理を実行する仮想マシン)にデータが偏り、処理が遅くなる「データの偏り」を解消します。
※ フュージョンとは、パイプライン内の連続する変換操作をまとめて最適化し、パフォーマンスを向上させる技術です。Apache Beam では、デフォルトでフュージョンが有効になっています。ただし、場合によってはフュージョンを無効にしたい場合があります。例えば、特定の変換操作を分離してデバッグしたい場合や、フュージョンによってパフォーマンスが低下する場合などです。その場合、Reshuffle 変換を挿入することで、フュージョンを意図的に防ぎ、特定の変換操作を分離することができます。
- Dataflow サービスが Google Cloud の他のリソースにアクセスするために使用する特別な Google サービス アカウントです。
- Dataflow ジョブを実行すると、Dataflow サービスは、このサービスエージェントを使用して、Cloud Storage、BigQuery、Pub/Sub などの他の Google Cloud サービスとやり取りします。
【Data Fusion】
Google Cloud が提供するフルマネージドなデータ統合サービスです。コードを記述することなく、視覚的なインターフェースを使って、様々なデータソースからデータを収集、変換、統合し、分析基盤にロードするパイプラインを構築できます。
Data Fusion の主な特徴
- ノーコードでのデータ パイプライン構築: ドラッグ&ドロップ操作で、視覚的にデータ パイプラインを設計できます。
- 豊富なコネクタ: さまざまなデータベース、データウェアハウス、クラウドストレージ、SaaS アプリケーションなど、多様なデータソースとの接続をサポートしています。
- スケーラブルな実行環境 : Google Cloud のインフラを活用し、大規模なデータ処理にも対応できます。
- モニタリングとロギング : パイプラインの実行状況を監視し、エラー発生時にはログを確認できます。
- セキュリティ : Google Cloud のセキュリティ機能を活用し、安全なデータ統合を実現できます。
Wrangler(リンク先はラボ)
- データの前処理や変換を効率的に行うための強力なツールです。Cloud Data Fusion と組み合わせて使用することで、データ分析基盤の構築を加速できます。
- インタラクティブなデータ変換 : Wrangler の UI 上で、データのサンプルを見ながら、フィルタリング、集計、結合、正規化などの変換操作を直感的に行えます。
- Wrangler ディレクティブ : 変換操作は Wrangler ディレクティブという形式で記述され、再利用や共有が可能です。
- Cloud Data Fusion との連携 : Wrangler で作成した変換処理は、Cloud Data Fusion のパイプラインに組み込むことができます。
【例】
複数のクラウドサービスとオンプレミスデータベースに散在する顧客データを統合し、BigQuery で分析可能な形にしたい。
ただし、以下のような課題があります。
- データ形式が異なる(CSV、JSON、データベースなど)
- データ項目名が統一されていない
- 一部のデータに欠損値や不正な値が含まれている
- コーディングを必要としない迅速なソリューションが必要
このようなデータ統合を効率的に行い、高品質な分析データを作成するために、最適な Google Cloud サービスの組み合わせを選択したいとき。
【Dataprep】
Google Cloud が提供するフルマネージドなデータの探索・変換・結合サービスです。視覚的なインターフェースでデータの探索、クリーニング、変換を簡単に行うことができます。
Dataprep の主な特徴
- 視覚的なインターフェース : コードを書くことなく、クリックやドラッグ&ドロップでデータ変換操作を実行できます。
- データプロファイリング : データの統計情報や分布、欠損値などを自動的に分析し、データの理解を深めることができます。
- インタラクティブな変換 : データのサンプルを見ながら、リアルタイムに変換結果を確認できます。
- レシピ : 一連の変換操作をレシピとして保存し、再利用したり、他のユーザーと共有したりできます。
- スケーラビリティ : Dataflow を利用して、大規模なデータセットにも対応できます。
- 連携 : BigQuery や Cloud Storage など、他の Google Cloud サービスとの連携が容易です。
【例】
データをすばやくクレンジングおよび探索するために使用できるローコード ソリューションが必要なとき。
Data Fusion との違い
- Dataprep : データアナリストやビジネスユーザーが、視覚的なインターフェースで手軽にデータ準備を行いたい場合に適しています。
- Cloud Data Fusion : データ エンジニアが、複雑なデータ パイプラインを構築・管理し、より柔軟なデータ変換を行いたい場合に適しています。
特徴 | Dataprep | Cloud Data Fusion |
---|---|---|
主な用途 | データの探索、クリーニング、変換 | 複雑なデータ パイプラインの構築、オーケストレーション |
ターゲットユーザー | データ アナリスト、ビジネスユーザー | データ エンジニア |
操作方法 | 視覚的なインターフェース (レシピ) | ドラッグ&ドロップによるパイプライン設計 (DAG) |
スケーラビリティ | 大規模なデータセットにも対応可能 (Dataflow) | 大規模なデータセットにも対応可能 (Spark, MapReduce) |
柔軟性 | レシピの共有・再利用、Python/SQLでの変換も可能 | 豊富なプラグイン、カスタムプラグイン開発可能 |
学習コスト | 低い | 比較的高い |
【Dataform】
Google Cloud が提供するデータ アナリスト向けのデータ変換ワークフロー管理サービスです。BigQuery での複雑な SQL ワークフローの開発、テスト、バージョン管理、スケジュール設定をサポートします。
Dataform の主な特徴
- オープンソースで SQL ベースの言語 : データ変換を管理するためのオープンソースで SQL ベースの言語である Dataform Core を提供します。これにより、データ エンジニアやデータ アナリストは、テーブル定義の作成、依存関係の設定、列の説明の追加、データ品質アサーションの設定などを、単一のリポジトリで SQL のみを使用して一元的に行うことができます。
- フルマネージドでサーバーレスなオーケストレーション : Dataform は、テーブル間の依存関係に従って、最新のコードを使用してテーブルを更新するための運用インフラストラクチャを処理します。
- SQL で開発するためのフル機能のクラウド開発環境 : Dataform は、開発者が SQL を使用してデータ変換ワークフローを開発、テスト、デバッグできるクラウド IDE を提供します。
- Git との統合 : Dataform は Git と統合されているため、バージョン管理や共同作業が容易になります。
- 複雑な SQL ワークフローの管理 : BigQuery で複雑な SQL ワークフローを開発、テスト、バージョン管理、スケジュール設定する必要がある場合に役立ちます。
- データ変換の自動化 : Dataform を使用すると、データ変換プロセスを自動化し、手動によるエラーを減らすことができます。
- データ品質の向上 : Dataform は、データ品質アサーションを使用してデータ品質を監視し、問題を早期に発見することができます。
アサーション
Dataform のアサーションとは、データの品質を検証するためのルールまたは条件のことです。アサーションを使用することで、データが期待される状態に準拠しているかどうかをテストできます。
【例】
BigQuery のテーブルで一意性と null 値のチェックするようなパイプラインを効率的に統合したいとき
【Cloud Composer】
Google Cloud が提供するフルマネージドなワークフロー オーケストレーション サービスです。Apache Airflow をベースにしており、複雑なデータ処理パイプラインを定義、スケジュール、監視、管理することができます。
Cloud Composer の主な特徴
- フルマネージド : Apache Airflow のインストール、設定、運用を Google Cloud が代行するため、インフラの管理が不要です。
- スケーラビリティ : ワークロードに応じて自動的にスケールするため、大量のタスクを効率的に処理できます。
- 柔軟性 : Python で記述された DAG (Directed Acyclic Graph) を使用して、複雑なワークフローを柔軟に定義できます。
- 豊富な連携 : BigQuery、Cloud Storage、Cloud Dataflow など、Google Cloud の様々なサービスとの連携が容易です。
- モニタリングとロギング : ワークフローの実行状況を監視し、エラー発生時にはログを確認できます。
【例】
ETL パイプラインをオーケストレーションしたいとき。複数のジョブの同時実行や順次実行を制御したいとき。
On_failure_callback
DAG (Directed Acyclic Graph) の実行が失敗した場合に呼び出されるコールバック関数です。このコールバック関数を使用することで、DAG の失敗時に特定のアクションを実行できます。
【例】
タスクが失敗した場合に通知を受け取りたいとき。
【Dataproc】
Google Cloud が提供するフルマネージドなサービスで、Apache Spark、Apache Hadoop、Presto、Apache Flink などのオープンソースのビッグデータ処理フレームワークを簡単に利用できます。
Dataproc の主な特徴
- フルマネージド : クラスターの作成、管理、スケーリングを自動化し、運用負荷を軽減します。
- オープンソース : Spark、Hadoop、Presto、Flink など、使い慣れたオープンソースのツールやライブラリをそのまま利用できます。
- スケーラビリティ : ワークロードに応じてクラスターのサイズを自動的に調整し、大量のデータを効率的に処理できます。
- サーバーレス : Dataproc Serverless を使用すると、インフラの管理が不要になり、ジョブの実行に集中できます。
- セキュリティ : Google Cloud のセキュリティ機能を活用し、安全なデータ処理環境を提供します。
- バッチ処理 : 大量のデータを定期的に処理するバッチジョブに適しています。例えば、ログ分析、データ変換、機械学習の前処理など。
- インタラクティブ分析 : Spark SQL や Presto を使用して、BigQuery のようなインタラクティブなクエリを実行できます。
- ストリーミング処理 : Apache Flink を使用して、リアルタイムデータ処理パイプラインを構築できます。
- 機械学習 : Spark MLlib や TensorFlow などを使用して、大規模なデータセットで機械学習モデルをトレーニングできます。
【例】
オンプレミスの Hdoop ワークロードを Google Cloud に移行したいとき。
(Hadoop の HDFS は Cloud Storage に移行することができます)
4.データ分析・活用
【BigQuery】
Google Cloud が提供するサーバーレスのデータウェアハウスです。簡単に言うと、とても大きな倉庫(ウェアハウス)に大量のデータを保管し、分析するためのツールです。
BigQuery の特徴
- ペタバイト級のデータを高速に分析 : BigQuery は、非常に高速なクエリ処理エンジンを搭載しており、数秒から数分でペタバイト級のデータに対してクエリを実行できます。
- サーバーレス : インフラの管理が不要で、必要な時に必要な分だけリソースを自動的に割り当てます。
- 標準 SQL : 標準 SQL を使用してデータの分析ができるため、特別な知識やスキルは必要ありません。
- 機械学習 : BigQuery ML を使用して、SQL で簡単に機械学習モデルを作成・実行できます。
- 地理空間分析 : BigQuery GIS を使用して、位置情報を含むデータを分析できます。
- BigQuery のパーティション分割は、テーブルを複数の小さなセグメントに分割する機能です。これにより、クエリのパフォーマンスが向上し、ストレージコストが削減されます。パーティションは、テーブルの列に基づいて作成されます。最も一般的なパーティション列は、日付と時刻です。
- パーティション分割には、次の 3 つの種類があります。
- 日付パーティション分割: テーブルを日付に基づいて分割します。
- 時刻パーティション分割: テーブルを時刻に基づいて分割します。
- カスタムパーティション分割: テーブルをカスタム列に基づいて分割します。
【例】
クエリが頻繁に特定の日付または時刻範囲でフィルタリングされる場合。
テーブルが非常に大きい場合。
ストレージコストを削減したい場合。
過去 ⚪︎ 日間のデータのみを使用し不要なデータの保存を避け、コストを最小限に抑えたいなど。
- BigQuery への高スループットのストリーミング書き込みをサポートしており、1 回限りの配信セマンティクスを提供します。これにより、データの重複や損失なしに、信頼性の高い方法で BigQuery にデータを取り込むことができます。従来のストリーミング API よりも高いスループットで処理が可能です。
- 割り当てと上限
- マルチリージョンで 3 GB / 秒のスループット、リージョンで 300 MB / 秒のスループット
【例】
データが 1 回限りの配信セマンティクスで BigQuery にストリーミングされるようにする必要があり BigQuery への取り込みスループットが 1 秒あたり ⚪︎ GB になるような場合。
タイムトラベル
過去 7 日間の特定の時点におけるテーブルの状態を表示したり、復元したりできる機能です。テーブルやパーティションに対して行われた変更(挿入、更新、削除)は、一定期間保持され、まるで過去に戻ってデータを確認できるようなイメージです。
【例】
過去 7 日以内にテーブルで発生した破損イベントからアプリケーションが回復できるようにする必要があるとき。
- ネストされた繰り返しフィールド: データは階層構造を持ち、あるフィールドの中に別のフィールドが複数含まれる構造(例:customers テーブルの中に orders フィールドがあり、その中に order_items フィールドが複数含まれる)
- 非正規化 : データの冗長性を許容し、結合操作を減らすことでクエリのパフォーマンスを向上させる(例:orders テーブルに customer_name を含める)
- メリットはクエリのパフォーマンス向上 : 結合操作が減ることで、特に大規模なデータセットに対するクエリの処理速度が向上する。
管理リソースグラフ
BigQuery 管理者は、管理リソースグラフを使用して、組織の健全性、スロットの使用、BigQuery ジョブのパフォーマンスを時間の経過とともにモニタリングできます。
【例】
クエリジョブの情報を調査し、パフォーマンスが影響を受けている場所を特定したいとき。
BigQuery エディションとオンデマンド課金
BigQuery は、Standard、Enterprise、Enterprise Plus の 3 つのエディションと、オンデマンド課金を提供しています。
【例】
- 片方のプロジェクトではジョブの使用スロット数がある程度一定で、時折増加するものの上限の予測ができる
- もう片方のプロジェクトでは、アドホックな分析を目的としており、ユーザーのスキャンした容量に応じて課金したい
このような場合に、スロットが一定なプロジェクトでは BigQuery エディションを利用し、アドホック分析をするプロジェクトでは、オンデマンド課金を適用するといった使い方が可能です。
【BigLake】
Google Cloud が提供するデータレイク ストレージエンジンです。データウェアハウスとデータレイクの利点を組み合わせ、多種多様なデータ形式やストレージシステムに対応しながら、データの分析や機械学習を効率的に行うことができます。
BigLake の主な特徴
- オープン フォーマット : Apache Parquet や Apache ORC などのオープン フォーマットをサポートし、ベンダーロックインを回避できます。
- 複数のストレージ システム : Cloud Storage、BigQuery、外部のデータレイク(Amazon S3、Azure Data Lake Storage Gen2)など、様々なストレージシステムに接続できます。
- 統一されたメタデータ管理 : すべてのデータソースのメタデータを BigQuery で一元管理し、データの発見やアクセスを容易にします。
- BigQuery との連携 : BigQuery のエンジンを使用して、BigLake のデータに対して直接クエリを実行できます。
- セキュリティとガバナンス : Google Cloud のセキュリティ機能を活用し、データへのアクセスを制御できます。
メリット
- データのサイロ化解消 : 複数のストレージ システムに分散しているデータを BigLake で統合管理することで、データのサイロ化を解消できます。
- データ分析の効率化 : BigQuery を使用して BigLake のデータに直接アクセスできるため、データ分析の効率化を図れます。
- 柔軟性 : さまざまなデータ形式やストレージシステムに対応できるため、柔軟なデータ管理が可能です。
- コスト削減 : データを移動せずに分析できるため、データ転送料金を削減できます。
【例】
データレイクの構築 : 構造化データ、半構造化データ、非構造化データなど、多様なデータを一元的に管理するデータレイクを構築できます。
データ分析 : BigQuery を使用して、BigLake のデータに対して SQL クエリを実行し、分析できます。
機械学習 : BigLake のデータを使用して、機械学習モデルを構築・トレーニングできます。
データ共有 : BigLake のデータセットを組織内外のユーザーと共有できます。
【Analytics Hub】
Google Cloud が提供するデータ共有プラットフォームです。組織内外の様々なソースからのデータを安全かつ効率的に共有し、分析に活用することができます。
Analytics Hub の主な特徴
- データ交換 : 組織内外の様々なソースからのデータを、安全かつ効率的に共有できます。
- データの発見とアクセス : 共有されたデータセットを簡単に発見し、アクセスできます。
- データの管理 : データセットの所有者とアクセス権限を管理できます。
- データの分析 : BigQuery や Looker などの分析ツールと連携し、共有されたデータを分析できます。
- セキュリティ : データの暗号化、アクセス制御、監査ログなど、セキュリティ機能が充実しています。
【例】
組織内でのデータ共有 : 部署間やチーム間でデータを共有し、分析の効率化を図れます。
組織外とのデータ共有 : パートナー企業や顧客とデータを共有し、新たなビジネス価値を創出できます。
5.データ管理・統制
【Dataplex】
Google Cloud が提供するインテリジェントなデータファブリックです。複数のクラウドプロジェクトやリージョンにまたがるデータの管理、セキュリティ、ガバナンスを統合し、データのサイロ化を解消します。
Dataplex の主な特徴
- データの統合管理 : 複数のデータレイクやデータウェアハウスを接続し、一元的に管理できます。
- データカタログ : データ資産のインベントリを作成し、データの検索、分類、管理を容易にします。
- データ品質管理 : データ品質ルールを設定し、データの正確性、完全性、一貫性を確保できます。
- データポリシー : データへのアクセス制御やマスキングなどのポリシーを設定し、セキュリティとコンプライアンスを強化できます。
- データリネージ : データの変換履歴を追跡し、データの信頼性を確保できます。
【例】
さまざまなストレージサービスでそれぞれの所有者によってデータが管理されているためにデータの検出と管理が困難になっている。この状況を解消するために以下の点に留意しつつ、コストが最適化されたソリューションを見つけたい。
- データの品質管理
- データリネージ
- データ品質の検証
【Cloud Data Loss Prevention (Cloud DLP)】
Google Cloud が提供するフルマネージドなデータ損失防止サービスです。構造化データ、非構造化データ、画像データなど、様々な種類のデータに含まれる機密情報を検出し、マスキングやトークナイゼーションなどの手法で保護します。
Cloud Data Loss Prevention の主な機能
- 機密データの検出 : 組み込みインスペクター: 個人情報 (PII)、金融情報、医療情報など、100 種類以上の定義済みインスペクターを使用して、機密データを自動的に検出できます。
- カスタム インスペクター : 正規表現、ディクショナリ、機械学習モデルなどを使用して、独自のインスペクターを作成できます。
- 光学式文字認識 (OCR) : 画像内のテキストを抽出し、機密情報を検出できます。
- 機密データの保護 : マスキング: 機密情報を特定の文字や記号に置き換えます。
- トークナイゼーション : 機密情報をトークンと呼ばれる一意の識別子に置き換えます。
- バケタイゼーション : 数値データを範囲にグループ化します。
- 日付シフト : 日付データをランダムにシフトします。
- データリスク分析 : データプロファイル: データセット内のデータ型、値の分布、機密情報の量などを分析できます。
- リスク分析 : データセット内の機密情報の種類と量に基づいて、リスクレベルを評価できます。
【例】
BigQuery のデータセットからすべての住所を取得したい場合、Cloud Data Loss Prevention を使用して検査ジョブを作成し、検査テンプレートを作成することで住所を取得することができます。
【Cloud Key Management Service(Cloud KMS)】
Cloud KMS (Key Management Service) は、Google Cloud が提供するクラウドベースの鍵管理サービスです。暗号化に使用する鍵の作成、使用、ローテーション、破棄を安全かつ効率的に管理できます。
- 鍵のライフサイクル管理 : 鍵の作成、有効化、無効化、破棄などを管理できます。
- 鍵のアクセス制御 : IAM (Identity and Access Management) を利用して、鍵へのアクセス権限を細かく制御できます。
- 監査ログ : 鍵の操作履歴を記録し、セキュリティ監査に役立てることができます。
さいごに
みなさん、最後まで読んでくださって本当にありがとうございます!
試験直前まで、不安や緊張が押し寄せてくることもあるかもしれませんが、安心してくださいね!みなさんは、もうすでにたくさんの知識を吸収しているはずです。
あとは、自分を信じて、最後のひと踏ん張り!
試験会場で、この記事で学んだ知識が鮮やかに蘇り、自信を持って問題を解き進める姿を想像してみてください。そして、合格通知を受け取った瞬間の喜びを、ぜひとも味わって欲しいです!
僕からの熱いエールが、みなさんの背中を少しでも押すことができたら嬉しいです。
さあ、胸を張って、試験に臨んできてくださいね!心から応援しています!
P.S. 試験が終わったら、結果を教えてくださいね!一緒に喜びを分かち合いましょう!
ラリオス 川口
Google Cloud 認定トレーナーとして年間 100 本以上の講義を開催。2024 年には前人未到の 3 年連続 Trainer of the Year を受賞。聴きやすい声とわかりやすい説明で、受講者の方から高評価をいただいています。YouTube 『5分でわかる Google Cloud』でも活躍中!
Follow @emoiralios
この記事を共有する