Créer une vue autorisée

BigQuery est un entrepôt de données analytiques opérant à l'échelle du pétaoctet, qui vous permet d'exécuter des requêtes SQL en quasi-temps réel portant sur de grandes quantités de données.

La création d'une vue autorisée dans BigQuery consiste à permettre à une vue d'accéder à un ensemble de données. Une vue autorisée vous permet de partager des résultats de requête avec des utilisateurs et des groupes particuliers sans leur donner accès aux tables sous-jacentes. Vous pouvez également utiliser la requête SQL de la vue pour limiter les colonnes (champs) que les utilisateurs peuvent interroger. Dans ce tutoriel, vous allez créer une vue autorisée.

Objectifs

Ce tutoriel vous montre comment effectuer les opérations suivantes :

  • Créer des ensembles de données et leur appliquer des contrôles d'accès
  • Attribuer des contrôles d'accès à votre projet
  • Créer une vue autorisée restreignant les données que les utilisateurs peuvent interroger

Coûts

BigQuery est un produit payant. Des coûts d'utilisation vous seront donc facturés dans le cadre de ce tutoriel. Selon la tarification des requêtes BigQuery, le premier To par mois est gratuit. Pour en savoir plus, consultez la page Tarifs.

Avant de commencer

Avant de commencer ce tutoriel, utilisez la console Google Cloud Platform pour créer ou sélectionner un projet et activer la facturation.

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Sélectionnez ou créez un projet Google Cloud Platform.

    Accéder à la page "Gérer les ressources"

  3. Assurez-vous que la facturation est activée pour votre projet Google Cloud Platform.

    Découvrir comment activer la facturation

  4. BigQuery est automatiquement activé dans les nouveaux projets. Pour activer BigQuery dans un projet préexistant, Activez BigQuery API.

    Activez API

Présentation

Dans ce tutoriel, vous créez deux ensembles de données : un pour les données sources et un pour la vue autorisée. Vous remplissez l'ensemble de données source avec des données provenant de l'ensemble de données public GitHub. Vous créez ensuite une vue qui interroge une table de l'ensemble de données source.

Une fois les ensembles de données et la vue créés, vous attribuez des contrôles d'accès au projet, à l'ensemble de données contenant la vue et à celui qui contient les données sources.

En permettant à une vue d'accéder à l'ensemble de données source, vous créez une vue autorisée. La procédure de création d'une vue autorisée comprend les étapes suivantes :

  • Créer un ensemble de données distinct pour stocker la vue
  • Créer la vue dans le nouvel ensemble de données
  • Attribuer des contrôles d'accès au projet
  • Attribuer des contrôles d'accès à l'ensemble de données contenant la vue
  • Autoriser la vue à accéder à l'ensemble de données source

Créer un ensemble de données source

Commencez par créer un ensemble de données pour y stocker les données sources. Pour ce tutoriel, vous allez remplir une table de votre ensemble de données source en interrogeant l'ensemble de données public GitHub. Votre ensemble de données source contient des informations que les analystes de données ne doivent pas voir. Vous utilisez donc une vue autorisée pour restreindre l'accès aux données.

Pour créer votre ensemble de données source :

Console

  1. Ouvrez l'interface utilisateur Web de BigQuery dans la console GCP.
    Accéder à l'UI Web de BigQuery

  2. Dans le panneau de navigation, dans la section Ressources, sélectionnez votre projet et cliquez sur Créer un ensemble de données.

  3. Dans le champ ID de l'ensemble de données, saisissez github_source_data.

  4. Ne modifiez aucun autre paramètre par défaut, et cliquez sur Créer un ensemble de données.

UI classique

  1. Accédez à l'UI Web de BigQuery.

    Accéder à l'UI Web de BigQuery

  2. Dans le volet de navigation, cliquez sur la flèche vers le bas flèche vers le bas située à côté du nom de votre projet, puis sur Créer un nouvel ensemble de données.

  3. Dans le champ ID de l'ensemble de données, saisissez github_source_data.

  4. Laissez la valeur par défaut pour tous les autres paramètres, et cliquez sur OK.

Ligne de commande

Utilisez la commande mk pour créer votre ensemble de données.

bq mk github_source_data

Python

Avant d'essayer cet exemple, suivez la procédure de configuration de Python dans le guide de démarrage rapide de BigQuery à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Python.

from google.cloud import bigquery

client = bigquery.Client()
source_dataset_id = 'github_source_data'

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

Une fois l'ensemble de données source créé, remplissez une table via une requête SQL. Cette requête extrait des données de l'ensemble de données public GitHub.

Console

  1. Ouvrez l'interface utilisateur Web de BigQuery dans la console GCP.
    Accéder à l'UI Web de BigQuery

  2. Cliquez sur Saisir une nouvelle requête.

  3. Copiez et collez la requête suivante dans la zone de texte de l'éditeur de requête.

    #standardSQL
    SELECT
      commit,
      author,
      committer,
      repo_name
    FROM
      `bigquery-public-data.github_repos.commits`
    LIMIT
      1000
    
  4. Cliquez sur Plus et sélectionnez Paramètres de requête.

  5. Pour le champ Destination, cochez la case Définir une table de destination pour les résultats de la requête.

    • Pour le champ Nom du projet, vérifiez que votre projet est sélectionné.
    • Pour le champ Nom de l'ensemble de données, vérifiez que github_source_data est sélectionné.
    • Dans le champ Nom de la table, saisissez github_contributors.
    • Cliquez sur Enregistrer.

  6. Cliquez sur Exécuter.

  7. Une fois la requête exécutée, cliquez sur github_contributors puis sur Aperçu pour vérifier que les données ont bien été écrites dans la table.

UI classique

  1. Accédez à l'UI Web de BigQuery.

    Accéder à l'UI Web de BigQuery

  2. Cliquez sur le bouton SAISIR UNE REQUÊTE.

  3. Copiez et collez la requête suivante dans la zone de texte Nouvelle requête.

    #standardSQL
    SELECT
      commit,
      author,
      committer,
      repo_name
    FROM
      `bigquery-public-data.github_repos.commits`
    LIMIT
      1000
    
  4. Cliquez sur Afficher les options.

  5. Dans le champ Table de destination, cliquez sur Sélectionner une table.

  6. Dans la boîte de dialogue Sélectionner une table de destination :

    • Pour le champ Projet, vérifiez que votre projet est sélectionné.
    • Pour le champ Ensemble de données, vérifiez que github_source_data est sélectionné.
    • Dans le champ ID de la table, saisissez github_contributors.
    • Cliquez sur OK.

  7. Cliquez sur Exécuter la requête.

  8. Une fois la requête exécutée, cliquez sur github_contributors puis sur Aperçu pour vérifier que les données ont bien été écrites dans la table.

Ligne de commande

Utilisez la commande query avec l'indicateur --destination_table pour écrire les résultats de la requête dans une table de l'ensemble de données github_source_data.

bq query --destination_table=github_source_data.github_contributors --use_legacy_sql=false 'SELECT commit, author, committer, repo_name FROM
`bigquery-public-data.github_repos.commits` LIMIT 1000'

Python

Avant d'essayer cet exemple, suivez la procédure de configuration de Python dans le guide de démarrage rapide de BigQuery à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Python.

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

Créer un ensemble de données distinct pour stocker la vue

Après avoir créé votre ensemble de données source, créez un nouvel ensemble de données afin d'y stocker la vue que vous partagerez avec vos analystes de données. Cette vue aura accès aux données de l'ensemble de données source. Vos analystes de données pourront accéder à la vue, mais pas aux données sources.

La vue que vous créez doit être placée dans un ensemble de données distinct de celui qui contient les données sources interrogées par la vue. Vous ne pouvez affecter des contrôles d'accès qu'au niveau de l'ensemble de données. Par conséquent, si la vue est créée dans le même ensemble de données que les données sources, vos analystes de données auront accès aux données aussi bien qu'à la vue.

Pour créer un ensemble de données dans lequel stocker votre vue :

Console

  1. Ouvrez l'interface utilisateur Web de BigQuery dans la console GCP.
    Accéder à l'UI Web de BigQuery

  2. Dans le panneau de navigation, dans la section Ressources, sélectionnez votre projet et cliquez sur Créer un ensemble de données.

  3. Dans le champ ID de l'ensemble de données, saisissez shared_views.

  4. Ne modifiez aucun autre paramètre par défaut, et cliquez sur Créer un ensemble de données.

UI classique

  1. Accédez à l'UI Web de BigQuery.

    Accéder à l'UI Web de BigQuery

  2. Dans le volet de navigation, cliquez sur la flèche vers le bas flèche vers le bas située à côté du nom de votre projet, puis sur Créer un nouvel ensemble de données.

  3. Dans le champ ID de l'ensemble de données, saisissez shared_views.

  4. Laissez la valeur par défaut pour tous les autres paramètres, et cliquez sur OK.

Ligne de commande

Utilisez la commande mk pour créer votre ensemble de données.

bq mk shared_views

Python

Avant d'essayer cet exemple, suivez la procédure de configuration de Python dans le guide de démarrage rapide de BigQuery à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Python.

shared_dataset_id = 'shared_views'
shared_dataset = bigquery.Dataset(client.dataset(shared_dataset_id))
shared_dataset.location = 'US'
shared_dataset = client.create_dataset(shared_dataset)  # API request

Créer la vue dans le nouvel ensemble de données

Dans le nouvel ensemble de données, créez la vue que vous souhaitez autoriser. Il s'agit de la vue que vous partagerez avec vos analystes de données. Cette vue est créée à l'aide d'une requête SQL qui exclut les colonnes que les analystes de données ne doivent pas voir.

Pour ce tutoriel, votre vue partagée exclut toutes les informations relatives à l'auteur excepté son nom, de même que toutes les informations relatives au validateur excepté son nom.

Pour créer cette vue dans le nouvel ensemble de données :

Console

  1. Ouvrez l'interface utilisateur Web de BigQuery dans la console GCP.
    Accéder à l'UI Web de BigQuery

  2. Cliquez sur Saisir une nouvelle requête.

  3. Copiez et collez la requête suivante dans la zone de texte de l'éditeur de requête. Remplacez [PROJECT_ID] par l'ID de votre projet.

    #standardSQL
    SELECT
      commit,
      author.name as author,
      committer.name as committer,
      repo_name
    FROM
      `[PROJECT_ID].github_source_data.github_contributors`
    
  4. Cliquez sur Plus et sélectionnez Paramètres de requête.

  5. Pour le champ Dialecte SQL, sélectionnez Standard. Cliquez sur Enregistrer pour mettre à jour les paramètres de la requête.

  6. Cliquez sur Enregistrer la vue.

  7. Dans la boîte de dialogue Enregistrer la vue :

    • Pour le champ Nom du projet, vérifiez que votre projet est sélectionné.
    • Pour le champ Nom de l'ensemble de données, vérifiez que shared_views est sélectionné.
    • Dans le champ Nom de la table, saisissez github_analyst_view.
    • Cliquez sur Enregistrer.

UI classique

  1. Accédez à l'UI Web de BigQuery.

    Accéder à l'UI Web de BigQuery

  2. Cliquez sur le bouton SAISIR UNE REQUÊTE.

  3. Copiez et collez la requête suivante dans la zone de texte Nouvelle requête, en remplaçant [PROJECT_ID] par l'ID de votre projet :

    #standardSQL
    SELECT
      commit,
      author.name as author,
      committer.name as committer,
      repo_name
    FROM
      `[PROJECT_ID].github_source_data.github_contributors`
    
  4. Cliquez sur Afficher les options.

  5. Décochez la case Utiliser l'ancien SQL.

  6. Cliquez sur Enregistrer la vue.

  7. Dans la boîte de dialogue Enregistrer la vue :

    • Pour le champ Projet, vérifiez que votre projet est sélectionné.
    • Pour le champ Ensemble de données, vérifiez que shared_views est sélectionné.
    • Dans le champ ID de la table, saisissez github_analyst_view.
    • Cliquez sur OK.

Ligne de commande

Utilisez la commande mk avec l'indicateur --view, en remplaçant [PROJECT_ID] par l'ID de votre projet :

bq mk --use_legacy_sql=false --view='SELECT commit, author.name as author, committer.name as committer, repo_name FROM `[PROJECT_ID].github_source_data.github_contributors`' shared_views.github_analyst_view

Python

Avant d'essayer cet exemple, suivez la procédure de configuration de Python dans le guide de démarrage rapide de BigQuery à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Python.

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

Attribuer un rôle IAM au niveau du projet à vos analystes de données

Pour interroger la vue, vos analystes de données doivent être autorisés à exécuter des tâches de requête. Le rôle bigquery.user inclut les autorisations requises pour effectuer des tâches au sein du projet, y compris des tâches de requête. Si vous attribuez à un utilisateur ou à un groupe d'utilisateurs le rôle bigquery.user au niveau du projet, chacun de ces utilisateurs pourra créer des ensembles de données et exécuter des tâches de requête sur les tables de ces ensembles de données. Le rôle bigquery.user n'autorise pas un utilisateur à interroger les données, à afficher les données des tables ni à consulter les détails des schémas de table pour les ensembles de données qu'il n'a pas créés.

Le fait d'attribuer le rôle bigquery.user au niveau du projet à vos analystes de données n'autorise pas ces derniers à afficher ou interroger les données des tables qui se trouvent dans l'ensemble de données contenant les tables interrogées par la vue. Il est recommandé d'attribuer le rôle bigquery.user au niveau du projet à la plupart des collaborateurs d'une entreprise (data scientists, analystes de veille stratégique et analystes de données).

Pour ce tutoriel, vos analystes de données font partie d'un groupe d'utilisateurs nommé data_analysts@example.com. Ce nom de groupe n'est fourni qu'à titre d'exemple. Lorsque vous ajoutez un groupe à un rôle IAM, l'adresse de messagerie et le domaine doivent être associés à un compte Google ou Google Apps actif.

Pour attribuer au groupe d'analystes de données le rôle bigquery.user au niveau du projet :

Console

  1. Ouvrez la page IAM dans la console Google Cloud Platform.

    Ouvrir la page IAM

  2. Cliquez sur Sélectionner un projet.

  3. Sélectionnez votre projet, puis cliquez sur Ouvrir.

  4. Sur la page IAM, cliquez sur Ajouter.

  5. Dans la boîte de dialogue Ajouter des membres :

    • Dans le champ Membres, saisissez le nom du groupe : data_analysts@example.com.
    • Pour le champ Rôles, cliquez sur Sélectionner un rôle et choisissez BigQuery > Utilisateur BigQuery.
    • Cliquez sur Ajouter.

UI classique

  1. Ouvrez la page IAM dans la console Google Cloud Platform.

    Ouvrir la page IAM

  2. Cliquez sur Sélectionner un projet.

  3. Sélectionnez votre projet, puis cliquez sur Ouvrir.

  4. Sur la page IAM, cliquez sur Ajouter.

  5. Dans la boîte de dialogue Ajouter des membres :

    • Dans le champ Membres, saisissez le nom du groupe : data_analysts@example.com.
    • Pour le champ Rôles, cliquez sur Sélectionner un rôle et choisissez BigQuery > Utilisateur BigQuery.
    • Cliquez sur Ajouter.

Ligne de commande

  1. Pour ajouter une liaison unique vers la stratégie IAM du projet, saisissez la commande suivante, en remplaçant [PROJECT_ID] par l'ID de votre projet :

    gcloud projects add-iam-policy-binding [PROJECT_ID] --member group:data_analysts@example.com --role roles/bigquery.user
    
  2. La commande affiche la stratégie mise à jour :

    bindings:
    - members:
      - group:data_analysts@example.com
        role: roles/BigQuery.user
    

Attribuer des contrôles d'accès à l'ensemble de données contenant la vue

Pour pouvoir interroger la vue, vos analystes de données doivent disposer de l'accès READER pour l'ensemble de données qui contient cette vue. Le rôle bigquery.user accorde à vos analystes de données les autorisations nécessaires pour créer des tâches de requête, mais ils ne peuvent interroger la vue que s'ils disposent au minimum de l'accès READER pour l'ensemble de données contenant cette vue.

Pour accorder à vos analystes de données l'accès READER à l'ensemble de données :

Console

  1. Sélectionnez l'ensemble de données shared_views dans Ressources et cliquez sur Partager l'ensemble de données.

  2. Dans le panneau Autorisations d'ensemble de données, cliquez sur Ajouter des membres.

  3. Saisissez data_analysts@example.com dans la zone de texte Nouveaux membres.

  4. Cliquez sur Sélectionner un rôle et sélectionnez Lecteur. Cela correspond au rôle bigquery.dataViewer au niveau de l'ensemble de données.

  5. Cliquez sur Enregistrer, puis sur Terminé.

UI classique

  1. Cliquez sur la flèche du menu déroulant situé à droite de l'ensemble de données shared_views, puis choisissez Partager l'ensemble de données.

  2. Dans la boîte de dialogue Partager l'ensemble de données, cliquez sur le menu déroulant situé à gauche du champ Ajouter des personnes, puis choisissez Group by e-mail.

  3. Saisissez data_analysts@example.com dans la zone de texte.

  4. À droite du champ Ajouter des personnes, vérifiez que l'option Consultation autorisée est sélectionnée. "Consultation autorisée" correspond au rôle bigquery.dataViewer au niveau de l'ensemble de données.

  5. Cliquez sur Ajouter, puis sur Enregistrer les modifications.

Ligne de commande

  1. Lorsque vous appliquez des contrôles d'accès à un ensemble de données à l'aide de l'outil de ligne de commande, les contrôles existants sont écrasés. Commencez par exporter les contrôles d'accès existants vers un fichier JSON à l'aide de la commande show.

    bq --format=json show shared_views >shared_views.json
    
  2. Apportez les modifications requises à la section "access" du fichier JSON en utilisant le rôle READER et le mot clé groupByEmail.

    Exemple :

    {
     "access": [
      {
       "role": "READER",
       "specialGroup": "projectReaders"
      },
      {
       "role": "WRITER",
       "specialGroup": "projectWriters"
      },
      {
       "role": "OWNER",
       "specialGroup": "projectOwners"
      }
      {
       "role": "READER",
       "specialGroup": "allAuthenticatedUsers"
      }
      {
       "role": "READER",
       "domain": "[DOMAIN_NAME]"
      }
      {
       "role": "WRITER",
       "userByEmail": "[USER_EMAIL]"
      }
      {
       "role": "READER",
       "groupByEmail": "data_analysts@example.com"
      }
     ],
    }
    

  3. Une fois les modifications effectuées, utilisez la commande update avec l'indicateur --source pour inclure le fichier JSON.

    bq update --source=shared_views.json shared_views

  4. Pour vérifier les modifications apportées aux contrôles d'accès, utilisez la commande show.

    bq show shared_views

Python

Avant d'essayer cet exemple, suivez la procédure de configuration de Python dans le guide de démarrage rapide de BigQuery à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Python.

# 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

Autoriser la vue à accéder à l'ensemble de données source

Une fois que vous avez créé des contrôles d'accès pour l'ensemble de données contenant la vue, ajoutez la vue en tant que vue autorisée dans l'ensemble de données source. Les données sources seront ainsi accessibles à cette vue, mais pas à votre groupe d'analystes de données.

Pour autoriser la vue à accéder aux données source :

Console

  1. Sélectionnez l'ensemble de données github_source_data dans Ressources et cliquez sur Partager l'ensemble de données.

  2. Dans le panneau Autorisations d'ensemble de données, cliquez sur l'onglet Vues autorisées.

  3. Sous Partager la vue autorisée :

    • Pour le champ Sélectionner un projet, vérifiez que votre projet est sélectionné.
    • Pour le champ Sélectionner un ensemble de données, choisissez shared_views.
    • Pour le champ Sélectionner une vue, saisissez le nom de la vue : github_analyst_view.
    • Cliquez sur OK.

  4. Cliquez sur Ajouter, puis sur OK.

UI classique

  1. Cliquez sur la flèche du menu déroulant situé à droite de l'ensemble de données github_source_data, puis choisissez Partager l'ensemble de données.

  2. Dans la boîte de dialogue Partager l'ensemble de données, cliquez sur le menu déroulant situé à gauche du champ Ajouter des personnes, puis choisissez Vue autorisée.

  3. Cliquez sur Sélectionner une vue.

  4. Dans la boîte de dialogue Sélectionner une vue :

    • Pour le champ Projet, vérifiez que votre projet est sélectionné.
    • Pour le champ Ensemble de données, choisissez shared_views.
    • Dans le champ ID de la table, saisissez le nom de la vue : github_analyst_view.
    • Cliquez sur OK.

  5. Cliquez sur Ajouter, puis sur Enregistrer les modifications.

Ligne de commande

  1. Lorsque vous appliquez des contrôles d'accès à un ensemble de données à l'aide de la CLI, les contrôles existants sont écrasés. Commencez par exporter les contrôles d'accès existants vers un fichier JSON à l'aide de la commande show.

    bq --format=prettyjson show github_source_data >github_source_data.json
    
  2. Ajoutez la vue autorisée à la section "access" du fichier JSON. Remplacez [PROJECT_ID] par l'ID de votre projet.

    Exemple :

    {
     "access": [
      {
       "role": "READER",
       "specialGroup": "projectReaders"
      },
      {
       "view":{
       "datasetId": "shared_views",
       "projectId": "[PROJECT_ID]",
       "tableId": "github_analyst_view"
       }
      },
      ...
     ],
     ...
    }
    

    Une partie du texte du fichier JSON a été omise par souci de concision.

  3. Une fois les modifications effectuées, utilisez la commande update avec l'indicateur --source pour inclure le fichier JSON.

    bq update --source=github_source_data.json github_source_data

  4. Pour vérifier les modifications apportées aux contrôles d'accès, utilisez la commande show.

    bq show github_source_data

Python

Avant d'essayer cet exemple, suivez la procédure de configuration de Python dans le guide de démarrage rapide de BigQuery à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Python.

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

Vérifier la configuration

Une fois la configuration effectuée, un membre du groupe data_analysts peut vérifier celle-ci en interrogeant la vue.

Pour vérifier la configuration :

Console

  1. Demandez à un membre du groupe data_analysts d'accéder à l'interface utilisateur Web de BigQuery dans la console GCP.
    Accéder à l'UI Web de BigQuery

  2. Cliquez sur le bouton Saisir une nouvelle requête.

  3. Copiez et collez la requête suivante dans la zone de texte de l'éditeur de requête.

    #standardSQL
    SELECT
      *
    FROM
      `shared_views.github_analyst_view`
    

UI classique

  1. Demandez à un membre du groupe data_analysts d'accéder à l'interface utilisateur Web de BigQuery.

    Accéder à l'UI Web de BigQuery

  2. Cliquez sur le bouton SAISIR UNE REQUÊTE.

  3. Copiez et collez la requête suivante dans la zone de texte Nouvelle requête.

    #standardSQL
    SELECT
      *
    FROM
      `shared_views.github_analyst_view`
    

Ligne de commande

Utilisez la commande query pour interroger la vue.

bq query --use_legacy_sql=false 'SELECT * FROM `shared_views.github_analyst_view`'

Code source complet

Voici le code source complet du tutoriel à titre de référence.

Python

Avant d'essayer cet exemple, suivez la procédure de configuration de Python dans le guide de démarrage rapide de BigQuery à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery Python.

# Create a source dataset
from google.cloud import bigquery

client = bigquery.Client()
source_dataset_id = 'github_source_data'

source_dataset = bigquery.Dataset(client.dataset(source_dataset_id))
# 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 = bigquery.Dataset(client.dataset(shared_dataset_id))
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

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud Platform :

  1. Dans la console GCP, accédez à la page "Projets".

    Accéder à la page Projets

  2. Dans la liste des projets, sélectionnez celui que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…