Trasferimenti dei rapporti sul canale YouTube

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

Report supportati

I report di BigQuery Data Transfer Service per i canali YouTube supportano le le seguenti opzioni di segnalazione:

Opzione di segnalazione Assistenza
Versione API supportata 18 giugno 2018
Pianificazione

Ogni giorno, circa 14:10 UTC

Puoi configurare l'ora

Finestra di aggiornamento

Ultimo giorno

Non configurabile.

Durata massima del backfill

30 giorni

Da luglio 2018, i report di YouTube contenenti dati storici sono disponibili per 30 giorni dal momento in cui vengono generati. (Report che contengono dati non storici sono disponibili per 60 giorni). Per ulteriori informazioni, vedi Dati storici nella documentazione dell'API di reporting di YouTube.

Per informazioni su come i report sui canali YouTube vengono trasformati per le tabelle e le viste 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, vengono caricati in tabelle BigQuery partizionate per data. La partizione della tabella in cui vengono caricati i dati corrisponde alla data da l'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 sono interessate.

Limitazioni

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

Prima di iniziare

Prima di effettuare il trasferimento di un canale YouTube:

Autorizzazioni obbligatorie

Per creare un trasferimento di un canale YouTube devi soddisfare i seguenti requisiti:

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

    • bigquery.transfers.update per creare il trasferimento.
    • bigquery.datasets.get e bigquery.datasets.update in linea con il target del set di dati.
    • Se intendi configurare le notifiche di esecuzione del trasferimento per Pub/Sub, deve avere le autorizzazioni pubsub.topics.setIamPolicy. Pub/Sub le autorizzazioni non sono necessarie se hai appena configurato le notifiche via email. Per maggiori informazioni le informazioni, vedi Notifiche di esecuzione di BigQuery Data Transfer Service.

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

Configurare il trasferimento di un canale YouTube

Per configurare il trasferimento di un canale YouTube devi:

  • Suffisso tabella: un nome semplice per il canale che fornisci quando configuri il trasferimento. Il suffisso viene aggiunto all'ID job per creare 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 devono essere univoci tra tutti i trasferimenti che caricano i dati nello stesso set di dati. il suffisso deve essere breve per ridurre al minimo la lunghezza del nome della tabella risultante.

Se attualmente utilizzi API di reporting di YouTube e esistono già job di generazione dei report, BigQuery Data Transfer Service carica il tuo report e i dati di Google Cloud. Se non hai job di generazione di report, durante la configurazione del trasferimento abilita automaticamente le offerte di lavoro 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 Origine, scegli Canale YouTube.

      Origine trasferimento

    • Nella sezione Nome configurazione di trasferimento, per Nome visualizzato, inserisci un nome del trasferimento, ad esempio My Transfer. Il nome del trasferimento può essere qualsiasi valore che consenta di identificare facilmente il trasferimento se necessario per 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 formato UTC.

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

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

      Trasferisci set di dati

    • Nella sezione Dettagli origine dati:

      • Per Suffisso tabella, inserisci un suffisso, ad esempio MT.
      • Seleziona la casella Configura job per consentire a BigQuery di gestire per te le offerte di lavoro legate alla generazione di report di YouTube. Se sono disponibili report di YouTube che al momento non esistono per il tuo account, le nuove offerte di lavoro create per abilitarle.

        Dettagli sulla sorgente del canale YouTube

    • (Facoltativo) Nella sezione Opzioni di notifica:

      • Fai clic sul pulsante di attivazione/disattivazione per abilitare le notifiche via email. Se attivi questa opzione, l'amministratore dei trasferimenti riceve una notifica via email quando un trasferimento non va a buon fine.
      • Per Seleziona un argomento Pub/Sub, scegli l'argomento o fai clic su Crea un argomento. Questa opzione configura l'esecuzione delle notifiche in 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 necessari 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 del trasferimento.
  • name è il nome visualizzato della configurazione di trasferimento. La Transfer name può essere qualsiasi valore che consenta di identificare facilmente se devi modificarlo in un secondo momento.
  • parameters contiene i parametri per il trasferimento creato configurazione in formato JSON. Ad esempio: --params='{"param":"param_value"}'. Per Se il tuo canale viene trasferito sul canale YouTube, devi fornire il parametro table_suffix. Tu può impostare facoltativamente il parametro configure_jobs su true per consentire BigQuery Data Transfer Service per gestire per te i job di generazione di report di YouTube. Se ci sono Report di YouTube che attualmente non esistono per il tuo canale; nuovi report vengono creati job per abilitarli.
  • data_source è l'origine dati: youtube_channel.

Puoi anche fornire il flag --project_id per specificare una determinata 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 con il suffisso della tabella MT e il set di dati di destinazione mydataset. La Il trasferimento dei dati 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 la projects.locations.transferConfigs.create e fornisce un'istanza del metodo TransferConfig risorsa.

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura 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());
    }
  }
}

Eseguire query sui dati

Quando vengono trasferiti in BigQuery, i dati vengono vengono scritte in tabelle partizionate in fase di importazione. Per ulteriori informazioni, vedi Introduzione alle tabelle partizionate.

Se esegui una query direttamente sulle tabelle anziché utilizzare le viste generate automaticamente, deve utilizzare la pseudocolonna _PARTITIONTIME nella query. Per ulteriori informazioni, consulta Esecuzione di query su tabelle partizionate.

Risolvere i problemi relativi alla configurazione del trasferimento di canali YouTube

Se riscontri problemi durante la configurazione del trasferimento, vedi Problemi di trasferimento di YouTube in Risoluzione dei problemi relativi alle configurazioni di trasferimento.