Transferts de chaînes YouTube

Le service de transfert de données BigQuery pour YouTube vous permet de programmer et de gérer automatiquement les tâches de chargement récurrentes pour les rapports de chaîne YouTube.

Rapports acceptés

Le service de transfert de données BigQuery pour les rapports de chaîne YouTube accepte actuellement les options de création de rapports ci-dessous.

Option de création de rapports Assistance
Version d'API compatible 18 juin 2018
Programmation

Tous les jours, à environ 14h10 (UTC)

Vous pouvez configurer l'heure de la journée.

Fenêtre d'actualisation

La veille

Non configurable

Durée maximale du remplissage

30 jours

Depuis juillet 2018, les rapports YouTube contenant des données de l'historique sont disponibles pendant 30 jours à compter de leur génération. (Les rapports contenant des données non historiques sont disponibles pendant 60 jours après le changement des règles.) Pour plus d'informations, consultez la section Données de l'historique dans la documentation de l'API de création de rapports YouTube.

Pour en savoir plus sur la transformation des rapports de chaîne YouTube en tables et vues BigQuery, consultez la page Transformation des rapports de chaîne YouTube.

Limites

La taille maximale acceptée pour un rapport est de 1 710 Go.

Avant de commencer

Avant de créer un transfert de chaîne YouTube, procédez comme suit :

Autorisations requises

Pour créer un transfert de chaîne YouTube, vous devez disposer des éléments suivants :

  • YouTube - Propriété de la chaîne YouTube
  • BigQuery - Les autorisations IAM (Identity and Access Management) suivantes dans BigQuery :

    • bigquery.transfers.update pour créer le transfert.
    • bigquery.datasets.get et bigquery.datasets.update sur l'ensemble de données cible.
    • Si vous avez l'intention de configurer des notifications d'exécution de transfert pour Pub/Sub, vous devez disposer des autorisations pubsub.topics.setIamPolicy. Les autorisations Pub/Sub ne sont pas nécessaires si vous ne configurez que des notifications par e-mail. Pour plus d'informations, consultez la page Notifications d'exécution du service de transfert de données BigQuery.

Le rôle Cloud IAM prédéfini bigquery.admin inclut toutes les autorisations BigQuery dont vous avez besoin pour créer un transfert de chaîne YouTube. Pour en savoir plus sur les rôles IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Configurer un transfert de chaîne YouTube

Pour configurer un transfert de chaîne YouTube, vous devez disposer des éléments suivants :

  • Suffixe de table : nom convivial de la chaîne que vous avez fourni lors de la configuration du transfert. Le suffixe est ajouté à l'ID de tâche pour former le nom de la table, par exemple reportTypeId_suffix. Il empêche que des transferts séparés écrivent sur des tables identiques. Le suffixe de table doit être unique pour tous les transferts qui chargent des données dans le même ensemble de données. Il doit par ailleurs être court de façon à réduire la longueur du nom de table obtenu.

Si vous utilisez actuellement l'API de création de rapports YouTube et disposez de tâches de création de rapports, le service de transfert de données BigQuery charge les données de vos rapports. Si vous n'avez pas de tâches de création de rapports existantes, la configuration du transfert active automatiquement les tâches de création de rapports YouTube.

Pour créer un transfert de chaîne YouTube :

Console

  1. Accédez à la page "BigQuery" dans la console.

    Accéder à la page "BigQuery"

  2. Cliquez sur Transferts.

  3. Cliquez sur Créer un transfert.

  4. Sur la page Créer un transfert :

    • Dans la section Source type (Type de source), pour le champ Source, choisissez YouTube Channel (Chaîne YouTube).

      Source de transfert

    • Dans la section Transfer config name (Nom de la configuration de transfert), sousDisplay name (Nom à afficher), saisissez un nom pour le transfert, tel que My Transfer. Ce nom peut correspondre à n'importe quelle valeur permettant d'identifier facilement le transfert si vous devez le modifier ultérieurement.

      Nom du transfert

    • Dans la section Schedule options (Options de programmation), pour le champ Custom Schedule (Programmation personnalisée), laissez la valeur par défaut Start now (Commencer), ou cliquez sur Start at a set time (Démarrer à l'heure définie).

      • Pour le champ Repeats (Périodicité), choisissez l'une des options suivantes pour la fréquence d'exécution du transfert.
        • Daily (Tous les jours) (par défaut)
        • Toutes les semaines
        • Tous les mois
        • Personnalisé
        • On-demand (À la demande)
      • Pour le champ Start date and run time (Date de début et heure d'exécution), saisissez la date et l'heure de début du transfert. Cette option est désactivée si vous choisissez Start now (Commencer).

        Planning de transfert

    • Dans la section Destination settings (Paramètres de destination), pour le champ Destination dataset (Ensemble de données de destination), choisissez l'ensemble de données que vous avez créé pour stocker vos données.

      Transférer un ensemble de données

    • Dans la section Data source details (Détails de la source de données) :

      • Pour Table suffix (Suffixe de table), saisissez un suffixe tel que MT.
      • Cochez la case Configure jobs (Configurer les tâches) pour autoriser le service de transfert de données BigQuery à gérer les tâches de création de rapports YouTube à votre place. S'il n'existe actuellement pas de rapports YouTube pour votre compte, des tâches de création de rapports sont créées pour les activer.

        Informations sur la source de la chaîne YouTube

    • (Facultatif) Dans la section Notification options (Options de notification) :

      • Cliquez sur le bouton pour activer les notifications par e-mail. Lorsque vous activez cette option, l'administrateur de transfert reçoit une notification par e-mail en cas d'échec de l'exécution du transfert.
      • Pour le champ Select a Pub/Sub topic (Sélectionner un sujet Pub/Sub), choisissez le nom de votre sujet ou cliquez sur Create a topic (Créer un sujet). Cette option configure les notifications d'exécution Cloud Pub/Sub pour votre transfert.
  5. Cliquez sur Save (Enregistrer).

bq

Saisissez la commande bq mk, puis spécifiez l'indicateur de création de transfert --transfer_config. Les paramètres suivants sont également requis :

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

Où :

  • project_id est l'ID de votre projet.
  • dataset est l'ensemble de données cible de la configuration de transfert.
  • name est le nom à afficher pour la configuration de transfert. Ce nom peut correspondre à toute valeur permettant d'identifier facilement le transfert si vous devez le modifier ultérieurement.
  • parameters contient les paramètres de la configuration de transfert créée au format JSON. Exemple : --params='{"param":"param_value"}'. Pour les transferts de chaînes YouTube, vous devez fournir le paramètre table_suffix. Vous pouvez éventuellement définir le paramètre configure_jobs sur true pour autoriser le service de transfert de données BigQuery à gérer les tâches de création de rapports YouTube à votre place. Si des rapports YouTube n'existent pas actuellement pour votre chaîne, des tâches de création de rapports sont créées de façon à les activer.
  • data_source correspond à la source de données : youtube_channel.

Vous pouvez également indiquer l'option --project_id pour spécifier un projet particulier. Si --project_id n'est pas spécifié, le projet par défaut est utilisé.

Par exemple, la commande suivante crée un transfert de chaîne YouTube nommé My Transfer à l'aide du suffixe de table MT et de l'ensemble de données cible mydataset. Le transfert est créé dans le projet par défaut.

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

API

Utilisez la méthode projects.locations.transferConfigs.create et fournissez une instance de la ressource TransferConfig.

Java

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

Interroger les données

Lorsque les données sont transférées vers BigQuery, elles sont écrites dans des tables partitionnées avec date d'ingestion. Pour plus d'informations, consultez la page Présentation des tables partitionnées.

Si vous interrogez directement les tables au lieu d'utiliser les vues générées automatiquement, vous devez utiliser la pseudo-colonne _PARTITIONTIME dans votre requête. Pour en savoir plus, consultez la page Interroger des tables partitionnées.

Résoudre les problèmes de configuration des transferts de chaînes YouTube

Si vous rencontrez des problèmes lors de la configuration de votre transfert, reportez-vous à la section Problèmes de transfert avec YouTube à la page Résolution des problèmes de configuration du transfert.