Transferts Google Play

Le Service de transfert de données BigQuery pour Google Play vous permet de programmer et de gérer automatiquement des jobs de chargement récurrents pour les données de rapport Google Play.

Rapports acceptés

Le service de transfert de données BigQuery pour Google Play accepte les options de création de rapports mensuels suivants :

Rapports détaillés

Rapports agrégés

Pour plus d'informations sur la transformation des rapports Google Play en tables BigQuery, consultez la page Transformation des rapports Google Play.

Option de création de rapports Compatibilité
Version d'API compatible

N/A

Horaires

Tous les jours, à l'heure où le transfert a été créé (par défaut)

Vous pouvez configurer l'heure de la journée.

Fenêtre d'actualisation

7 derniers jours

Non configurable

Durée maximale du remplissage

Aucune limite

Même si aucune restriction connue n'est appliquée à la conservation des données dans Google Play, le service de transfert de données BigQuery limite le nombre de jours couverts par chaque demande de remplissage. Pour en savoir plus sur les remplissages, consultez la section Configurer un remplissage.

Ingestion de données à partir de transferts Google Play

Lorsque vous transférez des données de Google Play vers BigQuery, elles sont chargées dans des tables BigQuery partitionnées par date. La partition de la table dans laquelle les données sont chargées correspond à la date de la source de données. Si vous planifiez plusieurs transferts pour la même date, le service de transfert de données BigQuery remplace la partition de cette date spécifique par les données les plus récentes. Plusieurs transferts le même jour n'entraînent pas de données en double, et les partitions des autres dates ne sont pas affectées.

Limites

  • La fréquence minimale à laquelle vous pouvez planifier un transfert de données est une fois toutes les 24 heures. Par défaut, un transfert commence au moment où vous créez le transfert. Toutefois, vous pouvez configurer l'heure de début du transfert au moment de configurer votre transfert.
  • Le service de transfert de données de BigQuery n'est pas compatible avec les transferts incrémentiels lors d'un transfert Google Play. Lorsque vous spécifiez une date pour un transfert de données, toutes les données disponibles pour cette date sont transférées.
  • Ce rapport est généré une fois par mois et est généralement disponible au plus tard le 5 du mois suivant. Par défaut, les transferts Google Play n'actualisent que les données des sept derniers jours. Par conséquent, seuls les rapports sur les revenus des derniers jours du mois précédent sont transférés. Pour transférer les données sur les revenus pour le mois entier, un remplissage manuel est nécessaire pour couvrir les jours manquants.

Avant de commencer

Avant de créer un transfert Google Play, procédez comme suit :

  • Vérifiez que vous avez effectué toutes les actions requises pour activer le service de transfert de données BigQuery.
  • Créez un ensemble de données BigQuery pour stocker les données Google Play.
  • Recherchez votre bucket Cloud Storage :
    1. Dans la console Google Play, cliquez sur Télécharger les rapports et sélectionnez Avis, Statistiques ou Finance.
    2. Pour copier l'ID de votre bucket Cloud Storage, cliquez sur  Copier l'URI Cloud Storage. Votre ID de bucket commence par gs://. Par exemple, pour le rapport sur les avis, votre ID ressemble à ce qui suit :
      gs://pubsite_prod_rev_01234567890987654321/reviews
    3. Pour le transfert Google Play, vous ne devez copier que l'ID unique qui se trouve entre gs:// et /reviews :
      pubsite_prod_rev_01234567890987654321
  • Si vous avez l'intention de configurer des notifications d'exécution de transfert pour Pub/Sub, vous devez disposer des autorisations pubsub.topics.setIamPolicy. Les autorisations Pub/Sub ne sont pas nécessaires si vous ne configurez que des notifications par e-mail. Pour plus d'informations, consultez la page Notifications d'exécution du service de transfert de données BigQuery.

Autorisations requises

  • BigQuery : assurez-vous que la personne qui crée le transfert dispose des autorisations suivantes dans BigQuery :

    • Autorisations bigquery.transfers.update pour créer le transfert
    • Autorisations bigquery.datasets.get et bigquery.datasets.update sur l'ensemble de données cible

    Le rôle IAM prédéfini bigquery.admin inclut les autorisations bigquery.transfers.update, bigquery.datasets.update et bigquery.datasets.get. Pour en savoir plus sur les rôles IAM associés au service de transfert de données BigQuery, consultez la page Contrôle des accès.

  • Google Play : assurez-vous que vous disposez des autorisations suivantes dans Google Play :

    L'équipe Google Cloud ne peut pas générer ni attribuer de droits d'accès aux fichiers Google Play en votre nom. Pour obtenir de l'aide concernant l'accès aux fichiers Google Play, consultez la page Contacter l'assistance Google Play.

Configurer un transfert Google Play

La configuration d'un transfert Google Play requiert les éléments suivants :

  • Bucket Cloud Storage : les étapes vous permettant de localiser votre bucket Cloud Storage sont décrites dans la section Avant de commencer. Votre bucket Cloud Storage commence par pubsite_prod_rev. Exemple : pubsite_prod_rev_01234567890987654321.
  • Suffixe de table : nom convivial de toutes les sources de données chargées dans le même ensemble de données. Il empêche que des transferts séparés écrivent sur des tables identiques. Le suffixe de table doit être unique pour tous les transferts qui chargent des données dans le même ensemble de données. Il doit par ailleurs être court de façon à réduire la longueur du nom de table obtenu.

Pour configurer un transfert Google Play, procédez comme indiqué ci-dessous.

Console

  1. Accédez à la page "BigQuery" de la console Google Cloud.

    Accéder à la page "BigQuery"

  2. Cliquez sur Transferts.

  3. Cliquez sur Créer un transfert.

  4. Sur la page Créer un transfert :

    • Dans le champ Source de la section Source type (Type de source), choisissez Google Play.

      Source de transfert

    • Dans la section Transfer config name (Nom de la configuration de transfert), sousDisplay name (Nom à afficher), saisissez un nom pour le transfert, tel que My Transfer. Ce nom peut correspondre à n'importe quelle valeur permettant d'identifier facilement le transfert si vous devez le modifier ultérieurement.

      Nom du transfert

    • Dans la section Schedule options (Options de programmation) :

      • Pour le champ Fréquence de répétition, choisissez la fréquence d'exécution du transfert : Si vous sélectionnez Jours, indiquez une heure valide au format UTC.

        • Heures
        • Jours
        • À la demande
      • Le cas échéant, sélectionnez Commencer ou Démarrer à l'heure définie, puis indiquez une date de début et une heure d'exécution.

    • Dans la section Destination settings (Paramètres de destination), pour le champ Destination dataset (Ensemble de données de destination), choisissez l'ensemble de données que vous avez créé pour stocker vos données.

      Transférer un ensemble de données

    • Dans la section Data source details (Détails de la source de données) :

      • Dans le champ Cloud Storage bucket (Bucket Cloud Storage), saisissez l'ID de votre bucket Cloud Storage.
      • Pour le paramètre Table Suffix (Suffixe de table), indiquez un suffixe tel que "MT" (pour "Mon transfert").

        Détails de la source Google Play

    • Dans le menu Compte de service, sélectionnez un compte de service parmi ceux associés à votre projet Google Cloud. Vous pouvez associer un compte de service à votre transfert au lieu d'utiliser vos identifiants utilisateur. Pour en savoir plus sur l'utilisation des comptes de service avec des transferts de données, consultez la page Utiliser des comptes de service.

      • Si vous vous êtes connecté avec une identité fédérée, vous devez disposer d'un compte de service pour créer un transfert. Si vous vous êtes connecté avec un compte Google, un compte de service pour le transfert est facultatif.
      • Le compte de service doit disposer des autorisations requises.
    • (Facultatif) Dans la section Notification options (Options de notification) :

      • Cliquez sur le bouton pour activer les notifications par e-mail. Lorsque vous activez cette option, l'administrateur de transfert reçoit une notification par e-mail en cas d'échec de l'exécution du transfert.
      • Pour le champ Select a Pub/Sub topic (Sélectionner un sujet Pub/Sub), choisissez le nom de votre sujet ou cliquez sur Create a topic (Créer un sujet). Cette option configure les notifications d'exécution Cloud Pub/Sub pour votre transfert.
  5. Cliquez sur Save (Enregistrer).

bq

Saisissez la commande bq mk, puis spécifiez l'indicateur de création de transfert --transfer_config. Les paramètres suivants sont également requis :

  • --target_dataset
  • --display_name
  • --params
  • --data_source
bq mk \
--transfer_config \
--project_id=project_id \
--target_dataset=dataset \
--display_name=name \
--params='parameters' \
--data_source=data_source
--service_account_name=service_account_name

Où :

  • project_id est l'ID de votre projet. Si --project_id n'est pas spécifié, le projet par défaut est utilisé.
  • dataset est l'ensemble de données cible de la configuration de transfert.
  • name est le nom à afficher pour la configuration de transfert. Ce nom peut correspondre à toute valeur permettant d'identifier le transfert si vous devez le modifier ultérieurement.
  • parameters contient les paramètres de la configuration de transfert créée au format JSON. Exemple : --params='{"param":"param_value"}'. Pour Google Play, vous devez fournir les paramètres bucket et table_suffix. bucket correspond au bucket Cloud Storage contenant vos fichiers de rapport Play.
  • data_source correspond à la source de données : play.
  • service_account_name est le nom du compte de service utilisé pour authentifier le transfert. Le compte de service doit appartenir au même project_id que celui utilisé pour créer le transfert et disposer de toutes les autorisations requises.

Par exemple, la commande suivante crée un transfert Google Play nommé My Transfer, utilisant le bucket Cloud Storage pubsite_prod_rev_01234567890987654321 et l'ensemble de données cible mydataset. Le transfert est créé dans le projet par défaut.

bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"bucket":"pubsite_prod_rev_01234567890987654321","table_suffix":"MT"}' \
--data_source=play

La première fois que vous exécutez la commande, vous recevez un message semblable au suivant :

[URL omitted] Please copy and paste the above URL into your web browser and follow the instructions to retrieve an authentication code.

Suivez les instructions du message et collez le code d'authentification sur la ligne de commande.

API

Utilisez la méthode projects.locations.transferConfigs.create et fournissez une instance de la ressource TransferConfig.

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.CreateTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

// Sample to create a play transfer config.
public class CreatePlayTransfer {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    String datasetId = "MY_DATASET_ID";
    String bucket = "gs://cloud-sample-data";
    String tableSuffix = "_test";
    Map<String, Value> params = new HashMap<>();
    params.put("bucket", Value.newBuilder().setStringValue(bucket).build());
    params.put("table_suffix", Value.newBuilder().setStringValue(tableSuffix).build());
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setDestinationDatasetId(datasetId)
            .setDisplayName("Your Play Config Name")
            .setDataSourceId("play")
            .setParams(Struct.newBuilder().putAllFields(params).build())
            .build();
    createPlayTransfer(projectId, transferConfig);
  }

  public static void createPlayTransfer(String projectId, TransferConfig transferConfig)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      CreateTransferConfigRequest request =
          CreateTransferConfigRequest.newBuilder()
              .setParent(parent.toString())
              .setTransferConfig(transferConfig)
              .build();
      TransferConfig config = client.createTransferConfig(request);
      System.out.println("play transfer created successfully :" + config.getName());
    } catch (ApiException ex) {
      System.out.print("play transfer was not created." + ex.toString());
    }
  }
}

Résoudre les problèmes liés à la configuration d'un transfert Google Play

Si vous ne parvenez pas à configurer un transfert, consultez la page sur la résolution des problèmes rencontrés lors la configuration des transferts avec le service de transfert de données BigQuery.

Interroger les données

Lorsque les données sont transférées vers BigQuery, elles sont écrites dans des tables partitionnées avec date d'ingestion. Pour plus d'informations, consultez la page Présentation des tables partitionnées.

Si vous interrogez directement les tables au lieu d'utiliser les vues générées automatiquement, vous devez utiliser la pseudo-colonne _PARTITIONTIME dans votre requête. Pour en savoir plus, consultez la page Interroger des tables partitionnées.

Tarifs

Pour en savoir plus sur les tarifs des transferts Google Play, consultez la page Tarifs.

Une fois les données transférées vers BigQuery, les tarifs standards pour le stockage et les requêtes BigQuery s'appliquent.

Étape suivante