Transferências do Google Play

Com o serviço de transferências de dados do BigQuery para Google Play, é possível programar e gerenciar automaticamente jobs de carregamento recorrentes para dados de relatórios do Google Play.

Relatórios compatíveis

Atualmente, o serviço de transferência de dados do BigQuery para Google Play é compatível com as seguintes opções de relatórios mensais:

Relatórios detalhados

Relatórios agregados

Para informações sobre como os relatórios do Google Play são transformados em tabelas do BigQuery, consulte Transformações de relatórios do Google Play.

Opção de relatório Suporte
Versão da API compatível

N/D

Programação

Diariamente, no horário em que a transferência foi criada pela primeira vez (padrão)

Você pode configurar a hora do dia.

Janela de atualização

Últimos 7 dias

Não configurável

Duração máxima do preenchimento

Sem limite

O Google Play não tem limites conhecidos de retenção de dados, mas o serviço de transferência de dados do BigQuery tem limites em relação a quantos dias podem ser solicitados em um único preenchimento. Para informações sobre preenchimentos, consulte Configurar um preenchimento.

Antes de começar

Antes de criar uma transferência do Google Play, confira estas informações:

  • Verifique se você realizou todas as ações necessárias para ativar o serviço de transferência de dados do BigQuery.
  • Crie um conjunto de dados do BigQuery para armazenar os dados do Google Play.
  • Localize seu bucket do Cloud Storage:
    • No Google Play Console, selecione qualquer relatório, como "Resenhas". Você encontrará o ID do seu bucket do Cloud Storage perto da parte inferior da página. Seu ID de bucket começa com gs://. Por exemplo, para o relatório "Resenhas", você verá:
      gs://pubsite_prod_rev_01234567890987654321/reviews
      Para configurar a transferência, você copiará somente o ID exclusivo que estiver entre gs:// e /reviews:
      pubsite_prod_rev_01234567890987654321
  • Se você pretende configurar notificações de execução de transferência do Pub/Sub, é preciso ter permissões pubsub.topics.setIamPolicy. As permissões do Pub/Sub não serão necessárias se você configurar notificações por e-mail. Para mais informações, consulte Notificações de execução do serviço de transferência de dados do BigQuery.

Permissões exigidas

  • BigQuery: verifique se a pessoa que está criando a transferência tem as permissões a seguir no BigQuery:

    • Permissões bigquery.transfers.update para criar a transferência
    • Permissões bigquery.datasets.get e bigquery.datasets.update no conjunto de dados de destino

    O papel predefinido do IAM bigquery.admin inclui as permissões bigquery.transfers.update, bigquery.datasets.update e bigquery.datasets.get. Para mais informações sobre os papéis do IAM no serviço de transferência de dados do BigQuery, consulte a Referência do controle de acesso.

  • Google Play: verifique se você tem as seguintes permissões no Google Play:

    A equipe do Google Cloud NÃO gera nem concede acesso aos arquivos do Google Play em seu nome. Se você precisar de ajuda para acessá-los, consulte Entre em contato com o suporte do Google Play.

Como configurar uma transferência do Google Play

A configuração de uma transferência do Google Play requer os itens a seguir:

  • bucket do Cloud Storage: As etapas para localizar seu bucket do Cloud Storage são descritas em Antes de começar. O bucket do Cloud Storage começa com pubsite_prod_rev. Por exemplo: pubsite_prod_rev_01234567890987654321.
  • Sufixo da tabela: um nome fácil para todas as origens de dados que são carregadas no mesmo conjunto de dados. O sufixo é usado para evitar que transferências separadas gravem nas mesmas tabelas. O sufixo da tabela precisa ser único em todas as transferências que carregam dados para o mesmo conjunto de dados. Além disso, o sufixo precisa ser curto para reduzir o comprimento do nome de tabela resultante.

Etapas para configurar uma transferência do Google Play:

Console

  1. Acesse a página do BigQuery no Console do Cloud.

    Acessar a página do BigQuery

  2. Clique em Transferências.

  3. Clique em Criar transferência.

  4. Na página Criar transferência:

    • Na seção Tipo de origem, em Origem, escolha Google Play.

      Origem da transferência

    • No campo Nome da configuração de transferência da seção Nome de exibição, insira um nome para a transferência, como My Transfer. Esse nome pode ter qualquer valor que identifique facilmente a transferência, caso seja necessário modificá-la futuramente.

      Nome da transferência

    • Na seção Opções de programação, não altere o valor padrão de Programação (Começar agora). Se preferir, clique em Começar no horário definido.

      • Em Repetições, escolha uma opção para a frequência de execução da transferência:
        • Diário (padrão)
        • Semanal
        • Mensal
        • Personalizada
        • Sob demanda
      • Em Data e hora de início, insira a data e a hora para iniciar a transferência. Se você escolher Iniciar agora, essa opção ficará desativada.

        Programação da transferência

    • Na seção Configurações de destino, em Conjunto de dados de destino, escolha o conjunto criado para armazenar seus dados.

      Conjunto de dados da transferência

    • Na seção Detalhes da origem de dados:

      • Em bucket do Cloud Storage, insira o código do bucket.
      • Em Sufixo da tabela, insira um sufixo como "MT" (para "Minha Transferência").

        Detalhes de origem do Google Play

    • Opcional: na seção Opções de notificação:

      • Clique no botão para ativar as notificações por e-mail. Quando você ativa essa opção, o administrador de transferência recebe uma notificação por e-mail se uma execução de transferência falhar.
      • Em Selecionar um tópico do Pub/Sub, escolha o nome do tópico ou clique em Criar um tópico. Essa opção configura notificações de execução do Pub/Sub da sua transferência.
  5. Clique em Salvar.

bq

Insira o comando bq mk e forneça a sinalização de execução da transferência --transfer_config. As sinalizações a seguir também são obrigatórias:

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

Em que:

  • project_id é o ID do projeto. Se --project_id não for especificado, o projeto padrão será usado.
  • dataset é o conjunto de dados de destino na configuração da transferência:
  • name é o nome de exibição da configuração de transferência. Esse nome pode ser qualquer valor que identifique facilmente a transferência, caso seja necessário modificá-la futuramente.
  • parameters contém os parâmetros da configuração da transferência criada no formato JSON. Por exemplo, --params='{"param":"param_value"}'. Para o Google Play, forneça os parâmetros bucket e table_suffix. bucket é o bucket do Cloud Storage que contém os arquivos de relatório do Google Play.
  • data_source é a fonte de dados: play.

Por exemplo, o comando a seguir cria uma transferência do Google Play chamada My Transfer usando o bucket do Cloud Storage pubsite_prod_rev_01234567890987654321 e o conjunto de dados de destino mydataset. A transferência é criada no projeto padrão:

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

Ao executar o comando pela primeira vez, você receberá uma mensagem como esta:

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

Siga as instruções na mensagem e cole o código de autenticação na linha de comando.

API

Use o método projects.locations.transferConfigs.create e forneça uma instância do recurso TransferConfig.

Java

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

Solução de problemas na configuração de transferência do Google Play

Se você tiver problemas ao configurar a transferência, consulte Solução de problemas de configuração da transferência do serviço de transferência de dados do BigQuery.

Como consultar dados

Quando os dados são transferidos para o BigQuery, eles são gravados em tabelas particionadas por tempo de processamento. Para mais informações, consulte Introdução às tabelas particionadas.

Use a pseudocoluna _PARTITIONTIME para consultar suas tabelas diretamente em vez de usar visualizações geradas automaticamente. Para mais informações, veja Como consultar tabelas particionadas.

Preços

Para informações sobre os preços de transferências do Google Play, consulte a página Preços.

Assim que os dados são transferidos para o BigQuery, são aplicados os preços padrão de armazenamento e consulta do BigQuery.

A seguir