Trasferimenti dei proprietari dei contenuti di YouTube

Il connettore BigQuery Data Transfer Service per i proprietari dei contenuti di YouTube ti consente di pianificare e gestire automaticamente i job di caricamento ricorrenti per il proprietario dei contenuti di YouTube report.

Report supportati

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

Opzione di segnalazione Assistenza
Versione dell'API supportata 18 giugno 2018
Frequenza di ripetizione

Ogni giorno, intorno alle ore 14:45 UTC

Puoi configurare l'ora

Aggiorna finestra

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. I report contenenti dati non storici sono disponibili per 60 giorni dopo la modifica delle norme. Per ulteriori informazioni, consulta la sezione Dati storici nella documentazione dell'API di reporting di YouTube.

Per informazioni su come i report sui proprietari dei contenuti di YouTube per le tabelle e le viste BigQuery, consulta Trasformazioni dei report dei proprietari dei contenuti di YouTube.

Importazione dati da trasferimenti dei proprietari dei contenuti YouTube

Quando trasferisci i dati dai report dei proprietari dei contenuti di 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 l'esecuzione di backfill non generano dati duplicati e le partizioni per altre date non sono interessate.

Aggiornare le finestre

Una finestra di aggiornamento indica il numero di giorni in cui un trasferimento di dati recupera i dati. quando avviene un trasferimento di dati. Ad esempio, se la finestra di aggiornamento è di tre giorni e un trasferimento giornaliero, BigQuery Data Transfer Service recupera tutti i dati da nella tabella di origine degli ultimi tre giorni. In questo Ad esempio, quando si verifica un trasferimento giornaliero, BigQuery Data Transfer Service crea una nuova Partizione della tabella di destinazione BigQuery con una copia dei dati della tabella di origine dal giorno corrente, poi attiva automaticamente le esecuzioni di backfill per aggiornare La tabella di destinazione BigQuery esegue le partizioni con i dati della tabella di origine dal ultimi due giorni. Le esecuzioni di backfill attivate automaticamente sovrascrivono o aggiornano in modo incrementale la tabella di destinazione BigQuery, a seconda che gli aggiornamenti incrementali siano supportati o meno nel connettore BigQuery Data Transfer Service.

Quando esegui un trasferimento dati per la prima volta, vengono recuperati tutti i dati di origine disponibili all'interno della finestra di aggiornamento. Ad esempio, se la finestra di aggiornamento è di tre giorni ed esegui i dati per la prima volta, BigQuery Data Transfer Service recupera tutti i dati di origine entro tre giorni.

Le finestre di aggiornamento sono mappate al campo dell'API TransferConfig.data_refresh_window_days.

Per recuperare dati al di fuori della finestra di aggiornamento, ad esempio dati storici, o per i dati da eventuali interruzioni o lacune dei trasferimenti, puoi avviare o pianificare esecuzione di backfill.

Limitazioni

  • La dimensione massima supportata per ciascun report è 1710 GB.
  • La frequenza minima con cui puoi pianificare un trasferimento di dati è una volta ogni 24 ore. Per impostazione predefinita, un trasferimento di dati inizia nel momento in cui crei trasferimento di dati. Tuttavia, puoi configurare l'ora di inizio del trasferimento quando configuri il trasferimento.
  • BigQuery Data Transfer Service non supporta i trasferimenti di dati 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.

Prima di iniziare

Prima di creare un trasferimento di dati dei proprietari dei contenuti di YouTube:

Autorizzazioni obbligatorie

Assicurati che la persona che crea il trasferimento dei dati disponga delle seguenti autorizzazioni obbligatorie:

  • BigQuery:

    • Autorizzazioni bigquery.transfers.update per creare il trasferimento di dati
    • Autorizzazioni bigquery.datasets.get e bigquery.datasets.update attive il set di dati di destinazione

    Il ruolo IAM predefinito bigquery.admin include le autorizzazioni bigquery.transfers.update, bigquery.datasets.update e bigquery.datasets.get. Per saperne di più sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.

  • YouTube:

    • YouTube Content Manager o proprietario dei contenuti di YouTube.

    A un gestore dei contenuti vengono concessi i diritti di amministrazione dei contenuti di YouTube per conto di un proprietario dei contenuti. Un proprietario di contenuti è un account cumulativo che possiede uno o più canali YouTube e i video pubblicati su quei canali.

    • L'opzione Hide revenue data non è selezionata nelle impostazioni dei report dei proprietari dei contenuti di YouTube.

    Per trasferire i report correlati alle entrate, l'autorizzazione per i report di YouTube L'impostazione Hide revenue data deve essere deselezionata per l'utente che crea il trasferimento.

    youtube-content-owner-reports-uncheck-hide-revenue

Configurare un trasferimento del proprietario dei contenuti di YouTube

Per configurare il trasferimento dei dati di un proprietario dei contenuti di YouTube devi:

  • ID proprietario dei contenuti: fornito da YouTube. Quando accedi a YouTube come Proprietario o gestore dei contenuti, il tuo ID viene visualizzato nell'URL dopo il giorno o=. Ad esempio: se l'URL è https://studio.youtube.com/owner/AbCDE_8FghIjK?o=AbCDE_8FghIjK, l'ID proprietario dei contenuti è AbCDE_8FghIjK. Per selezionare un altro account Content Manager, consulta l'articolo Accedere a un account Content Manager o Strumento di trasferimento dei canali YouTube. Per maggiori informazioni sulla creazione e sulla gestione dell'account Content Manager, consulta Configurare le impostazioni dell'account Content Manager.
  • Suffisso tabella: un nome facile da ricordare per il canale fornito da te quando hai configurato il 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 dati 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 utilizzi API di reporting di YouTube e sono già presenti 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 esistenti, la configurazione del trasferimento dei dati attiva automaticamente i job di generazione di report di YouTube.

Per impostare un trasferimento dei dati del proprietario dei contenuti di YouTube:

Console

  1. Vai alla pagina BigQuery nella console Google Cloud. Assicurati di aver eseguito l'accesso all'account come proprietario dei contenuti o come gestore dei contenuti.

    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 Proprietario dei contenuti di YouTube.

      Origine trasferimento

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

      Nome trasferimento

    • Nella sezione Opzioni di programmazione:

      • Per Frequenza di ripetizione, scegli un'opzione per la frequenza con cui eseguire il trasferimento di dati. 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 fornisci 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 tuoi dati.

      Trasferisci set di dati

    • Nella sezione Dettagli dell'origine dati:

      • In ID proprietario dei contenuti, inserisci il tuo ID proprietario dei contenuti.
      • Per Suffisso tabella, inserisci un suffisso, ad esempio MT.

        Dettagli dell'origine del proprietario dei contenuti di YouTube

    • Nel menu Account di servizio, seleziona un account di servizio tra quelli associati al tuo progetto Google Cloud. Puoi associare un account di servizio al trasferimento dei dati anziché utilizzare le credenziali utente. Per maggiori informazioni informazioni sull'uso di account di servizio con i trasferimenti di dati, vedi Utilizzare gli account di servizio.

      • Se hai eseguito l'accesso con un'identità federata: è necessario un account di servizio per creare un trasferimento di dati. Se hai eseguito accesso con un Account Google, un service account per il trasferimento dei dati è facoltativo.
      • L'account di servizio deve disporre delle autorizzazioni richieste.
    • (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 del trasferimento riceve una notifica via email quando un trasferimento di dati 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 di esecuzione di Pub/Sub per il trasferimento.
  5. Fai clic su Salva.

  6. Se è la prima volta che accedi all'account, selezionane uno e fai clic su Consenti. Seleziona lo stesso account in cui ti trovi proprietario dei contenuti o gestore dei contenuti.

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

Flag facoltativi:

  • --service_account_name: specifica un account di servizio da utilizzare per l'autenticazione del trasferimento del proprietario dei contenuti anziché il tuo account utente.
bq mk \
--transfer_config \
--project_id=project_id \
--target_dataset=dataset \
--display_name=name \
--params='parameters' \
--data_source=data_source \
--service_account_name=service_account_name

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. Il nome del trasferimento di dati può essere qualsiasi valore che ti consenta di identificare il trasferimento 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 i trasferimenti di dati dei proprietari dei contenuti di YouTube, devi fornire i parametri content_owner_id e table_suffix. Se vuoi, puoi impostare configure_jobs su true per consentire a BigQuery Data Transfer Service per gestire le offerte di lavoro relative alla generazione di report di YouTube per te. Se esistono report di YouTube che non esistono per il tuo account, vengono creati nuovi job per la generazione di report per ad attivarle.
  • data_source è l'origine dati - youtube_content_owner.
  • service_account_name è il nome dell'account di servizio utilizzato per autenticare il trasferimento dei dati. L'account di servizio deve essere di proprietà dello stesso project_id utilizzato per creare il trasferimento e deve disporre di tutte le autorizzazioni richieste.

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 di dati del proprietario dei contenuti di YouTube denominato My Transfer utilizzando l'ID proprietario dei contenuti AbCDE_8FghIjK, suffisso della tabella MT e il set di dati di destinazione mydataset. Il trasferimento dei dati viene creato progetto:

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

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 Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.

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 content owner channel transfer config
public class CreateYoutubeContentOwnerTransfer {

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

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

Esegui query sui dati

Quando vengono trasferiti in BigQuery, i dati vengono vengono scritte in tabelle partizionate in fase di importazione. Per ulteriori informazioni, consulta 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 di configurazione del trasferimento dei proprietari di contenuti di YouTube

Se riscontri problemi durante la configurazione del trasferimento dei dati, consulta Problemi di trasferimento di YouTube nella sezione Risolvere i problemi di configurazione del trasferimento.