読み込んでいます...
一致する結果は見つかりませんでした。

Google Cloud コンソールでスキルを試す

Tag and Discover BigLake Data

700 以上のラボとコースにアクセス

BigLake: Qwik Start

ラボ 45分 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP1040

概要

BigLake は、データ ウェアハウスとデータレイクのデータアクセスを簡素化する統合ストレージ エンジンです。マルチクラウド ストレージとオープン フォーマット全体に対し、一貫した詳細なアクセス制御を行えます。

BigLake により、BigQuery の行レベル、および列レベルのきめ細かいセキュリティが、データが所在するオブジェクト ストア(Amazon S3、Azure Data Lake Storage Gen2、Google Cloud Storage など)のテーブルにも適用されます。アクセス権の委任を介して、テーブルへのアクセスが基盤となるクラウド ストレージ データから切り離されます。この機能を利用することで、組織内のユーザーやパイプラインに対して、テーブル全体へのアクセス権を与えるのではなく、行および列レベルのアクセス権を安全に付与できます。

BigLake テーブルを作成し終えたら、そのテーブルに対して他の BigQuery テーブルと同じようにクエリを実行できます。BigQuery では行および列レベルでのアクセス制御が適用されており、各ユーザーは自身にアクセス権があるデータのみを見ることができるようになっています。BigQuery API を介したデータアクセスのすべてにガバナンス ポリシーが適用されます。たとえば、BigQuery Storage API を使用すると、Apache Spark のようなオープンソースのクエリエンジンを使って、自身にアクセス権があるデータにアクセスできます。以下に図解します。

目標

このラボでは、次の作業を行います。

  • 接続リソースを作成して表示する。
  • Cloud Storage データレイクへのアクセス権を設定する。
  • BigLake テーブルを作成する。
  • BigQuery を介して BigLake テーブルにクエリを実行する。
  • アクセス制御ポリシーを設定する。
  • 外部テーブルを BigLake テーブルにアップグレードする。

設定と要件

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

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、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 をアクティブにする」アイコン をクリックします。

  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. 接続リソースを作成する

BigLake テーブルは接続リソースを使って Google Cloud Storage にアクセスします。接続リソースはプロジェクト内の 1 つの特定のテーブル、または任意の複数のテーブルに関連付けることができます。

  1. ナビゲーション メニューから、[BigQuery] > [BigQuery Studio] にアクセスします。[完了] をクリックします。

  2. 接続を作成するには、[+ 追加]、[外部データソースへの接続] の順にクリックします。

注: [+ 追加] のオプションが表示されず、[外部データソースへの接続] も表示されない場合は、[+ データを追加] をクリックし、データソースの検索バーで「Vertex AI」を検索してください。検索結果の「Vertex AI」をクリックします。 注: BigQuery Connection API の有効化を求められたら [API を有効にする] をクリックします。
  1. [接続タイプ] リストで、[Vertex AI リモートモデル、リモート関数、BigLake(Cloud リソース)] を選択します。

  2. [接続 ID] に「my-connection」と入力します。

  3. [ロケーション タイプ] で [マルチリージョン] を選択し、プルダウンから [US(米国の複数のリージョン)] を選択します。

  1. [接続を作成] をクリックします。

  2. 作成した接続の情報を確認するには、ナビゲーション メニューでその接続を選択します。

  1. [接続情報] でサービス アカウント ID をコピーします。この情報は後で必要になります。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 接続リソースを作成する

タスク 2. Cloud Storage データレイクへのアクセス権を設定する

このセクションでは、新しい接続リソースに Cloud Storage データレイクへの読み取り専用アクセス権を付与します。これにより、BigQuery がユーザーに代わって Cloud Storage ファイルにアクセスできるようになります。接続リソース サービス アカウントに Storage オブジェクト閲覧者の IAM ロールを付与することをおすすめします。これにより、サービス アカウントが Cloud Storage バケットにアクセスできるようになります。

  1. ナビゲーション メニューから、[IAM と管理] > [IAM] にアクセスします。

  2. [+ アクセス権を付与] をクリックします。

  3. [新しいプリンシパル] フィールドに、前の手順でコピーしたサービス アカウント ID を入力します。

  4. [ロールを選択] フィールドで、[Cloud Storage]、[Storage オブジェクト閲覧者] の順に選択します。

  1. [保存] をクリックします。
注: ユーザーを BigLake テーブルに移行した後は、Cloud Storage への直接のアクセス権限を既存のユーザーから削除してください。ファイルへの直接アクセス権限により、BigLake テーブルに設定されたガバナンス ポリシー(行や列レベルのセキュリティなど)をユーザーが回避できるようになるためです。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Cloud Storage データレイクへのアクセス権を設定する

タスク 3. BigLake テーブルを作成する

以下の例では CSV ファイル形式を使用していますが、制限事項に記載されているとおり、BigLake でサポートされているものであればどの形式でも使用可能です。BigQuery でのテーブルの作成に慣れている方であれば、ここでのプロセスも同様に行えます。唯一の違いとして、ここでは関連するクラウド リソースの接続を指定します。

注: パフォーマンスを最大限に引き出すために、Cloud Storage のマルチリージョンのバケットではなく、シングルリージョンまたはデュアルリージョンのバケットを使用することをおすすめします。

前のステップでスキーマを指定しておらず、サービス アカウントにバケットへのアクセス権を付与していなかった場合、このステップは失敗してアクセス拒否のメッセージが通知されます。

データセットを作成する

  1. [BigQuery] > [スタジオ] に戻ります。

  2. プロジェクト名の隣にあるその他アイコンをクリックし、[データセットを作成] を選択します。

  1. [データセット ID] には「demo_dataset」と入力します。

  2. [ロケーション タイプ] で [マルチリージョン] を選択し、プルダウンから [US(米国の複数のリージョン)] を選択します。

  3. その他の項目はデフォルトのままにし、[データセットを作成] をクリックします。

    データセットの作成を終えたら、既存のデータセットを Cloud Storage から BigQuery にコピーできるようになります。

テーブルを作成する

  1. [demo_dataset] の隣にある 3 つの点をクリックし、[テーブルを作成] をクリックします。

  1. [ソース] の [テーブルの作成元] で、[Google Cloud Storage] を選択します。
注: このラボで使用する 2 つのデータセットを含む Cloud Storage バケットが作成されています。
  1. [参照] をクリックしてデータセットを選択します。[] という名前のバケットに移動し、その中の customer.csv ファイルを BigQuery にインポートするために選択して [選択] をクリックします。

  2. [送信先] で、正しいラボ プロジェクトを選択していて、demo_dataset を使用していることを確認します。

  3. テーブル名には「biglake_table」を使用します。

  4. [テーブルタイプ] を [外部テーブル] に変更します。

  5. [Cloud リソース接続を使用して BigLake テーブルを作成する] チェックボックスをオンにします。

    接続 ID として [us.my-connection] が選択されていることを確認します。構成は次のようになります。

  1. [スキーマ] で [テキストとして編集] を有効にし、次のスキーマをコピーしてテキスト ボックスに貼り付けます。
[ { "name": "customer_id", "type": "INTEGER", "mode": "REQUIRED" }, { "name": "first_name", "type": "STRING", "mode": "REQUIRED" }, { "name": "last_name", "type": "STRING", "mode": "REQUIRED" }, { "name": "company", "type": "STRING", "mode": "NULLABLE" }, { "name": "address", "type": "STRING", "mode": "NULLABLE" }, { "name": "city", "type": "STRING", "mode": "NULLABLE" }, { "name": "state", "type": "STRING", "mode": "NULLABLE" }, { "name": "country", "type": "STRING", "mode": "NULLABLE" }, { "name": "postal_code", "type": "STRING", "mode": "NULLABLE" }, { "name": "phone", "type": "STRING", "mode": "NULLABLE" }, { "name": "fax", "type": "STRING", "mode": "NULLABLE" }, { "name": "email", "type": "STRING", "mode": "REQUIRED" }, { "name": "support_rep_id", "type": "INTEGER", "mode": "NULLABLE" } ] 注: 一般的に、データレイクには事前定義されたスキーマはありません。このラボでは、列レベルのポリシー設定をわかりやすくするために、特定のスキーマを使用しています。
  1. [テーブルを作成] をクリックします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 BigLake テーブルを作成する

タスク 4. BigQuery を介して BigLake テーブルにクエリを実行する

BigLake テーブルを作成し終えたら、任意の BigQuery クライアントを使ってクエリを送信できるようになります。

  1. biglake_table のプレビュー ツールバーから、[クエリ] をクリックします。

  2. 次のコマンドを実行し、BigQuery エディタを介して BigLake テーブルにクエリを実行します。

SELECT * FROM `{{{project_0.project_id|Project ID}}}.demo_dataset.biglake_table`
  1. [実行] をクリックします。

  2. 結果のテーブルにすべての列とデータが表示されていることを確認します。

タスク 5. アクセス制御ポリシーを設定する

作成した BigLake テーブルは、BigQuery テーブルと同様の方法で管理できます。BigLake テーブルのアクセス制御ポリシーを作成するには、まず BigQuery でポリシータグの分類体系を設定します。次に、そのポリシータグを機密性の高い行または列に適用します。このセクションでは、列レベルのポリシーを作成します。行レベルのセキュリティの設定方法については、行レベルのセキュリティ ガイドをご覧ください。

これらの目的のために、 という名前の BigQuery の分類体系と biglake-policy という名前の関連するポリシータグが作成されています。

ポリシータグを列に追加する

ここでは、作成したポリシータグを使用して、BigQuery テーブル内の特定の列へのアクセスを制限します。この例では、住所、郵便番号、電話番号といった機密情報へのアクセスを制限します。

  1. ナビゲーション メニューから、[BigQuery] > [スタジオ] にアクセスします。

  2. [demo-dataset] > [biglake_table] に移動し、テーブルをクリックしてテーブルのスキーマページを開きます。

  3. [スキーマを編集] をクリックします。

  4. [address]、[postal_code]、[phone] の隣にあるチェックボックスをオンにします。

  1. [ポリシータグを追加] をクリックします。

  2. [] をクリックして開き、[biglake-policy.] を選択します。

  1. [選択] をクリックします。

    列にポリシータグが付いたはずです。

  1. [保存] をクリックします。

  2. テーブル スキーマが以下のようになっていることを確認します。

注: 列に付いている警告マークは、セキュリティ ポリシーによりそれら特定のフィールドにはアクセスできないことを示しています。

列レベルのセキュリティを確認する

  1. biglake_table のクエリエディタを開きます。

  2. 次のコマンドを実行し、BigQuery エディタを介して BigLake テーブルにクエリを実行します。

SELECT * FROM `{{{project_0.project_id|Project ID}}}.demo_dataset.biglake_table`
  1. [実行] をクリックします。

    アクセス拒否のエラーが通知されるはずです。

  1. 今度は次のクエリ(アクセス権のない列を除外しているもの)を実行します。
SELECT * EXCEPT(address, phone, postal_code) FROM `{{{project_0.project_id|Project ID}}}.demo_dataset.biglake_table`

今回のクエリは問題なく実行され、アクセス権のある列が返されるはずです。この例は、BigQuery を介して適用される列レベルのセキュリティを、BigLake テーブルにも適用できることを示しています。

タスク 6. 外部テーブルを BigLake テーブルにアップグレードする

既存のテーブルをクラウド リソース接続に関連付けることによって、既存のテーブルを BigLake テーブルにアップグレードできます。フラグと引数の全一覧については、bq updatebq mkdef をご覧ください。

外部テーブルを作成する

  1. [demo_dataset] の隣にある 3 つの点をクリックし、[テーブルを作成] をクリックします。

  2. [ソース] の [テーブルの作成元] で、[Google Cloud Storage] を選択します。

  3. [参照] をクリックしてデータセットを選択します。[] という名前のバケットに移動し、その中の invoice.csv ファイルを BigQuery にインポートするために選択して [選択] をクリックします。

  4. [送信先] で、正しいラボ プロジェクトを選択していて、demo_dataset を使用していることを確認します。

  5. テーブル名には「external_table」を使用します。

  6. [テーブルタイプ] を [外部テーブル] に変更します。

注: クラウド リソース接続はまだ指定しないでください。
  1. [スキーマ] で [テキストとして編集] を有効にし、次のスキーマをコピーしてテキスト ボックスに貼り付けます。
[ { "name": "invoice_id", "type": "INTEGER", "mode": "REQUIRED" }, { "name": "customer_id", "type": "INTEGER", "mode": "REQUIRED" }, { "name": "invoice_date", "type": "TIMESTAMP", "mode": "REQUIRED" }, { "name": "billing_address", "type": "STRING", "mode": "NULLABLE" }, { "name": "billing_city", "type": "STRING", "mode": "NULLABLE" }, { "name": "billing_state", "type": "STRING", "mode": "NULLABLE" }, { "name": "billing_country", "type": "STRING", "mode": "NULLABLE" }, { "name": "billing_postal_code", "type": "STRING", "mode": "NULLABLE" }, { "name": "total", "type": "NUMERIC", "mode": "REQUIRED" } ]
  1. [テーブルを作成] をクリックします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 外部テーブルを作成する

外部テーブルを BigLake テーブルに更新する

  1. 新しい Cloud Shell ウィンドウを開き、次のコマンドを実行して、使用する接続を指定する新しい外部テーブル定義を生成します。
export PROJECT_ID=$(gcloud config get-value project) bq mkdef \ --autodetect \ --connection_id=$PROJECT_ID.US.my-connection \ --source_format=CSV \ "gs://$PROJECT_ID/invoice.csv" > /tmp/tabledef.json
  1. テーブル定義が作成されていることを確認します。
cat /tmp/tabledef.json
  1. テーブルからスキーマを取得します。
bq show --schema --format=prettyjson demo_dataset.external_table > /tmp/schema
  1. 新しい外部テーブルの定義を使用してテーブルを更新します。
bq update --external_table_definition=/tmp/tabledef.json --schema=/tmp/schema demo_dataset.external_table

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 外部テーブルを BigLake テーブルに更新する

更新したテーブルを確認する

  1. ナビゲーション メニューから、[BigQuery] > [スタジオ] にアクセスします。

  2. [demo-dataset] に移動して、[external_table] をダブルクリックします。

  3. [詳細] タブを開きます。

  4. [外部データ構成] で、テーブルが正しい接続 ID を使用していることを確認します。

これで、既存の外部テーブルをクラウド リソース接続に関連付けることにより、BigLake テーブルにアップグレードできました。

お疲れさまでした

このラボでは、接続リソースを作成し、Cloud Storage データレイクへのアクセスを設定し、そこから BigLake テーブルを作成しました。続いて、BigQuery を介して BigLake テーブルにクエリを実行し、列レベルのアクセス制御ポリシーを設定しました。最後に、接続リソースを使用して既存の外部テーブルを BigLake テーブルに更新しました。

次のステップと詳細情報

BigLake への理解をさらに深めるために、以下のドキュメントをぜひご覧ください。

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

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

マニュアルの最終更新日: 2025 年 3 月 21 日

ラボの最終テスト日: 2025 年 3 月 21 日

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

前へ 次へ

始める前に

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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