Transfer Channel YouTube

Konektor 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 Dukungan
Versi API yang didukung 18 Juni 2018
Frekuensi pengulangan

Setiap hari, sekitar pukul 14.10 UTC

Anda dapat mengonfigurasi waktu pada hari itu.

Jendela refresh

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 tersebut akan 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 pembaruan dipetakan ke kolom API TransferConfig.data_refresh_window_days.

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

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 data dimulai saat Anda membuat transfer. Namun, Anda dapat mengonfigurasi waktu mulai transfer data saat menyiapkan transfer.
  • BigQuery Data Transfer Service tidak mendukung transfer data 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 data channel YouTube jika Anda login sebagai identitas gabungan. Anda hanya dapat membuat transfer channel YouTube saat login menggunakan Akun Google.

Sebelum memulai

Sebelum membuat transfer data Channel YouTube:

Izin yang diperlukan

Untuk membuat transfer data Channel YouTube, Anda memerlukan 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 data 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 data Channel YouTube, Anda memerlukan:

  • Akhiran Tabel: Nama yang mudah digunakan untuk saluran yang Anda berikan saat menyiapkan transfer data. 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 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 data Channel YouTube:

Konsol

  1. Buka halaman Data transfers di konsol Google Cloud.

    Buka Data transfers

  2. Klik Create transfer.

  3. Di halaman Create Transfer:

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

      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 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 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 data Anda.
  4. Klik Simpan.

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 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 transfer data 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 data Channel YouTube bernama My Transfer menggunakan akhiran tabel MT, dan set data target mydataset. Transfer data dibuat 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 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 Anda mengalami masalah saat menyiapkan transfer data, lihat Masalah transfer YouTube di bagian Memecahkan masalah konfigurasi transfer.