Trasferimenti dei rapporti Google Play

BigQuery Data Transfer Service per Google Play consente di pianificare e gestire automaticamente i job di caricamento ricorrenti per i dati dei report di Google Play.

Report supportati

BigQuery Data Transfer Service per Google Play supporta le seguenti opzioni di generazione di report mensili:

Report dettagliati

Report aggregati

Per informazioni su come i report di Google Play vengono trasformati in tabelle BigQuery, consulta Trasformazioni dei report di Google Play.

Opzione di segnalazione Assistenza
Versione API supportata

N/D

Pianifica

Ogni giorno, al momento della prima creazione del trasferimento (impostazione predefinita)

Puoi configurare l'ora del giorno.

Finestra di aggiornamento

Ultimi 7 giorni

Non configurabile

Durata massima del backfill

Nessun limite

Sebbene Google Play non abbia limiti noti di conservazione dei dati, BigQuery Data Transfer Service prevede limiti al numero di giorni che possono essere richiesti in un singolo backfill. Per informazioni sui backfill, consulta Configurare un backfill.

Importazione dati da Google Play Transfer

Quando trasferisci dati da Google Play a BigQuery, i dati vengono caricati in tabelle BigQuery partizionate per data. La partizione della tabella in cui vengono caricati i dati corrisponde alla data dell'origine dati. Se pianifichi più trasferimenti per la stessa data, BigQuery Data Transfer Service sovrascrive la partizione per quella data specifica con i dati più recenti. Più trasferimenti nello stesso giorno o backfill in esecuzione non generano dati duplicati e le partizioni per altre date non vengono interessate.

Limitazioni

  • La frequenza minima per cui puoi pianificare un trasferimento di dati è una volta ogni 24 ore. Per impostazione predefinita, un trasferimento inizia nel momento in cui lo crei. Tuttavia, puoi configurare l'ora di inizio del trasferimento quando configuri il trasferimento.
  • BigQuery Data Transfer Service non supporta i trasferimenti incrementali durante un trasferimento da Google Play. Quando specifichi una data per un trasferimento di dati, tutti i dati disponibili per quella data vengono trasferiti.
  • Il report sugli utili viene generato una volta al mese ed è in genere disponibile entro il quinto giorno del mese successivo. Per impostazione predefinita, i trasferimenti di Google Play aggiornano soltanto i dati degli ultimi 7 giorni. Di conseguenza, vengono trasferiti solo i report sugli utili del mese precedente degli ultimi giorni. Per trasferire i dati sulle entrate per l'intero mese, è necessario un backfill manuale per coprire i giorni mancanti.

Prima di iniziare

Prima di creare un trasferimento da Google Play:

  • Verifica di aver completato tutte le azioni necessarie per abilitare BigQuery Data Transfer Service.
  • Crea un set di dati BigQuery per archiviare i dati di Google Play.
  • Trova il bucket Cloud Storage:
    1. In Google Play Console, fai clic su Scarica i report e seleziona Recensioni, Statistiche o Dati finanziari.
    2. Per copiare l'ID del bucket Cloud Storage, fai clic su Copia URI Cloud Storage. L'ID bucket inizia con gs://. Ad esempio, per il report Recensioni, il tuo ID è simile al seguente:
      gs://pubsite_prod_rev_01234567890987654321/reviews
    3. Per il trasferimento da Google Play, devi copiare solo l'ID univoco compreso tra gs:// e /reviews:
      pubsite_prod_rev_01234567890987654321
  • Se intendi configurare le notifiche di esecuzione del trasferimento per Pub/Sub, devi disporre delle autorizzazioni pubsub.topics.setIamPolicy. Le autorizzazioni Pub/Sub non sono necessarie se hai solo configurato le notifiche via email. Per ulteriori informazioni, consulta Notifiche di esecuzione di BigQuery Data Transfer Service.

Autorizzazioni obbligatorie

  • BigQuery: assicurati che la persona che crea il trasferimento disponga delle seguenti autorizzazioni in BigQuery:

    • bigquery.transfers.update autorizzazioni per creare il trasferimento
    • Sia le autorizzazioni bigquery.datasets.get che bigquery.datasets.update per il set di dati di destinazione

    Il ruolo IAM predefinito bigquery.admin include le autorizzazioni bigquery.transfers.update, bigquery.datasets.update e bigquery.datasets.get. Per ulteriori informazioni sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.

  • Google Play: assicurati di disporre delle seguenti autorizzazioni in Google Play:

    Il team di Google Cloud NON può generare o concedere l'accesso ai file di Google Play per tuo conto. Consulta Contattare l'assistenza di Google Play per ricevere aiuto per accedere ai file di Google Play.

Configurare un trasferimento da Google Play

La configurazione di un trasferimento da Google Play richiede:

  • Bucket Cloud Storage. I passaggi per individuare il bucket Cloud Storage sono descritti in Prima di iniziare. Il bucket Cloud Storage inizia con pubsite_prod_rev. Ad esempio: pubsite_prod_rev_01234567890987654321.
  • Suffisso della tabella: un nome facile da usare per tutte le origini dati che vengono caricate nello stesso set di dati. Il suffisso viene utilizzato per impedire la scrittura di trasferimenti separati nelle stesse tabelle. Il suffisso della tabella deve essere univoco in tutti i trasferimenti che caricano i dati nello stesso set di dati e deve essere breve per ridurre al minimo la lunghezza del nome della tabella risultante.

Per configurare un trasferimento di Google Play:

Console

  1. Vai alla pagina BigQuery nella console Google Cloud.

    Vai alla pagina di BigQuery

  2. Fai clic su Trasferimenti.

  3. Fai clic su Crea trasferimento.

  4. Nella pagina Crea trasferimento:

    • Nella sezione Tipo di origine, per Origine, scegli Google Play.

      Origine trasferimento

    • Nella sezione Nome configurazione di trasferimento, per Nome visualizzato, inserisci un nome per il trasferimento, ad esempio My Transfer. Il nome del trasferimento può essere qualsiasi valore che ti consente di identificare facilmente il trasferimento se devi modificarlo in un secondo momento.

      Nome trasferimento

    • Nella sezione Opzioni di pianificazione:

      • In Frequenza di ripetizione, scegli un'opzione per la frequenza di esecuzione del trasferimento. Se selezioni Giorni, fornisci un orario valido nel fuso orario UTC.

        • Ore
        • Giorni
        • On demand
      • Se applicabile, seleziona Inizia ora o Inizia all'ora impostata e specifica una data di inizio e un'ora di esecuzione.

    • Nella sezione Impostazioni destinazione, per Set di dati di destinazione, scegli il set di dati che hai creato per archiviare i dati.

      Trasferisci set di dati

    • Nella sezione Dettagli origine dati:

      • In Bucket Cloud Storage, inserisci l'ID del bucket Cloud Storage.
      • In Suffisso della tabella, inserisci un suffisso come "MT" (per "Il mio trasferimento").

        Dettagli origine Google Play

    • Nel menu Account di servizio, seleziona un account di servizio tra quelli associati al tuo progetto Google Cloud. Puoi associare un account di servizio al trasferimento, anziché utilizzare le tue credenziali utente. Per ulteriori informazioni sull'utilizzo degli account di servizio con trasferimenti di dati, consulta Utilizzare gli account di servizio.

      • Se hai eseguito l'accesso con un'identità federata, è necessario un account di servizio per creare un trasferimento. Se hai eseguito l'accesso con un Account Google, un account di servizio per il trasferimento è facoltativo.
      • L'account di servizio deve disporre delle autorizzazioni richieste.
    • (Facoltativo) Nella sezione Opzioni di notifica:

      • Fai clic sul pulsante di attivazione/disattivazione per abilitare le notifiche via email. Quando abiliti questa opzione, l'amministratore dei trasferimenti riceve una notifica via email quando un'esecuzione del trasferimento non va a buon fine.
      • In Seleziona un argomento Pub/Sub, scegli il nome dell'argomento o fai clic su Crea un argomento. Questa opzione configura le notifiche dell'esecuzione di Pub/Sub per il trasferimento.
  5. Fai clic su Salva.

bq

Inserisci il comando bq mk e fornisci il flag di creazione del trasferimento --transfer_config. Sono richiesti anche i seguenti flag:

  • --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

Dove:

  • project_id è l'ID progetto. Se --project_id non è specificato, viene utilizzato il progetto predefinito.
  • dataset è il set di dati di destinazione per la configurazione di trasferimento.
  • name è il nome visualizzato della configurazione di trasferimento. Il nome del trasferimento può essere qualsiasi valore che ti consenta di identificare il trasferimento se devi modificarlo in un secondo momento.
  • parameters contiene i parametri per la configurazione di trasferimento creata in formato JSON. Ad esempio: --params='{"param":"param_value"}'. Per Google Play, devi fornire i parametri bucket e table_suffix. bucket è il bucket Cloud Storage che contiene i file dei report di Google Play.
  • data_source è l'origine dati: play.
  • service_account_name è il nome dell'account di servizio utilizzato per autenticare il trasferimento. L'account di servizio deve essere di proprietà dello stesso project_id utilizzato per creare il trasferimento e deve disporre di tutte le autorizzazioni richieste.

Ad esempio, il seguente comando crea un trasferimento Google Play denominato My Transfer utilizzando il bucket Cloud Storage pubsite_prod_rev_01234567890987654321 e il set di dati di destinazione mydataset. Il trasferimento viene creato nel progetto predefinito:

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

La prima volta che esegui il comando, riceverai un messaggio simile al seguente:

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

Segui le istruzioni nel messaggio e incolla il codice di autenticazione nella riga di comando.

API

Utilizza il metodo projects.locations.transferConfigs.create e fornisci un'istanza della risorsa TransferConfig.

Java

Prima di provare questo esempio, segui le istruzioni di configurazione di Java disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.

Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.

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());
    }
  }
}

Risolvere i problemi di configurazione di Google Play Transfer

Se hai problemi durante la configurazione del trasferimento, consulta Risoluzione dei problemi di configurazione del trasferimento di BigQuery Data Transfer Service.

Esegui query sui dati

Quando i dati vengono trasferiti in BigQuery, vengono scritti in tabelle partizionate per la fase di importazione. Per ulteriori informazioni, consulta Introduzione alle tabelle partizionate.

Se esegui query direttamente sulle tabelle anziché utilizzare le viste generate automaticamente, devi utilizzare la pseudo-colonna _PARTITIONTIME nella query. Per ulteriori informazioni, consulta la pagina relativa all'esecuzione di query sulle tabelle partizionate.

Prezzi

Per informazioni sui prezzi dei trasferimenti di Google Play, consulta la pagina Prezzi.

Quando i dati vengono trasferiti su BigQuery, vengono applicati i prezzi standard di BigQuery per l'archiviazione e le query.

Passaggi successivi