Feuilles connectées

Les feuilles connectées vous permettent d'analyser des pétaoctets de données directement dans Sheets. Vous pouvez connecter vos feuilles de calcul à un entrepôt de données BigQuery et effectuer l'analyse à l'aide des outils Sheets familiers tels que les tableaux croisés dynamiques, les graphiques et les formules.

Ce guide s'appuie sur l'ensemble de données public shakespeare pour montrer comment utiliser les feuilles connectées. Le jeu de données contient les informations suivantes:

Champ Type Description
mot STRING Mot unique (où l'espace est le délimiteur) extrait d'un corpus
word_count INTEGER Nombre de fois où ce mot apparaît dans ce corpus
corpus STRING L'œuvre dont ce mot est extrait
corpus_date INTEGER Année de publication de ce corpus

Utiliser une source de données

Ajouter une source de données BigQuery

Pour ajouter une source de données, fournissez une requête AddDataSourceRequest dans la méthode batchUpdate. Le corps de la requête doit spécifier un champ DataSource.

Remplacez <YOUR_PROJECT_ID> ci-dessous par un ID de projet Google Cloud valide.

"addDataSource":{
   "dataSource":{
      "spec":{
         "bigQuery":{
            "projectId":"<YOUR_PROJECT_ID>",
            "tableSpec":{
               "tableProjectId":"bigquery-public-data",
               "datasetId":"samples",
               "tableId":"shakespeare"
            }
         }
      }
   }
}

Une fois la source de données créée, une feuille DATA_SOURCE associée est créée pour fournir un aperçu de 500 lignes au maximum. L'aperçu n'est pas disponible immédiatement. Une exécution est déclenchée de manière asynchrone pour importer des données BigQuery.

AddDataSourceResponse contient les champs suivants:

  • dataSource: la source de données nouvellement créée. Le champ dataSourceId est également renseigné et référencé afin de créer chaque objet DataSource à partir de la source de données.

  • dataExecutionStatus: comme indiqué ci-dessus, il s'agit de l'état d'une exécution qui importe des données BigQuery dans la feuille d'aperçu. Consultez le DataExecutionStatus pour plus d'informations.

Mettre à jour ou supprimer une source de données

Utilisez la méthode batchUpdate et fournissez une requête UpdateDataSourceRequest ou DeleteDataSourceRequest en conséquence.

Utiliser des objets DataSource

Une fois qu'une source de données est ajoutée à la feuille de calcul, un objet de source de données peut être créé à partir de la source de données. Un objet de source de données est un outil Sheets standard tel que des tableaux croisés dynamiques, des graphiques et des formules, mais intégré aux feuilles connectées, pour alimenter vos analyses.

Il existe quatre types d'objets:

  • Table DataSource
  • Tableau croisé dynamique d'une source de données
  • Graphique de source de données
  • Formule de la source de données

Ajouter une table DataSource

Également appelé "Extraire" dans l'éditeur Sheets, l'objet importe un fichier de vidage statique des données de la source de données dans Sheets. Comme pour un tableau croisé dynamique, le tableau est spécifié et ancré dans la cellule supérieure gauche.

Dans cet exemple, nous utilisons la méthode batchUpdate et fournissons une requête updateCells pour créer une table de source de données composée de deux colonnes word et word_count, avec un maximum de 1 000 lignes.

"updateCells":{
   "rows":{
      "values":[
         {
            "dataSourceTable":{
               "dataSourceId":"<YOUR_DATA_SOURCE_ID>",
               "columns":[
                  {
                     "name":"word"
                  },
                  {
                     "name":"word_count"
                  }
               ],
               "rowLimit":{
                  "value":1000
               },
               "columnSelectionType":"SELECTED"
            }
         }
      ]
   },
   "fields":"dataSourceTable"
}

Une fois la table de source de données créée, les données ne sont pas disponibles immédiatement. Dans l'éditeur Sheets, elle s'affiche en tant qu'aperçu. Vous devez actualiser la table de la source de données pour extraire les données BigQuery. Vous pouvez spécifier une RefreshDataSourceRequest dans le même batchUpdate. Pour en savoir plus, consultez la section Actualiser un objet DataSource ci-dessous. Notez que tous les objets de source de données fonctionnent de la même manière.

Une fois l'actualisation terminée (les données BigQuery sont extraites), la table de source de données est renseignée comme suit:

Capture d&#39;écran d&#39;une table de source de données affichant les données de l&#39;ensemble de données shakespeare

Ajouter un tableau croisé dynamique de source de données

Contrairement à un tableau croisé dynamique classique, un tableau croisé dynamique de source de données repose sur une source de données et référence les données par nom de colonne. Cet exemple crée un tableau croisé dynamique indiquant le nombre total de mots par corpus.

"updateCells":{
   "rows":{
      "values":[
         {
            "pivotTable":{
               "dataSourceId":"<YOUR_DATA_SOURCE_ID>",
               "rows":{
                  "dataSourceColumnReference":{
                     "name":"corpus"
                  },
                  "sortOrder":"ASCENDING"
               },
               "values":{
                  "summarizeFunction":"SUM",
                  "dataSourceColumnReference":{
                     "name":"word_count"
                  }
               }
            }
         }
      ]
   },
   "fields":"pivotTable"
}

Une fois les données BigQuery extraites, le tableau croisé dynamique de la source de données est renseigné comme suit:

Capture d&#39;écran d&#39;un tableau croisé dynamique d&#39;une source de données montrant les données de l&#39;ensemble de données Shakespeare

Ajouter un graphique DataSource

Cet exemple crée un graphique de source de données de type COLONNE, indiquant le nombre total de mots par corpus.

"addChart":{
   "chart":{
      "spec":{
         "title":"Corpus by word count",
         "basicChart":{
            "chartType":"COLUMN",
            "domains":[
               {
                  "domain":{
                     "columnReference":{
                        "name":"corpus"
                     }
                  }
               }
            ],
            "series":[
               {
                  "series":{
                     "columnReference":{
                        "name":"word_count"
                     },
                     "aggregateType":"SUM"
                  }
               }
            ]
         }
      },
      "dataSourceChartProperties":{
         "dataSourceId":"<YOUR_DATA_SOURCE_ID>"
      }
   }
}

Une fois les données BigQuery récupérées, le graphique de la source de données s'affiche comme suit:

capture d&#39;écran d&#39;un graphique de source de données montrant les données d&#39;un ensemble de données de Shakespeare

Ajouter une formule de source de données

Cet exemple crée une formule de source de données pour calculer le nombre moyen de mots.

"updateCells":{
   "rows":[
      {
         "values":[
            {
               "userEnteredValue":{
                  "formulaValue":"=AVERAGE(shakespeare!word_count)"
               }
            }
         ]
      }
   ],
   "fields":"userEnteredValue"
}

Une fois les données BigQuery récupérées, la formule de la source de données est renseignée comme suit:

Capture d&#39;écran d&#39;une formule de source de données montrant les données de l&#39;ensemble de données &quot;shakespeare&quot;

Actualiser un objet DataSource

Vous pouvez actualiser un objet de source de données pour extraire les dernières données de BigQuery en fonction des spécifications actuelles de la source de données et des configurations d'objet. Vous pouvez utiliser la méthode batchUpdate, fournir une requête RefreshDataSourceRequest et spécifier un ou plusieurs objets à actualiser via DataSourceObjectReferences.

Notez que vous pouvez à la fois créer des objets de source de données et les actualiser dans une seule requête batchUpdate.

DataExecutionStatus

Lorsque vous créez des sources de données ou actualisez des objets de source de données, une exécution est créée en arrière-plan pour extraire les données de BigQuery et renvoyer une réponse contenant l'état de l'exécution. Si l'exécution démarre correctement, son état est généralement RUNNING.

Le processus étant asynchrone, votre application doit implémenter un modèle d'interrogation pour récupérer périodiquement l'état des objets de source de données à l'aide de spreadsheets.get, jusqu'à ce que l'état stocke l'état SUCCEEDED ou FAILED. Dans la plupart des cas, l'exécution se termine rapidement, mais cela dépend de la complexité de la spécification de votre source de données. Dans tous les cas, l'exécution ne devrait pas prendre plus de 10 minutes.