Transfer Google Play

Konektor BigQuery Data Transfer Service untuk Google Play memungkinkan Anda menjadwalkan dan mengelola tugas pemuatan berulang secara otomatis untuk data pelaporan Google Play.

Laporan yang Didukung

BigQuery Data Transfer Service untuk Google Play mendukung opsi pelaporan bulanan berikut:

Laporan terperinci

Laporan gabungan

Untuk mengetahui informasi tentang cara laporan Google Play diubah menjadi tabel BigQuery, lihat Transformasi laporan Google Play.

Opsi pelaporan Dukungan
Versi API yang didukung

T/A

Frekuensi pengulangan

Harian, pada saat transfer data pertama kali dibuat (default)

Anda dapat mengonfigurasi waktu pada hari itu.

Jendela refresh

7 hari terakhir

Tidak dapat dikonfigurasi

Durasi pengisian ulang maksimum

Tak terbatas

Meskipun Google Play tidak memiliki batas retensi data yang diketahui, BigQuery Data Transfer Service memiliki batasan jumlah hari yang dapat diminta dalam satu pengisian ulang. Untuk informasi tentang pengisian ulang, lihat Memicu transfer secara manual.

Penyerapan data dari transfer Google Play

Saat Anda mentransfer data dari Google Play ke BigQuery, data tersebut dimuat ke dalam tabel BigQuery yang dipartisi berdasarkan tanggal. Partisi tabel tempat data dimuat sesuai dengan tanggal dari sumber data. Jika Anda menjadwalkan beberapa transfer untuk tanggal yang sama, BigQuery Data Transfer Service akan menimpa partisi untuk tanggal tertentu tersebut dengan data terbaru. Beberapa transfer dalam satu hari atau menjalankan pengisian ulang tidak akan menghasilkan data duplikat, dan partisi untuk tanggal lain tidak akan terpengaruh.

Memuat ulang jendela

Periode refresh adalah jumlah hari yang diperlukan transfer data untuk mengambil data saat transfer data terjadi. Misalnya, jika periode pembaruan adalah tiga hari dan transfer harian terjadi, BigQuery Data Transfer Service akan mengambil semua data dari tabel sumber Anda selama tiga hari terakhir. Dalam contoh ini, saat transfer harian terjadi, BigQuery Data Transfer Service akan membuat partisi tabel tujuan BigQuery baru dengan salinan data tabel sumber Anda dari hari ini, lalu otomatis memicu pengisian ulang untuk memperbarui partisi tabel tujuan BigQuery dengan data tabel sumber Anda dari dua hari terakhir. Proses pengisian ulang yang dipicu secara otomatis akan menimpa atau memperbarui tabel tujuan BigQuery secara inkremental, bergantung pada apakah update inkremental didukung di konektor BigQuery Data Transfer Service atau tidak.

Saat Anda menjalankan transfer data untuk pertama kalinya, transfer data akan mengambil semua data sumber yang tersedia dalam periode refresh. Misalnya, jika periode pembaruan adalah tiga hari dan Anda menjalankan transfer data untuk pertama kalinya, BigQuery Data Transfer Service akan mengambil semua data sumber dalam tiga hari.

Periode refresh dipetakan ke kolom API TransferConfig.data_refresh_window_days.

Untuk mengambil data di luar periode refresh, seperti data historis, atau untuk memulihkan data dari gangguan atau kesenjangan transfer, Anda dapat memulai atau menjadwalkan operasi pengisian ulang.

Batasan

  • Frekuensi minimum yang dapat dijadwalkan untuk transfer data adalah sekali setiap 24 jam. Secara default, transfer dimulai saat Anda membuat transfer. Namun, Anda dapat mengonfigurasi waktu mulai transfer saat menyiapkan transfer.
  • BigQuery Data Transfer Service tidak mendukung transfer data inkremental selama transfer Google Play. Saat Anda menentukan tanggal untuk transfer data, semua data yang tersedia untuk tanggal tersebut akan ditransfer.

Sebelum memulai

Sebelum membuat transfer data Google Play:

  • Pastikan Anda telah menyelesaikan semua tindakan yang diperlukan untuk mengaktifkan BigQuery Data Transfer Service.
  • Buat set data BigQuery untuk menyimpan data Google Play.
  • Temukan bucket Cloud Storage Anda:
    1. Di Konsol Google Play, klik Download reports, lalu pilih Reviews, Statistics, atau Financial.
    2. Untuk menyalin ID bucket Cloud Storage Anda, klik Copy Cloud Storage URI. ID bucket Anda dimulai dengan gs://. Misalnya, untuk laporan ulasan, ID Anda mirip dengan ID berikut:
      gs://pubsite_prod_rev_01234567890987654321/reviews
    3. Untuk transfer data Google Play, Anda hanya perlu menyalin ID unik yang berasal antara gs:// dan /reviews:
      pubsite_prod_rev_01234567890987654321
  • Jika ingin menyiapkan notifikasi proses transfer untuk Pub/Sub, Anda harus memiliki izin pubsub.topics.setIamPolicy. Izin Pub/Sub tidak diperlukan jika Anda baru saja menyiapkan notifikasi email. Untuk mengetahui informasi selengkapnya, lihat Notifikasi operasi BigQuery Data Transfer Service.

Izin yang diperlukan

  • BigQuery: Pastikan orang yang membuat transfer data memiliki izin berikut di BigQuery:

    • Izin bigquery.transfers.update untuk membuat transfer data
    • Izin bigquery.datasets.get dan bigquery.datasets.update pada set data target

    Peran IAM bigquery.admin yang telah ditetapkan mencakup izin bigquery.transfers.update, bigquery.datasets.update, dan bigquery.datasets.get. Untuk mengetahui informasi lebih lanjut tentang peran IAM dalam BigQuery Data Transfer Service, lihat Kontrol akses.

  • Google Play: Pastikan Anda memiliki izin berikut di Google Play:

    Tim Google Cloud TIDAK memiliki kemampuan untuk membuat atau memberikan akses ke file Google Play atas nama Anda. Lihat Menghubungi dukungan Google Play untuk mendapatkan bantuan dalam mengakses file Google Play.

Menyiapkan transfer Google Play

Penyiapan transfer data Google Play memerlukan:

  • Bucket Cloud Storage. Langkah-langkah untuk menemukan bucket Cloud Storage dijelaskan di bagian Sebelum memulai. Bucket Cloud Storage Anda dimulai dengan pubsite_prod_rev. Contoh: pubsite_prod_rev_01234567890987654321.
  • Akhiran tabel: Nama yang mudah digunakan untuk semua sumber data yang dimuat ke dalam set data yang sama. Akhiran digunakan untuk mencegah transfer terpisah agar tidak menulis ke tabel yang sama. Akhiran tabel harus unik di semua transfer yang memuat data ke dalam set data yang sama, dan akhiran harus pendek untuk meminimalkan panjang nama tabel yang dihasilkan.

Untuk menyiapkan transfer data Google Play:

Konsol

  1. Buka halaman Data transfers di konsol Google Cloud.

    Buka Data transfers

  2. Klik Create transfer.

  3. Di halaman Create Transfer:

    • Di bagian Source type, untuk Source, pilih Google Play.

      Sumber transfer

    • Di bagian Transfer config name, untuk Display name, masukkan nama untuk transfer data, seperti My Transfer. Nama transfer dapat berupa nilai apa pun yang memungkinkan Anda mengidentifikasi transfer jika perlu mengubahnya nanti.

      Nama transfer

    • Di bagian Schedule options:

      • Untuk Repeat frequency, pilih opsi untuk seberapa sering transfer data dijalankan. Jika Anda memilih Days, berikan waktu yang valid dalam UTC.

        • Jam
        • Hari
        • Sesuai permintaan
      • Jika berlaku, pilih Start now atau Start at set time dan masukkan tanggal mulai dan waktu proses.

    • Di bagian Destination settings, untuk Destination dataset, pilih set data yang Anda buat untuk menyimpan data.

      Mentransfer set data

    • Di bagian Data source details:

      • Untuk Cloud Storage bucket, masukkan ID untuk bucket Cloud Storage Anda.
      • Untuk Table suffix, masukkan akhiran seperti 'MT' (untuk 'My Transfer').

        Detail sumber Google Play

    • Di menu Service Account, pilih service account dari akun layanan yang terkait dengan project Google Cloud Anda. Anda dapat mengaitkan akun layanan dengan transfer data, bukan menggunakan kredensial pengguna. Untuk mengetahui informasi selengkapnya tentang cara menggunakan akun layanan dengan transfer data, lihat Menggunakan akun layanan.

    • (Opsional) Di bagian Notification options:

      • Klik tombol untuk mengaktifkan notifikasi email. Saat Anda mengaktifkan opsi ini, administrator transfer akan menerima notifikasi email saat proses transfer gagal.
      • Untuk Select a Pub/Sub topic, pilih nama topik atau klik Create a topic. Opsi ini mengonfigurasi notifikasi operasi Pub/Sub untuk transfer Anda.
  4. Klik Simpan.

bq

Masukkan perintah bq mk dan berikan flag pembuatan transfer — --transfer_config. Flag berikut juga diperlukan:

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

Dengan keterangan:

  • project_id adalah project ID Anda. Jika --project_id tidak ditentukan, project default akan digunakan.
  • dataset adalah set data target untuk konfigurasi transfer.
  • name adalah nama tampilan untuk konfigurasi transfer. Nama transfer data dapat berupa nilai apa pun yang memungkinkan Anda mengidentifikasi transfer jika perlu mengubahnya nanti.
  • parameters berisi parameter untuk konfigurasi transfer yang dibuat dalam format JSON. Contoh: --params='{"param":"param_value"}'. Untuk Google Play, Anda harus menyediakan parameter bucket dan table_suffix. bucket adalah bucket Cloud Storage yang berisi file laporan Play Anda.
  • data_source adalah sumber data: play.
  • service_account_name adalah nama akun layanan yang digunakan untuk mengautentikasi transfer data Anda. Akun layanan harus dimiliki oleh project_id yang sama yang digunakan untuk membuat transfer dan harus memiliki semua izin yang diperlukan.

Misalnya, perintah berikut akan membuat transfer data Google Play bernama My Transfer menggunakan bucket Cloud Storage pubsite_prod_rev_01234567890987654321 dan set data target mydataset. Transfer data dibuat di project default:

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

Saat pertama kali menjalankan perintah, Anda akan menerima pesan berikut:

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

Ikuti petunjuk dalam pesan, lalu tempel kode autentikasi pada command line.

API

Gunakan metode projects.locations.transferConfigs.create dan berikan instance resource TransferConfig.

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

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

Memecahkan masalah penyiapan transfer Google Play

Jika Anda mengalami masalah saat menyiapkan transfer data, lihat Memecahkan masalah penyiapan transfer BigQuery Data Transfer Service.

Membuat kueri data Anda

Saat data Anda ditransfer ke BigQuery, data tersebut akan ditulis ke tabel berpartisi berdasarkan waktu penyerapan. Untuk informasi selengkapnya, lihat Pengantar tabel berpartisi.

Jika membuat kueri tabel secara langsung, bukan menggunakan tabel virtual yang dihasilkan secara otomatis, Anda harus menggunakan kolom semu _PARTITIONTIME dalam kueri. Untuk mengetahui informasi selengkapnya, lihat Membuat kueri tabel berpartisi.

Harga

Untuk mengetahui informasi tentang harga transfer data Google Play, lihat halaman Harga.

Setelah data ditransfer ke BigQuery, harga standar penyimpanan dan kueri berlaku.

Langkah berikutnya