Transfer Channel YouTube

BigQuery Data Transfer Service untuk YouTube memungkinkan Anda menjadwalkan dan mengelola tugas pemuatan berulang secara otomatis untuk laporan Channel YouTube.

Laporan yang Didukung

BigQuery Data Transfer Service untuk laporan Channel YouTube mendukung opsi pelaporan berikut:

Opsi pelaporan Support
Versi API yang didukung 18 Juni 2018
Jadwal

Setiap hari, sekitar pukul 14.10 UTC

Anda dapat mengonfigurasi waktu pada hari itu.

Frekuensi pemuatan ulang

1 hari terakhir

Tidak dapat dikonfigurasi

Durasi pengisian ulang maksimum

30 hari

Mulai Juli 2018, laporan YouTube yang berisi data historis tersedia selama 30 hari sejak dibuat. (Laporan yang berisi data non-historis tersedia selama 60 hari.) Untuk mengetahui informasi selengkapnya, lihat Data historis di dokumentasi YouTube Reporting API.

Untuk mengetahui informasi mengenai cara laporan Channel YouTube ditransformasi menjadi tabel dan tampilan BigQuery, lihat transformasi laporan Channel YouTube.

Penyerapan data dari transfer Channel YouTube

Saat Anda mentransfer data dari Channel YouTube ke BigQuery, data 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 pada hari yang sama atau menjalankan pengisian ulang tidak akan menghasilkan data duplikat, dan partisi untuk tanggal lain tidak akan terpengaruh.

Batasan

  • Ukuran file maksimum yang didukung untuk setiap laporan adalah 1.710 GB.
  • 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 inkremental selama transfer Pemilik Konten YouTube. Saat Anda menentukan tanggal untuk transfer data, semua data yang tersedia untuk tanggal tersebut akan ditransfer.
  • Anda tidak dapat membuat transfer channel YouTube jika login sebagai identitas gabungan. Anda hanya dapat membuat transfer channel YouTube saat login menggunakan Akun Google.

Sebelum memulai

Sebelum melakukan transfer Channel YouTube:

Izin yang diperlukan

Untuk membuat transfer Channel YouTube, diperlukan beberapa hal berikut:

  • YouTube: Kepemilikan channel YouTube
  • BigQuery: Izin Identity and Access Management (IAM) berikut di BigQuery:

    • bigquery.transfers.update untuk membuat transfer.
    • bigquery.datasets.get dan bigquery.datasets.update pada set data target.
    • Jika ingin menyiapkan notifikasi operasi 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.

Peran IAM bigquery.admin yang telah ditetapkan mencakup semua izin BigQuery yang Anda perlukan untuk membuat transfer Channel YouTube. Untuk mengetahui informasi lebih lanjut tentang peran IAM di BigQuery, lihat Peran dan izin yang telah ditetapkan.

Menyiapkan transfer Channel YouTube

Untuk menyiapkan transfer Channel YouTube, Anda memerlukan:

  • Akhiran Tabel: Nama yang mudah digunakan untuk saluran yang Anda berikan saat menyiapkan transfer. Akhiran ditambahkan ke ID tugas untuk membuat nama tabel, misalnya reportTypeId_suffix. 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.

Jika saat ini Anda menggunakan YouTube Reporting API dan sudah memiliki tugas pelaporan, BigQuery Data Transfer Service akan memuat data laporan Anda. Jika Anda belum memiliki tugas pelaporan, menyiapkan transfer akan otomatis mengaktifkan tugas pelaporan YouTube.

Untuk membuat transfer Channel YouTube:

Konsol

  1. Buka halaman BigQuery di konsol Google Cloud.

    Buka halaman BigQuery

  2. Klik Transfers.

  3. Klik Create Transfer.

  4. Di halaman Melakukan Transfer:

    • Di bagian Jenis sumber, untuk Sumber, pilih Channel YouTube.

      Sumber transfer

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

      Nama transfer

    • Di bagian Schedule options:

      • Untuk Repeat frequency, pilih opsi untuk seberapa sering transfer 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 Detail sumber data:

      • Untuk Akhiran tabel, masukkan akhiran seperti MT.
      • Centang kotak Konfigurasikan tugas untuk mengizinkan BigQuery mengelola tugas pelaporan YouTube bagi Anda. Jika ada laporan YouTube yang saat ini belum ada untuk akun Anda, tugas pelaporan baru akan dibuat untuk mengaktifkannya.

        Detail sumber Channel YouTube

    • (Opsional) Di bagian Opsi notifikasi:

      • 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.
  5. Klik Save.

bq

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

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

Dengan keterangan:

  • project_id adalah project ID Anda.
  • dataset adalah set data target untuk konfigurasi transfer.
  • name adalah nama tampilan untuk konfigurasi transfer. Nama transfer dapat berupa nilai apa pun yang memudahkan Anda mengidentifikasi transfer jika perlu mengubahnya nanti.
  • parameters berisi parameter untuk konfigurasi transfer yang dibuat dalam format JSON. Untuk contoh: --params='{"param":"param_value"}'. Untuk transfer Channel YouTube, Anda harus memberikan parameter table_suffix. Anda dapat memilih untuk menetapkan parameter configure_jobs ke true agar BigQuery Data Transfer Service dapat mengelola tugas pelaporan YouTube untuk Anda. Jika ada laporan YouTube yang saat ini belum ada untuk channel Anda, tugas pelaporan baru akan dibuat untuk mengaktifkannya.
  • data_source adalah sumber data — youtube_channel.

Anda juga dapat memberikan flag --project_id untuk menentukan project tertentu. Jika --project_id tidak ditentukan, project default akan digunakan.

Misalnya, perintah berikut akan membuat transfer Channel YouTube bernama My Transfer menggunakan akhiran tabel MT, dan set data target mydataset. Transfer dilakukan di project default:

bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"table_suffix":"MT","configure_jobs":"true"}' \
--data_source=youtube_channel

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 mengetahui 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 youtube channel transfer config.
public class CreateYoutubeChannelTransfer {

  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 tableSuffix = "_test";
    Map<String, Value> params = new HashMap<>();
    params.put("table_suffix", Value.newBuilder().setStringValue(tableSuffix).build());
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setDestinationDatasetId(datasetId)
            .setDisplayName("Your Youtube Channel Config Name")
            .setDataSourceId("youtube_channel")
            .setParams(Struct.newBuilder().putAllFields(params).build())
            .build();
    createYoutubeChannelTransfer(projectId, transferConfig);
  }

  public static void createYoutubeChannelTransfer(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("Youtube channel transfer created successfully :" + config.getName());
    } catch (ApiException ex) {
      System.out.print("Youtube channel transfer was not created." + ex.toString());
    }
  }
}

Membuat kueri terhadap data

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.

Memecahkan masalah penyiapan transfer Channel YouTube

Jika mengalami masalah saat menyiapkan transfer, lihat Masalah transfer YouTube di bagian Memecahkan masalah konfigurasi transfer.