Trasferimenti del canale YouTube

BigQuery Data Transfer Service per YouTube consente di pianificare e gestire automaticamente job di caricamento ricorrenti per i report sui canali YouTube.

Report supportati

I report di BigQuery Data Transfer Service per canale YouTube supportano le seguenti opzioni di reporting:

Opzione di segnalazione Assistenza
Versione API supportata 18 giugno 2018
Pianifica

Ogni giorno, circa 14:10 UTC

Puoi configurare l'ora del giorno

Finestra di aggiornamento

Ultimo giorno

Non configurabile.

Durata massima del backfill

30 giorni

A partire da luglio 2018, i report di YouTube contenenti dati storici sono disponibili per 30 giorni a partire dalla loro generazione. I report contenenti dati non storici saranno disponibili per 60 giorni. Per ulteriori informazioni, consulta la sezione sui dati storici nella documentazione dell'API di reporting di YouTube.

Per informazioni su come i report sui canali YouTube vengono trasformati in tabelle e visualizzazioni di BigQuery, consulta Trasformazioni dei report sui canali YouTube.

Importazione dati dai trasferimenti del canale YouTube

Quando trasferisci i dati da un canale YouTube a BigQuery, i dati vengono caricati in tabelle BigQuery partizionate per data. La partizione della tabella in cui vengono caricati i dati corrisponde alla data dell'origine dati. Se pianifichi più trasferimenti per la stessa data, BigQuery Data Transfer Service sovrascrive la partizione per quella data specifica con i dati più recenti. Più trasferimenti nello stesso giorno o backfill in esecuzione non generano dati duplicati e le partizioni per altre date non vengono interessate.

Limitazioni

  • Le dimensioni massime supportate per i file di ogni report sono 1710 GB.
  • La frequenza minima per cui puoi pianificare un trasferimento di dati è una volta ogni 24 ore. Per impostazione predefinita, un trasferimento inizia nel momento in cui lo crei. Tuttavia, puoi configurare l'ora di inizio del trasferimento quando configuri il trasferimento.
  • BigQuery Data Transfer Service non supporta i trasferimenti incrementali durante il trasferimento di un proprietario dei contenuti di YouTube. Quando specifichi una data per un trasferimento di dati, tutti i dati disponibili per quella data vengono trasferiti.
  • Non puoi creare un trasferimento di canale YouTube se hai eseguito l'accesso come identità federata. Puoi creare un trasferimento di un canale YouTube solo se hai effettuato l'accesso con un Account Google.

Prima di iniziare

Prima di creare un trasferimento di un canale YouTube:

Autorizzazioni obbligatorie

La creazione di un trasferimento di canale YouTube richiede quanto segue:

  • YouTube: proprietà del canale YouTube
  • BigQuery: le seguenti autorizzazioni IAM (Identity and Access Management) in BigQuery:

    • bigquery.transfers.update per creare il trasferimento.
    • bigquery.datasets.get e bigquery.datasets.update sul set di dati di destinazione.
    • Se intendi configurare le notifiche di esecuzione del trasferimento per Pub/Sub, devi disporre delle autorizzazioni pubsub.topics.setIamPolicy. Le autorizzazioni Pub/Sub non sono necessarie se hai solo configurato le notifiche via email. Per ulteriori informazioni, consulta Notifiche di esecuzione di BigQuery Data Transfer Service.

Il ruolo IAM predefinito di bigquery.admin include tutte le autorizzazioni BigQuery necessarie per creare un trasferimento di un canale YouTube. Per ulteriori informazioni sui ruoli IAM in BigQuery, consulta Autorizzazioni e ruoli predefiniti.

Configurare un trasferimento di canale YouTube

Per configurare il trasferimento di un canale YouTube devi:

  • Suffisso di tabella: un nome facile da usare per il canale che hai fornito durante la configurazione del trasferimento. Il suffisso viene aggiunto all'ID job per creare il nome della tabella, ad esempio reportTypeId_suffix. Il suffisso viene utilizzato per impedire la scrittura di trasferimenti separati nelle stesse tabelle. Il suffisso della tabella deve essere univoco in tutti i trasferimenti che caricano i dati nello stesso set di dati e deve essere breve per ridurre al minimo la lunghezza del nome della tabella risultante.

Se attualmente utilizzi l'API YouTube Reporting e disponi di job di reporting esistenti, BigQuery Data Transfer Service caricherà i dati del report. Se non esistono job di reporting, la configurazione del trasferimento abilita automaticamente i job di reporting di YouTube.

Per creare un trasferimento di un canale YouTube:

Console

  1. Vai alla pagina BigQuery nella console Google Cloud.

    Vai alla pagina di BigQuery

  2. Fai clic su Trasferimenti.

  3. Fai clic su Crea trasferimento.

  4. Nella pagina Crea trasferimento:

    • Nella sezione Tipo di origine, per Sorgente, scegli Canale YouTube.

      Origine trasferimento

    • Nella sezione Nome configurazione di trasferimento, per Nome visualizzato, inserisci un nome per il trasferimento, ad esempio My Transfer. Il nome del trasferimento può essere qualsiasi valore che ti consente di identificare facilmente il trasferimento se devi modificarlo in un secondo momento.

      Nome trasferimento

    • Nella sezione Opzioni di pianificazione:

      • In Frequenza di ripetizione, scegli un'opzione per la frequenza di esecuzione del trasferimento. Se selezioni Giorni, fornisci un orario valido nel fuso orario UTC.

        • Ore
        • Giorni
        • On demand
      • Se applicabile, seleziona Inizia ora o Inizia all'ora impostata e specifica una data di inizio e un'ora di esecuzione.

    • Nella sezione Impostazioni destinazione, per Set di dati di destinazione, scegli il set di dati che hai creato per archiviare i dati.

      Trasferisci set di dati

    • Nella sezione Dettagli origine dati:

      • Per Suffisso della tabella, inserisci un suffisso, ad esempio MT.
      • Seleziona la casella Configura job per consentire a BigQuery di gestire i job di reporting di YouTube per te. Se esistono report di YouTube che al momento non esistono per il tuo account, vengono creati nuovi job di reporting per abilitarli.

        Dettagli della sorgente dei canali YouTube

    • (Facoltativo) Nella sezione Opzioni di notifica:

      • Fai clic sul pulsante di attivazione/disattivazione per abilitare le notifiche via email. Quando abiliti questa opzione, l'amministratore dei trasferimenti riceve una notifica via email quando un'esecuzione del trasferimento non va a buon fine.
      • In Seleziona un argomento Pub/Sub, scegli il nome dell'argomento o fai clic su Crea un argomento. Questa opzione configura le notifiche dell'esecuzione di Pub/Sub per il trasferimento.
  5. Fai clic su Salva.

bq

Inserisci il comando bq mk e fornisci il flag di creazione del trasferimento --transfer_config. Sono richiesti anche i seguenti flag:

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

Dove:

  • project_id è l'ID progetto.
  • dataset è il set di dati di destinazione per la configurazione di trasferimento.
  • name è il nome visualizzato della configurazione di trasferimento. Il nome del trasferimento può essere qualsiasi valore che ti consenta di identificare facilmente il trasferimento se devi modificarlo in un secondo momento.
  • parameters contiene i parametri per la configurazione di trasferimento creata in formato JSON. Ad esempio: --params='{"param":"param_value"}'. Per i trasferimenti del canale YouTube, devi fornire il parametro table_suffix. Facoltativamente, puoi impostare il parametro configure_jobs su true per consentire a BigQuery Data Transfer Service di gestire i job di reporting di YouTube per te. Se esistono report di YouTube che al momento non esistono per il tuo canale, vengono creati nuovi job di generazione di report per abilitarli.
  • data_source è l'origine dati, youtube_channel.

Puoi anche fornire il flag --project_id per specificare un particolare progetto. Se --project_id non è specificato, viene utilizzato il progetto predefinito.

Ad esempio, il seguente comando crea un trasferimento da un canale YouTube denominato My Transfer utilizzando il suffisso della tabella MT e il set di dati di destinazione mydataset. Il trasferimento viene creato nel progetto predefinito:

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

API

Utilizza il metodo projects.locations.transferConfigs.create e fornisci un'istanza della risorsa TransferConfig.

Java

Prima di provare questo esempio, segui le istruzioni di configurazione di Java disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.

Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.

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

Esegui query sui dati

Quando i dati vengono trasferiti in BigQuery, vengono scritti in tabelle partizionate per la fase di importazione. Per ulteriori informazioni, consulta Introduzione alle tabelle partizionate.

Se esegui query direttamente sulle tabelle anziché utilizzare le viste generate automaticamente, devi utilizzare la pseudo-colonna _PARTITIONTIME nella query. Per ulteriori informazioni, consulta la pagina relativa all'esecuzione di query sulle tabelle partizionate.

Risolvere i problemi di configurazione del trasferimento dei canali YouTube

Se hai problemi durante la configurazione del trasferimento, consulta Problemi di trasferimento di YouTube in Risolvere i problemi relativi alle configurazioni di trasferimento.