Memuat data Channel YouTube ke BigQuery

Anda dapat memuat data dari Channel YouTube ke BigQuery menggunakan BigQuery Data Transfer Service untuk konektor Channel YouTube. Dengan BigQuery Data Transfer Service, Anda dapat menjadwalkan tugas transfer berulang yang menambahkan data terbaru dari Channel YouTube ke BigQuery.

Ringkasan konektor

BigQuery Data Transfer Service untuk konektor Channel YouTube mendukung opsi berikut untuk transfer data Anda.

Opsi transfer data Dukungan
Laporan yang didukung Konektor Channel YouTube mendukung transfer data dari Laporan channel.

Konektor Channel YouTube mendukung versi API 18 Juni 2018.

Untuk mengetahui informasi tentang cara laporan Channel YouTube diubah menjadi tabel dan tampilan BigQuery, lihat Transformasi laporan Channel YouTube.

Frekuensi pengulangan Konektor Channel YouTube mendukung transfer data harian.

Secara default, transfer data dijadwalkan pada saat transfer data dibuat. Anda dapat mengonfigurasi waktu transfer data saat menyiapkan transfer data.
Frekuensi pemuatan ulang Konektor Channel YouTube mengambil data Channel YouTube dari maksimal 1 hari pada saat transfer data dijalankan.

Untuk mengetahui informasi selengkapnya, lihat Periode refresh.
Ketersediaan data isi ulang Selama setiap proses transfer terjadwal, konektor Channel YouTube akan otomatis mengisi ulang laporan yang baru dibuat atau diperbarui dari hingga 60 hari sebelum tanggal proses transfer. Untuk mengetahui informasi selengkapnya, lihat Pengisian ulang otomatis.

Anda juga dapat menjalankan pengisian ulang data untuk mengambil data secara manual di luar transfer data terjadwal. Anda dapat mengambil data sejauh yang diizinkan oleh kebijakan retensi data di sumber data Anda.

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.

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 di hari yang sama atau menjalankan pengisian ulang tidak akan menghasilkan data duplikat, dan partisi untuk tanggal lain tidak akan terpengaruh.

Periode pemuatan ulang

Periode refresh adalah jumlah hari yang digunakan 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 dari 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 secara 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 mengupdate tabel tujuan BigQuery Anda secara inkremental, tergantung 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 pemuatan ulang. Misalnya, jika jendela refresh adalah tiga hari dan Anda menjalankan transfer data untuk pertama kalinya, BigQuery Data Transfer Service akan mengambil semua data sumber dalam waktu tiga hari.

Konektor ini otomatis mengisi ulang laporan yang tertunda atau diperbarui dari 60 hari terakhir. Untuk mengambil data lain di luar periode pemuatan ulang, seperti data historis, atau untuk memulihkan data dari gangguan atau kesenjangan transfer, Anda dapat memulai atau menjadwalkan operasi pengisian ulang secara manual.

Pengisian ulang otomatis

Jika laporan Channel YouTube tertunda atau dibuat ulang untuk tanggal sebelumnya, BigQuery Data Transfer Service akan otomatis mengisi ulang laporan tersebut. Selama setiap proses transfer terjadwal, BigQuery Data Transfer Service akan memeriksa laporan yang mencakup tanggal dalam 60 hari terakhir dan dibuat setelah proses transfer terjadwal sebelumnya. Untuk setiap tanggal dengan laporan yang baru tersedia, BigQuery Data Transfer Service akan otomatis menjadwalkan pengisian ulang transfer untuk memuat data yang diperbarui ke partisi tabel yang sesuai. Anda tidak perlu memicu pengisian ulang secara manual saat laporan YouTube tertunda atau diperbarui dalam periode 60 hari ini.

Batasan

  • 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.
  • Anda hanya dapat mentransfer data dari Channel YouTube yang terkait dengan Akun Google yang membuat transfer data. Untuk mengetahui informasi selengkapnya, lihat Pertimbangan otorisasi untuk transfer Channel YouTube.

Sebelum memulai

Sebelum Anda membuat transfer data Channel YouTube:

Izin yang diperlukan

Pastikan Anda telah memberikan izin berikut.

Peran BigQuery yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk membuat transfer data BigQuery Data Transfer Service, minta administrator untuk memberi Anda peran IAM BigQuery Admin (roles/bigquery.admin) di project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk membuat transfer data BigQuery Data Transfer Service. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat transfer data BigQuery Data Transfer Service:

  • Izin BigQuery Data Transfer Service:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • Izin BigQuery:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Untuk mengetahui informasi selengkapnya, lihat Memberikan akses bigquery.admin.

Peran Channel YouTube yang diperlukan

Anda harus memiliki kepemilikan Channel YouTube.

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 pekerjaan 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 Transfer data

  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 Nama tampilan, masukkan nama untuk transfer data, misalnya 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 seberapa sering transfer data dijalankan. Jika Anda memilih Days, berikan waktu yang valid dalam UTC.
      • Jika perlu, pilih Start now atau Start at set time, lalu 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 Tabel suffix, 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 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 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 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());
    }
  }
}

Saat Anda menyimpan konfigurasi transfer, konektor Channel YouTube akan otomatis memicu operasi transfer sesuai dengan opsi jadwal Anda. Dengan setiap operasi transfer, konektor Channel YouTube mentransfer semua data yang tersedia dari Channel YouTube yang terkait dengan kredensial pengguna yang membuat transfer data ini.

Untuk mengetahui informasi selengkapnya tentang data yang disertakan dalam setiap transfer Channel YouTube, lihat Pertimbangan otorisasi untuk transfer Channel YouTube.

Untuk menjalankan transfer data secara manual di luar jadwal reguler, Anda dapat memulai operasi pengisian ulang.

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 dibuat 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.