ラボの設定手順と要件
アカウントと進行状況を保護します。このラボを実行するには、常にシークレット ブラウジング ウィンドウとラボの認証情報を使用してください。

AlloyDB カラム型エンジンを使用した分析クエリの高速化

ラボ 25分 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

GSP1087

Google Cloud セルフペース ラボのロゴ

概要

AlloyDB for PostgreSQL は、特に要求の厳しいエンタープライズ データベース ワークロード向けに構築された PostgreSQL 互換のフルマネージド データベース サービスです。AlloyDB は、Google の強みと、特に人気のオープンソース データベース エンジンの一つである PostgreSQL を組み合わせて、優れたパフォーマンス、スケーラビリティ、可用性を実現しています。

カラム型エンジンを使用すると、AlloyDB による SQL スキャン、結合、集計の処理速度を大幅に高速化できます。カラム型エンジンの機能は、1)列指向の形式に再編成された、選択した列のテーブルデータを含むカラムストアと、2)クエリでのカラムストアの使用をサポートするカラム型クエリ プランナーおよび実行エンジンです。

このラボでは、AlloyDB カラム型エンジンの機能について確認します。

演習内容

このラボでは、次のタスクの実行方法について学びます。

  • カラム型エンジンのテスト用ベースライン データセットを作成する
  • ベースライン テストを実行する
  • カラム型エンジンのデータベース フラグを確認する
  • カラム型エンジンのデータベース拡張機能を設定または確認する
  • カラム型エンジンをテストする

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

接続した時点で認証が完了しており、プロジェクトに各自の Project_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. カラム型エンジンのテスト用ベースライン データセットを作成する

このラボ環境では、ラボの開始時に AlloyDB クラスタとインスタンスがプロビジョニングされています。

  1. Google Cloud コンソールで、ナビゲーション メニュー ナビゲーション メニュー アイコン > [すべてのプロダクトを表示] をクリックします。次に、[データベース] で [AlloyDB for PostgreSQL] を選択します。

AlloyDB のページに、lab-cluster という名前のクラスタと lab-instance という名前のインスタンスがあります。インスタンスが完全に作成され、初期化されるまでに数分かかります。

[リソース名] 列の lab-instance というインスタンスの横に緑色のチェックマーク(「準備完了」のステータス)が表示されたら、次のステップに進みます。

  1. lab-instance という名前のインスタンスの行の [プライベート IP アドレス] の下にあるプライベート IP アドレス10.100.0.2 など)をテキスト ファイルにコピーします。後で、この値を貼り付けるステップがあります。コロンとポート番号(:5432)は含めないでください。

カラム型エンジンの機能を評価するには、パフォーマンスの測定に使用する十分なサイズのデータセットが必要です。次のステップでは、PostgreSQL ツール pgbench を使用して、カラム型エンジンを評価するための模擬データセットを生成します。

  1. ナビゲーション メニューナビゲーション メニュー アイコン)で、[Compute Engine] の [VM インスタンス] をクリックします。

  2. alloydb-client という名前のインスタンスの [接続] 列で、[SSH] をクリックしてターミナル ウィンドウを開きます。

  3. 次の環境変数を設定します。ALLOYDB_ADDRESS は、AlloyDB インスタンスのプライベート IP アドレスに置き換えます。

export ALLOYDB=ALLOYDB_ADDRESS
  1. 次のコマンドを実行して、AlloyDB インスタンスのプライベート IP アドレスを AlloyDB クライアント VM に保存し、ラボ全体で保持されるようにします。
echo $ALLOYDB > alloydbip.txt
  1. pgbench を使用する場合はまず、サンプル テーブルを作成してデータを入力します。次のコマンドを実行して、4 つのテーブルのセットを作成します。postgres ユーザーのパスワード(Change3Me)を入力するよう求められます。

最大のテーブル pgbench_accounts の 5,000 万行が読み込まれます。この処理が完了するまでに数分かかります。

pgbench -h $ALLOYDB -U postgres -i -s 500 -F 90 -n postgres dropping old tables... NOTICE: table "pgbench_accounts" does not exist, skipping NOTICE: table "pgbench_branches" does not exist, skipping NOTICE: table "pgbench_history" does not exist, skipping NOTICE: table "pgbench_tellers" does not exist, skipping creating tables... generating data (client-side)... 50000000 of 50000000 tuples (100%) done (elapsed 91.26 s, remaining 0.00 s) creating primary keys... done in 167.61 s (drop tables 0.00 s, create tables 0.01 s, client-side generate 93.16 s, primary keys 74.43 s).
  1. psql クライアントに接続し、次のクエリを実行して pgbench_accounts テーブルの行数を確認します。postgres ユーザーのパスワード(Change3Me)を入力するよう求められます。
psql -h $ALLOYDB -U postgres select count (*) from pgbench_accounts; count ---------- 50000000 (1 row)

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 ベースライン データセットを作成する

タスク 2. ベースライン テストを実行する

評価を目的として、シーケンシャル スキャンを実行する非常に単純なクエリを実行してから、カラム型エンジンへのテストテーブルの追加前と追加後に、そのクエリに対して EXPLAIN クエリプランを使用できます。

  1. alloydb-client シェルに戻ります。psql クライアントは、まだアクティブな状態であるはずです。アクティブになっていない場合は、タスク 1 の手順に沿って再接続します。次のクエリを実行して、すべてのクエリ オペレーションのタイミングをオンにします。
\timing on
  1. 続けて、次のクエリを実行して実行時間を評価します。このクエリは、pgbench_accounts テーブル全体をシーケンシャル スキャンします。

: このサンプルクエリはデモ用であるため、返される行数は 20 に制限されています。

SELECT aid, bid, abalance FROM pgbench_accounts WHERE bid < 189 OR abalance > 100 LIMIT 20; aid | bid | abalance -----+-----+---------- 1 | 1 | 0 2 | 1 | 0 3 | 1 | 0 4 | 1 | 0 5 | 1 | 0 6 | 1 | 0 7 | 1 | 0 8 | 1 | 0 9 | 1 | 0 10 | 1 | 0 11 | 1 | 0 12 | 1 | 0 13 | 1 | 0 14 | 1 | 0 15 | 1 | 0 16 | 1 | 0 17 | 1 | 0 18 | 1 | 0 19 | 1 | 0 20 | 1 | 0 (20 rows)
  1. 次のクエリを実行して、制限のないクエリに対する EXPLAIN プランを生成します。値はサンプル出力の値と似たものになりますが、データの生成はランダムに行われるため、同一にはなりません。
注: EXPLAIN クエリプランを進めるために、Space キーを押す必要がある場合があります。 EXPLAIN (ANALYZE,COSTS,SETTINGS,BUFFERS,TIMING,SUMMARY,WAL,VERBOSE) SELECT count(*) FROM pgbench_accounts WHERE bid < 189 OR abalance > 100; QUERY PLAN --------------------------------------------------------------------------------------------------------------- --------------------------------------------------- Finalize Aggregate (cost=1242226.53..1242226.54 rows=1 width=8) (actual time=11010.409..11014.083 rows=1 loop s=1) Output: count(*) Buffers: shared hit=20921 read=888170 I/O Timings: read=19536.769 -> Gather (cost=1242226.32..1242226.53 rows=2 width=8) (actual time=11010.398..11014.075 rows=3 loops=1) Output: (PARTIAL count(*)) Workers Planned: 2 Workers Launched: 2 Buffers: shared hit=20921 read=888170 I/O Timings: read=19536.769 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !! Section removed for pasting !! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Filter: ((pgbench_accounts.bid < 189) OR (pgbench_accounts.abalance > 100)) Rows Removed by Filter: 10400000 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !! Section removed for pasting !! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Buffers: shared hit=6 Planning Time: 0.117 ms Execution Time: 11014.169 ms (38 rows)
  1. 結果の Planning TimeExecution Time の値に特に注目してください。出力例では、Planning Time は 0.117 ミリ秒、Execution Time は 11014.169 ミリ秒(11.014 秒)となっています。値はサンプル出力の値と似たものになりますが、データの生成はランダムに行われるため、同一にはなりません。

  2. 実行結果の Planning TimeExecution Time の値をテキスト ファイルにコピーします。後で、カラム型エンジンを有効にした後の結果と比較できます。クエリプランの結果全体をテキスト ファイルにコピーしても構いません。

  3. Q キーを押して、クエリプランを閉じます。

タスク 3. カラム型エンジンのデータベース フラグを確認する

このタスクでは、インスタンスのカラム型エンジン データベース フラグを確認します。

  1. Google Cloud コンソールで、ナビゲーション メニューナビゲーション メニュー アイコン)> [すべてのプロダクトを表示] をクリックします。次に、[データベース] で [AlloyDB for PostgreSQL] を選択します。

  2. lab-instance という名前のインスタンスの行のアクション アイコン(縦に 3 つ並んだ点のアイコン)をクリックし、[編集] をクリックします。

  3. [高度な構成のオプション] というセクションを開きます。

  4. [フラグ] で、[データベース フラグを追加] をクリックします。

  5. [フラグを選択] をクリックして、利用可能なフラグのリストを参照し、サポートされているオプションを大まかに確認します。

google_columnar_engine.enabled という名前のフラグがすでに有効(「オン」のステータス)になっています。このラボでは、フラグを追加しません

  1. [キャンセル] をクリックして、[インスタンスの編集] ページを終了します。

タスク 4. カラム型エンジンのデータベース拡張機能を設定または確認する

前のセクションに続き、このタスクでは、データベース拡張機能を設定して、AlloyDB クラスタのカラム型エンジン機能を完全に有効化します。

フラグの構成とは異なり、データベース拡張機能を有効にするには、psql クライアントを介してインスタンスに接続する必要があります。

  1. alloydb-client シェルに戻ります。psql クライアントは、まだアクティブな状態であるはずです。アクティブになっていない場合は、タスク 1 の手順に沿って再接続します。

  2. 次のクエリを実行して、postgres データベースに接続していることを確認します。

\c postgres
  1. 次のシステムクエリを実行して、データベースで有効になっている拡張機能の詳細を表示します。
注: 表示される拡張機能のリストは異なる場合があります。 \dx List of installed extensions Name | Version | Schema | Description ------------------------+---------+------------+--------------------------------------- google_columnar_engine | 1.0 | public | Google extension for columnar engine google_db_advisor | 1.0 | public | Google extension for Database Advisor hypopg | 1.3.2 | public | Hypothetical indexes for PostgreSQL plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language (4 rows)
  1. リストに google_columnar_engine が表示されている場合は、次のタスク(タスク 5)に進みます。リストに google_columnar_engine が表示されていない場合は、次のコマンドを実行します。
CREATE EXTENSION IF NOT EXISTS google_columnar_engine;
  1. 拡張機能のクエリを再度実行して、google_columnar_engine 拡張機能が有効になっていることを確認します。
\dx

タスク 5. カラム型エンジンをテストする

メインテーブル(pgbench_accounts)は比較的小さいため、評価用に直接 Columnar Engine に追加できます。実際のデプロイでは、カラム型エンジンの推奨フレームワークを利用して、すべてのテーブルで特に使用頻度の高い列を自動的に特定します。こうすることで、エンジンによる管理から最大のメリットを得られます。

  1. alloydb-client シェルに戻ります。次のクエリを実行して、pgbench_accounts をカラム型エンジンに追加します。クエリが完了するまでに数分かかります。
SELECT google_columnar_engine_add('pgbench_accounts');
  1. 次に、先ほど実行したものと同じ EXPLAIN クエリプランを実行して、カラム型エンジンの影響を確認します。値はサンプル出力の値と似たものになりますが、データの生成はランダムに行われるため、同一にはなりません。
EXPLAIN (ANALYZE,COSTS,SETTINGS,BUFFERS,TIMING,SUMMARY,WAL,VERBOSE) SELECT count(*) FROM pgbench_accounts WHERE bid < 189 OR abalance > 100; QUERY PLAN ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Finalize Aggregate (cost=142400.72..142400.73 rows=1 width=8) (actual time=75.948..78.680 rows=1 loops=1) Output: count(*) -> Gather (cost=142400.51..142400.72 rows=2 width=8) (actual time=71.555..78.667 rows=3 loops=1) Output: (PARTIAL count(*)) Workers Planned: 2 Workers Launched: 2 -> Partial Aggregate (cost=141400.51..141400.52 rows=1 width=8) (actual time=45.768..45.771 rows=1 loops=3) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Section removed for pasting ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Rows Removed by Columnar Filter: 10400000 Rows Aggregated by Columnar Scan: 4505600 Columnar cache search mode: native ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Section removed for pasting ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Buffers: shared hit=22 read=3 dirtied=1 I/O Timings: read=0.560 Planning Time: 2.022 ms Execution Time: 78.804 ms (29 rows)
  1. 結果の Planning TimeExecution Time の値に特に注目してください。カラム型エンジンを使用した後のサンプルでは、Planning Time は 2.022 ミリ秒、Execution Time は 78.804 ミリ秒になっています。値はサンプル出力の値と似たものになりますが、データの生成はランダムに行われるため、同一にはなりません。

  2. 提供されたサンプルから、カラム型エンジンを使用する前の Execution Time とカラム型エンジンを使用した後の Execution Time の差は 10935.365 ミリ秒10.9 秒)であることがわかります。つまり、141 分の 1 に減少したことになります。カラム型エンジンを使用した後のサンプルでは、コア データベース エンジンではなくカラム型スキャンを使用して 450 万を超える行が集計されている点にも注意してください。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 カラム型エンジンをテストする

注: すべてのタスクを完了してもスコアが完全に更新されない場合は、スコアの [チェックポイント] ボックス(ページの右側にある黄色のサイドバー)を開き、各タスクの [進行状況を確認] をクリックしてスコアを更新します。

お疲れさまでした

ここでは、AlloyDB カラム型エンジンの優れた機能について確認しました。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2025 年 1 月 16 日

ラボの最終テスト日: 2025 年 12 月 15 日

Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。