承認済みビューを作成する


BigQuery は、ペタバイト級のアナリティクス データ ウェアハウスであり、巨大容量のデータに対して SQL クエリをリアルタイムに近い速度で実行できます。

データセットに表示アクセス権を設定する場合、BigQuery では承認済みビューを作成します。承認済みビューを使用すると、元のテーブルへのアクセス権がないユーザーでも、クエリの結果を特定のユーザーやグループと共有できます。ビューの SQL クエリを使用して、ユーザーがクエリを実行できる列(フィールド)を制限することもできます。このチュートリアルでは、承認済みビューを作成します。

目標

このチュートリアルでは、次のタスクを行う方法を説明します。

  • データセットを作成し、アクセス制御を適用する
  • プロジェクトにアクセス制御を割り当てる
  • ユーザーがクエリを実行できるデータを制限する承認済みビューを作成する

費用

BigQuery は有料のプロダクトです。このチュートリアルを行うと、BigQuery の使用料金が発生します。BigQuery では、特定の上限まで無料でリソースを使用できます。詳細については、BigQuery の無料のオペレーションと無料枠をご覧ください。

始める前に

このチュートリアルを始める前に、Google Cloud コンソールを使用して、プロジェクトを作成または選択します。

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  4. 新しいプロジェクトでは、BigQuery が自動的に有効になります。既存のプロジェクトで BigQuery を有効にするには、

    BigQuery API を有効にします。

    API を有効にする

    に移動します。
  5. (省略可)プロジェクトに対する課金を有効にします。課金を有効にしない場合や、クレジット カードを指定しない場合でも、このドキュメントの手順は行えます。BigQuery には、この手順を実施するためのサンドボックスが用意されています。詳細については、BigQuery サンドボックスを有効にするをご覧ください。

ソース データセットを作成する

まず、ソースデータを格納するデータセットを作成します。このチュートリアルでは、GitHub 一般公開データセットからクエリでデータを取得し、ソース データセットのテーブルに格納します。ソース データセットには、データ アナリストに見せたくない情報も含まれています。このようなデータに対するアクセスを承認済みのビューで制限します。

ソース データセットを作成するには:

コンソール

  1. Google Cloud コンソールで、[BigQuery] ページを開きます。

    [BigQuery] に移動

  2. [エクスプローラ] ペインで、データセットを作成するプロジェクトを選択します。

  3. アクション オプションを開いて、[データセットを作成] をクリックします。

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

  5. その他のデフォルト設定はそのままにして、[データセットを作成] をクリックします。

SQL

CREATE SCHEMA DDL ステートメントを使用します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを入力します。

    CREATE SCHEMA github_source_data;
    

  3. [実行] をクリックします。

クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。

Java

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートJava の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

// Create a source dataset to store your table.
Dataset sourceDataset = bigquery.create(DatasetInfo.of(sourceDatasetId));

Python

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートPython の手順に沿って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

from google.cloud import bigquery

client = bigquery.Client()
source_dataset_id = "github_source_data"
source_dataset_id_full = "{}.{}".format(client.project, source_dataset_id)

source_dataset = bigquery.Dataset(source_dataset_id_full)
# Specify the geographic location where the dataset should reside.
source_dataset.location = "US"
source_dataset = client.create_dataset(source_dataset)  # API request

ソース データセットを作成したら、SQL クエリを使用してテーブルを更新します。このクエリでは、GitHub 一般公開データセットからデータを取得します。

コンソール

  1. Google Cloud コンソールで、[BigQuery] ページを開きます。

    [BigQuery] に移動

  2. 次のクエリをコピーして、[エディタ] ペインに貼り付けます。

    SELECT
      commit,
      author,
      committer,
      repo_name
    FROM
      `bigquery-public-data.github_repos.commits`
    LIMIT
      1000;
    
  3. [展開] をクリックして、[クエリ設定] を選択します。

  4. [送信先] で [クエリ結果の宛先テーブルを設定する] をオンにします。

  5. [データセット] に「PROJECT_ID.github_source_data」と入力します。PROJECT_ID は、実際のプロジェクト ID に置き換えます。

  6. [テーブル ID] に「github_contributors」と入力します。

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

  8. [実行] をクリックします。

  9. クエリが完了したら、[github_contributors] をクリックしてから [プレビュー] をクリックし、データがテーブルに書き込まれていることを確認します。

Java

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートJava の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

// Populate a source table
String tableQuery =
    "SELECT commit, author, committer, repo_name"
        + " FROM `bigquery-public-data.github_repos.commits`"
        + " LIMIT 1000";
QueryJobConfiguration queryConfig =
    QueryJobConfiguration.newBuilder(tableQuery)
        .setDestinationTable(TableId.of(sourceDatasetId, sourceTableId))
        .build();
bigquery.query(queryConfig);

Python

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートPython の手順に沿って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

source_table_id = "github_contributors"
job_config = bigquery.QueryJobConfig()
job_config.destination = source_dataset.table(source_table_id)
sql = """
    SELECT commit, author, committer, repo_name
    FROM `bigquery-public-data.github_repos.commits`
    LIMIT 1000
"""
query_job = client.query(
    sql,
    # Location must match that of the dataset(s) referenced in the query
    # and of the destination table.
    location="US",
    job_config=job_config,
)  # API request - starts the query

query_job.result()  # Waits for the query to finish

ビューを保存できるデータセットを作成する

ソース データセットを作成したら、データ アナリストと共有する承認済みビューを格納する新しい別のデータセットを作成します。後のステップで、ソース データセット内のデータへのアクセス権を承認済みビューに付与します。データ アナリストには承認済みビューへのアクセス権が付与されますが、ソースデータへの直接アクセス権は付与されません。

承認済みビューは、ソースデータとは別のデータセットで作成する必要があります。これにより、データのオーナーは元のデータへのアクセス権を同時に付与することなく、承認済みビューへのアクセス権を付与できます。ソース データセットと承認済みビューのデータセットは、同じリージョンのロケーションに存在する必要があります。

ビューを保存するデータセットを作成するには:

コンソール

  1. Google Cloud コンソールで、[BigQuery] ページを開きます。

    [BigQuery] に移動

  2. [エクスプローラ] パネルで、データセットを作成するプロジェクトを選択します。

  3. アクション オプションを開いて、[データセットを作成] をクリックします。

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

  5. その他のデフォルト設定はそのままにして、[データセットを作成] をクリックします。

SQL

CREATE SCHEMA DDL ステートメントを使用します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを入力します。

    CREATE SCHEMA shared_views;
    

  3. [実行] をクリックします。

クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。

Java

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートJava の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

// Create a separate dataset to store your view
Dataset sharedDataset = bigquery.create(DatasetInfo.of(sharedDatasetId));

Python

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートPython の手順に沿って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

shared_dataset_id = "shared_views"
shared_dataset_id_full = "{}.{}".format(client.project, shared_dataset_id)

shared_dataset = bigquery.Dataset(shared_dataset_id_full)
shared_dataset.location = "US"
shared_dataset = client.create_dataset(shared_dataset)  # API request

新しいデータセットにビューを作成する

新しいデータセットに、承認用に使用するビューを作成します。このビューをデータ アナリストと共有します。このビューは SQL クエリで作成します。このクエリで、データ アナリストに見せない列を除外します。

このチュートリアルでは、共有ビューから作成者の情報(投稿者の情報を除く)を除外し、実行者の情報(実行者の名前を除く)を除外します。

新しいデータセットにビューを作成するには:

コンソール

  1. Google Cloud コンソールで、[BigQuery] ページを開きます。

    [BigQuery] に移動

  2. 次のクエリをコピーして、[エディタ] ペインに貼り付けます。PROJECT_ID は、実際のプロジェクト ID に置き換えます。

    SELECT
      commit,
      author.name AS author,
      committer.name AS committer,
      repo_name
    FROM
      `PROJECT_ID.github_source_data.github_contributors`;
    
  3. [保存] > [ビューを保存] の順にクリックします。

  4. [ビューの保存] ダイアログで、次の操作を行います。

    1. [プロジェクト] で、必要なプロジェクトが選択されていることを確認します。
    2. [データセット] に「shared_views」と入力します。
    3. [テーブル] に「github_analyst_view」と入力します。
    4. [保存] をクリックします。

SQL

CREATE VIEW DDL ステートメントを使用します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを入力します。

    CREATE VIEW shared_views.github_analyst_view
    AS (
      SELECT
        commit,
        author.name AS author,
        committer.name AS committer,
        repo_name
      FROM
        `PROJECT_ID.github_source_data.github_contributors`
    );
    

    PROJECT_ID は、実際のプロジェクト ID に置き換えます。

  3. [実行] をクリックします。

クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。

Java

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートJava の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

// Create the view in the new dataset
String viewQuery =
    String.format(
        "SELECT commit, author.name as author, committer.name as committer, repo_name FROM %s.%s.%s",
        projectId, sourceDatasetId, sourceTableId);

ViewDefinition viewDefinition = ViewDefinition.of(viewQuery);

Table view =
    bigquery.create(TableInfo.of(TableId.of(sharedDatasetId, sharedViewId), viewDefinition));

Python

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートPython の手順に沿って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

shared_view_id = "github_analyst_view"
view = bigquery.Table(shared_dataset.table(shared_view_id))
sql_template = """
    SELECT
        commit, author.name as author,
        committer.name as committer, repo_name
    FROM
        `{}.{}.{}`
"""
view.view_query = sql_template.format(
    client.project, source_dataset_id, source_table_id
)
view = client.create_table(view)  # API request

データ アナリストにプロジェクト レベルの IAM ロールを割り当てる

データ アナリストがビューにクエリを実行するには、クエリジョブの実行権限が必要になります。bigquery.user ロールには、プロジェクト内でジョブ(クエリジョブを含む)を実行する権限が含まれます。ユーザーまたはグループにプロジェクト レベルで bigquery.user 役割を付与すると、ユーザーはデータセットを作成し、それらのデータセット内のテーブルに対してクエリジョブを実行できます。bigquery.user 役割では、他のユーザーが作成しなかったデータセットのクエリ、テーブルデータの表示、テーブル スキーマの詳細の表示はできません。

プロジェクト レベルの bigquery.user ロールを割り当てても、データ アナリストはビューからクエリするテーブルを含むデータセット内のテーブルデータを表示することはできません。また、クエリも実行できません。bigquery.user ロールでは、ユーザーはビューを更新することもできません。通常、企業に所属するほとんどの個人(データ サイエンティスト、ビジネス インテリジェンス アナリスト、データ アナリスト)には、プロジェクト レベルの bigquery.user ロールを割り当てる必要があります。

グループに IAM ロールを追加する場合には、有効な Google アカウントまたは Google Apps アカウントに関連付けられたメールアドレスまたはドメインを使用する必要があります。

プロジェクト レベルでデータ アナリストのグループを bigquery.user ロールに割り当てるには:

コンソール

  1. Google Cloud Console で IAM ページを開きます。

    [IAM] ページを開く

  2. 上部のバーにあるプロジェクト セレクタでプロジェクトが選択されていることを確認します。

  3. [アクセスを許可] をクリックします。

  4. [アクセス権を付与します] ダイアログで、次の操作を行います。

    1. [新しいプリンシパル] ボックスに、データ アナリストを含むグループを入力します(例: data_analysts@example.com)。
    2. [ロールを選択] ボックスで、BigQuery ユーザーのロールを検索して選択します。
    3. [保存] をクリックします。

ビューを含むデータセットにアクセス制御を割り当てる

データ アナリストがビューにクエリを実行するには、ビューを含むデータセットに対する bigquery.dataViewer ロールが必要です。bigquery.user ロールは、クエリジョブの作成に必要な権限をデータ アナリストに付与します。ただし、ビューを含むデータセットへの bigquery.dataViewer アクセス権がないと、ビューを正常にクエリすることはできません。

データセットに対する bigquery.dataViewer アクセス権をデータ アナリストに付与するには:

コンソール

  1. Google Cloud コンソールで、[BigQuery] ページを開きます。

    [BigQuery] に移動

  2. [エクスプローラ] ペインで、shared_views データセットを選択します。

  3. [共有] > [権限] の順にクリックします。

  4. [権限] ペインで、[プリンシパルを追加] をクリックします。

  5. [新しいプリンシパル] ボックスに、データ アナリストを含むグループを入力します(例: data_analysts@example.com)。

  6. [ロールを選択] をクリックし、[BigQuery] > [BigQuery データ閲覧者] を選択します。

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

  8. [閉じる] をクリックします。

Java

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートJava の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

// Assign access controls to the dataset containing the view
List<Acl> viewAcl = new ArrayList<>(sharedDataset.getAcl());
viewAcl.add(Acl.of(new Acl.Group("example-analyst-group@google.com"), Acl.Role.READER));
sharedDataset.toBuilder().setAcl(viewAcl).build().update();

Python

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートPython の手順に沿って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

# analyst_group_email = 'data_analysts@example.com'
access_entries = shared_dataset.access_entries
access_entries.append(
    bigquery.AccessEntry("READER", "groupByEmail", analyst_group_email)
)
shared_dataset.access_entries = access_entries
shared_dataset = client.update_dataset(
    shared_dataset, ["access_entries"]
)  # API request

ソース データセットの表示アクセスを承認する

ビューを含むデータセットのアクセス制御を作成したら、承認済みのビューとしてソース データセットにビューを追加します。この承認により、ビューはソースデータにアクセスできますが、データ アナリスト グループはアクセスできません。

ソースデータにアクセスするビューを承認するには:

コンソール

  1. Google Cloud コンソールで、[BigQuery] ページを開きます。

    [BigQuery] に移動

  2. [エクスプローラ] ペインで、github_source_data データセットを選択します。

  3. [共有] をクリックし、[ビューを承認] を選択します。

  4. [承認済みビュー] ペインが表示されたら、[承認済みビュー] フィールドに github_analyst_view ビューを入力します。

  5. [承認を追加] をクリックします。

これで、github_analyst_view ビューがソース データセット内のデータにアクセスできるようになりました。

Java

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートJava の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

// Authorize the view to access the source dataset
List<Acl> srcAcl = new ArrayList<>(sourceDataset.getAcl());
srcAcl.add(Acl.of(new Acl.View(view.getTableId())));
sourceDataset.toBuilder().setAcl(srcAcl).build().update();

Python

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートPython の手順に沿って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

access_entries = source_dataset.access_entries
access_entries.append(
    bigquery.AccessEntry(None, "view", view.reference.to_api_repr())
)
source_dataset.access_entries = access_entries
source_dataset = client.update_dataset(
    source_dataset, ["access_entries"]
)  # API request

構成を確認する

構成が完了すると、データ アナリスト グループ(たとえば、data_analysts)のメンバーがビューにクエリを実行して、構成を確認できます。

構成を確認するには:

SQL

データ アナリスト グループのメンバーに次の作業を依頼します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを入力します。

    SELECT
      *
    FROM
      `PROJECT_ID.shared_views.github_analyst_view`;
    

    PROJECT_ID は、実際のプロジェクト ID に置き換えます。

  3. [実行] をクリックします。

クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。

完全なソースコード

次に、このチュートリアル用のソースコード全体を示します。

Java

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートJava の手順に沿って設定を行ってください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

// Create a source dataset to store your table.
Dataset sourceDataset = bigquery.create(DatasetInfo.of(sourceDatasetId));

// Populate a source table
String tableQuery =
    "SELECT commit, author, committer, repo_name"
        + " FROM `bigquery-public-data.github_repos.commits`"
        + " LIMIT 1000";
QueryJobConfiguration queryConfig =
    QueryJobConfiguration.newBuilder(tableQuery)
        .setDestinationTable(TableId.of(sourceDatasetId, sourceTableId))
        .build();
bigquery.query(queryConfig);

// Create a separate dataset to store your view
Dataset sharedDataset = bigquery.create(DatasetInfo.of(sharedDatasetId));

// Create the view in the new dataset
String viewQuery =
    String.format(
        "SELECT commit, author.name as author, committer.name as committer, repo_name FROM %s.%s.%s",
        projectId, sourceDatasetId, sourceTableId);

ViewDefinition viewDefinition = ViewDefinition.of(viewQuery);

Table view =
    bigquery.create(TableInfo.of(TableId.of(sharedDatasetId, sharedViewId), viewDefinition));

// Assign access controls to the dataset containing the view
List<Acl> viewAcl = new ArrayList<>(sharedDataset.getAcl());
viewAcl.add(Acl.of(new Acl.Group("example-analyst-group@google.com"), Acl.Role.READER));
sharedDataset.toBuilder().setAcl(viewAcl).build().update();

// Authorize the view to access the source dataset
List<Acl> srcAcl = new ArrayList<>(sourceDataset.getAcl());
srcAcl.add(Acl.of(new Acl.View(view.getTableId())));
sourceDataset.toBuilder().setAcl(srcAcl).build().update();

Python

このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートPython の手順に沿って設定を行ってください。詳細については、BigQuery Python API のリファレンス ドキュメントをご覧ください。

BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。

# Create a source dataset
from google.cloud import bigquery

client = bigquery.Client()
source_dataset_id = "github_source_data"
source_dataset_id_full = "{}.{}".format(client.project, source_dataset_id)

source_dataset = bigquery.Dataset(source_dataset_id_full)
# Specify the geographic location where the dataset should reside.
source_dataset.location = "US"
source_dataset = client.create_dataset(source_dataset)  # API request

# Populate a source table
source_table_id = "github_contributors"
job_config = bigquery.QueryJobConfig()
job_config.destination = source_dataset.table(source_table_id)
sql = """
    SELECT commit, author, committer, repo_name
    FROM `bigquery-public-data.github_repos.commits`
    LIMIT 1000
"""
query_job = client.query(
    sql,
    # Location must match that of the dataset(s) referenced in the query
    # and of the destination table.
    location="US",
    job_config=job_config,
)  # API request - starts the query

query_job.result()  # Waits for the query to finish

# Create a separate dataset to store your view
shared_dataset_id = "shared_views"
shared_dataset_id_full = "{}.{}".format(client.project, shared_dataset_id)

shared_dataset = bigquery.Dataset(shared_dataset_id_full)
shared_dataset.location = "US"
shared_dataset = client.create_dataset(shared_dataset)  # API request

# Create the view in the new dataset
shared_view_id = "github_analyst_view"
view = bigquery.Table(shared_dataset.table(shared_view_id))
sql_template = """
    SELECT
        commit, author.name as author,
        committer.name as committer, repo_name
    FROM
        `{}.{}.{}`
"""
view.view_query = sql_template.format(
    client.project, source_dataset_id, source_table_id
)
view = client.create_table(view)  # API request

# Assign access controls to the dataset containing the view
# analyst_group_email = 'data_analysts@example.com'
access_entries = shared_dataset.access_entries
access_entries.append(
    bigquery.AccessEntry("READER", "groupByEmail", analyst_group_email)
)
shared_dataset.access_entries = access_entries
shared_dataset = client.update_dataset(
    shared_dataset, ["access_entries"]
)  # API request

# Authorize the view to access the source dataset
access_entries = source_dataset.access_entries
access_entries.append(
    bigquery.AccessEntry(None, "view", view.reference.to_api_repr())
)
source_dataset.access_entries = access_entries
source_dataset = client.update_dataset(
    source_dataset, ["access_entries"]
)  # API request

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

  1. Google Cloud コンソールで、[リソースの管理] ページに移動します。

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

次のステップ