Übertragungen für YouTube-Rechteinhaber

Mit dem BigQuery Data Transfer Service für den YouTube-Rechteinhaber-Connector können Sie wiederkehrende Ladejobs für YouTube-Rechteinhaberberichte automatisch planen und verwalten.

Unterstützte Berichte

BigQuery Data Transfer Service für YouTube-Rechteinhaberberichte unterstützt die folgenden Berichtsoptionen:

Berichtsoption Unterstützung
Unterstützte API-Version 18. Juni 2018
Wiederholungshäufigkeit

Täglich etwa um 14:45 Uhr UTC

Sie können die Tageszeit konfigurieren.

Aktualisierungsfenster

Letzter Tag

Nicht konfigurierbar

Maximale Backfill-Dauer

30 Tage

Ab Juli 2018 sind YouTube-Berichte, die Verlaufsdaten enthalten, ab dem Zeitpunkt ihrer Erstellung 30 Tage lang verfügbar. Berichte, die keine Verlaufsdaten enthalten, sind nach der Richtlinienänderung 60 Tage lang verfügbar. Weitere Informationen finden Sie in der Dokumentation zur YouTube Reporting API unter Verlaufsdaten.

Informationen zur Umwandlung von YouTube-Rechteinhaberberichten in BigQuery-Tabellen und -Ansichten finden Sie unter Berichte zu YouTube-Rechteinhabern umwandeln.

Datenaufnahme aus Übertragungen für YouTube-Rechteinhabern

Wenn Sie Daten aus YouTube-Rechteinhaberberichten in BigQuery übertragen, werden die Daten in BigQuery-Tabellen geladen, die nach Datum partitioniert sind. Die Tabellenpartition, in die die Daten geladen werden, entspricht dem Datum aus der Datenquelle. Wenn Sie mehrere Übertragungen für dasselbe Datum planen, überschreibt BigQuery Data Transfer Service die Partition für dieses Datum mit den neuesten Daten. Mehrere Übertragungen am selben Tag oder laufende Backfills führen nicht zu doppelten Daten; Partitionen für andere Daten sind nicht betroffen.

Fenster aktualisieren

Ein Aktualisierungsfenster ist die Anzahl der Tage, an denen eine Datenübertragung Daten zu einer Datenübertragung abruft. Wenn das Aktualisierungsfenster beispielsweise drei Tage beträgt und eine tägliche Übertragung erfolgt, ruft der BigQuery Data Transfer Service alle Daten aus Ihrer Quelltabelle der letzten drei Tage ab. In diesem Beispiel erstellt der BigQuery Data Transfer Service bei einer täglichen Übertragung eine neue BigQuery-Zieltabellenpartition mit einer Kopie der Daten der Quelltabelle vom aktuellen Tag und löst dann automatisch Backfill-Ausführungen aus, um die BigQuery-Zieltabellenpartitionen mit den Daten der Quelltabelle aus den letzten zwei Tagen zu aktualisieren. Die automatisch ausgelösten Backfill-Ausführungen überschreiben oder aktualisieren Ihre BigQuery-Zieltabelle entweder schrittweise oder aktualisieren sie, je nachdem, ob inkrementelle Aktualisierungen im BigQuery Data Transfer Service-Connector unterstützt werden oder nicht.

Wenn Sie eine Datenübertragung zum ersten Mal ausführen, werden alle Quelldaten abgerufen, die innerhalb des Aktualisierungszeitraums verfügbar sind. Wenn das Aktualisierungsfenster beispielsweise drei Tage beträgt und Sie die Datenübertragung zum ersten Mal ausführen, ruft der BigQuery Data Transfer Service alle Quelldaten innerhalb von drei Tagen ab.

Aktualisierungsfenster sind dem API-Feld TransferConfig.data_refresh_window_days zugeordnet.

Wenn Sie Daten außerhalb des Aktualisierungszeitraums abrufen möchten, z. B. Verlaufsdaten, oder Daten nach Übertragungsausfällen oder -lücken wiederherstellen möchten, können Sie einen Backfill-Vorgang initiieren oder planen.

Beschränkungen

  • Die maximal unterstützte Dateigröße für jeden Bericht beträgt 1.710 GB.
  • Die Mindesthäufigkeit, für die Sie eine Datenübertragung planen können, beträgt einmal alle 24 Stunden. Standardmäßig beginnt eine Datenübertragung zu dem Zeitpunkt, an dem Sie die Datenübertragung erstellen. Sie können die Startzeit der Übertragung jedoch beim Einrichten der Übertragung konfigurieren.
  • Der BigQuery Data Transfer Service unterstützt keine inkrementellen Datenübertragungen während der Übertragung eines YouTube-Rechteinhabers. Wenn Sie ein Datum für eine Datenübertragung angeben, werden alle Daten übertragen, die für dieses Datum verfügbar sind.

Hinweise

Diese Schritte sind vor dem Erstellen einer Datenübertragung für YouTube-Rechteinhaber erforderlich:

  • Überprüfen Sie, ob Sie alle erforderlichen Aktionen ausgeführt haben, damit Sie den BigQuery Data Transfer Service aktivieren können.
  • Erstellen Sie ein BigQuery-Dataset zum Speichern der YouTube-Daten.
  • Überprüfen Sie, ob Sie ein YouTube-Rechteinhaberkonto haben. Ein YouTube-Rechteinhaber ist nicht mit einem YouTube-Kanal identisch. Normalerweise haben Sie nur dann ein YouTube-Rechteinhaberkonto, wenn Sie mehrere Kanäle verwalten.
  • Wenn Sie Benachrichtigungen über die Übertragungsausführung für Pub/Sub einrichten möchten, benötigen Sie die Berechtigungen pubsub.topics.setIamPolicy. Pub/Sub-Berechtigungen sind nicht erforderlich, wenn Sie nur E-Mail-Benachrichtigungen einrichten. Weitere Informationen finden Sie unter Ausführungsbenachrichtigungen im BigQuery Data Transfer Service.

Erforderliche Berechtigungen

Achten Sie darauf, dass die Person, die die Datenübertragung erstellt, die folgenden Berechtigungen hat:

  • BigQuery:

    • bigquery.transfers.update-Berechtigungen zum Erstellen der Datenübertragung
    • Die Berechtigungen bigquery.datasets.get und bigquery.datasets.update für das Ziel-Dataset

    Die vordefinierte IAM-Rolle bigquery.admin enthält die Berechtigungen bigquery.transfers.update, bigquery.datasets.update und bigquery.datasets.get. Weitere Informationen zu IAM-Rollen in BigQuery Data Transfer Service finden Sie in der Zugriffssteuerung.

  • YouTube:

    • YouTube-Content-Manager oder YouTube-Rechteinhaber.

    Einem Content-Manager werden Rechte zum Verwalten von YouTube-Inhalten für einen Rechteinhaber gewährt. Ein Rechteinhaber ist ein übergeordnetes Konto, dem ein oder mehrere YouTube-Kanäle und die Videos in diesen Kanälen gehören.

    • Hide revenue data ist in den Berichtseinstellungen des YouTube-Rechteinhabers nicht markiert.

    Zur Übertragung von umsatzbezogenen Berichten sollte die Berechtigungseinstellung Hide revenue data für YouTube-Berichte für den Nutzer, der die Übertragung erstellt, deaktiviert sein.

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

So richten Sie die Übertragung für einen YouTube-Rechteinhaber ein:

Um die Datenübertragung für YouTube-Rechteinhaber einrichten zu können, benötigen Sie Folgendes:

  • Rechteinhaber-ID: Wird von YouTube bereitgestellt. Wenn Sie sich bei YouTube als Rechteinhaber oder Content-Manager anmelden, wird Ihre ID in der URL nach o= angezeigt. Wenn die URL beispielsweise https://studio.youtube.com/owner/AbCDE_8FghIjK?o=AbCDE_8FghIjK lautet, ist die ID des Rechteinhabers AbCDE_8FghIjK. Informationen zum Auswählen eines anderen Content-Manager-Kontos finden Sie unter In einem Content-Manager-Konto anmelden oder YouTube-Kanal-Switcher. Weitere Informationen zum Erstellen und Verwalten Ihres Content-Manager-Kontos finden Sie unter Content-Manager-Kontoeinstellungen konfigurieren.
  • Tabellensuffix: Ein benutzerfreundlicher Name für den Kanal, den Sie beim Einrichten der Übertragung angegeben haben. Das Suffix wird an die Job-ID angefügt, um den Tabellennamen zu bilden, beispielsweise reportTypeId_suffix. Mit dem Suffix wird verhindert, dass bei unterschiedlichen Datenübertragungen in dieselbe Tabelle geschrieben wird. Das Tabellensuffix darf bei allen Übertragungen, bei denen Daten in dasselbe Dataset geladen werden, nur einmal vorkommen. Außerdem muss das Suffix kurz sein, damit der Tabellenname nicht zu lang wird.

Wenn Sie die YouTube Reporting API verwenden und Berichterstellungsjobs vorhanden sind, werden die Berichtsdaten von BigQuery Data Transfer Service geladen. Wenn keine Berichterstellungsjobs vorhanden sind, werden YouTube-Berichterstellungsjobs automatisch beim Einrichten der Datenübertragung aktiviert.

So richten Sie die Datenübertragung für einen YouTube-Rechteinhaber ein:

Console

  1. Rufen Sie in der Google Cloud Console die Seite "BigQuery" auf. Achten Sie darauf, dass Sie entweder als Rechteinhaber oder Content-Manager im Konto angemeldet sind.

    Zur Seite "BigQuery"

  2. Klicken Sie auf Übertragungen.

  3. Klicken Sie auf Create Transfer (Übertragung erstellen).

  4. Auf der Seite Create Transfer (Übertragung erstellen) gehen Sie so vor:

    • Wählen Sie im Abschnitt Source type (Quelltyp) für Source (Quelle) die Option YouTube-Rechteinhaber aus.

      Übertragungsquelle

    • Geben Sie im Abschnitt Transfer config name (Konfigurationsname für Übertragung) für Display name (Anzeigename) einen Namen wie My Transfer für die Datenübertragung ein. Der Übertragungsname kann ein beliebiger Wert sein, mit dem Sie die Übertragung identifizieren können, wenn Sie sie später ändern müssen.

      Name der Übertragung

    • Im Abschnitt Zeitplanoptionen:

      • Wählen Sie für Wiederholungshäufigkeit aus, wie oft die Übertragung ausgeführt werden soll. Wenn Sie Tage auswählen, geben Sie eine gültige Zeit in UTC an.

        • Stunden
        • Tage
        • On demand
      • Wählen Sie gegebenenfalls Jetzt starten oder Zu festgelegter Zeit starten aus und geben Sie ein Startdatum und eine Laufzeit an.

    • Wählen Sie im Abschnitt Destination settings (Zieleinstellungen) für Destination dataset (Ziel-Dataset) das Dataset aus, das Sie zum Speichern Ihrer Daten erstellt haben.

      Dataset übertragen

    • Im Abschnitt Data source details (Details zur Datenquelle):

      • Geben Sie für Rechteinhaber-ID Ihre Rechteinhaber-ID ein.
      • Geben Sie für Table suffix (Tabellensuffix) ein Suffix ein, beispielsweise MT.

        Quellendetails für den YouTube-Rechteinhaber

    • Wählen Sie im Menü Dienstkonto ein Dienstkonto aus den Dienstkonten aus, die mit Ihrem Google Cloud-Projekt verknüpft sind. Sie können Ihre Datenübertragung mit einem Dienstkonto verknüpfen, anstatt Ihre Nutzeranmeldedaten zu verwenden. Weitere Informationen zur Verwendung von Dienstkonten mit Datenübertragungen finden Sie unter Dienstkonten verwenden.

    • (Optional) Im Abschnitt Notification options (Benachrichtigungsoptionen):

      • Klicken Sie auf den Umschalter, um E-Mail-Benachrichtigungen zu aktivieren. Wenn Sie diese Option aktivieren, erhält der Übertragungsadministrator eine E-Mail-Benachrichtigung, wenn ein Datenübertragungsvorgang fehlschlägt.
      • Wählen Sie unter Pub/Sub-Thema auswählen Ihr Thema aus oder klicken Sie auf Thema erstellen. Mit dieser Option werden Pub/Sub-Ausführungsbenachrichtigungen für Ihre Übertragung konfiguriert.
  5. Klicken Sie auf Speichern.

  6. Wenn Sie sich zum ersten Mal beim Konto anmelden, wählen Sie ein Konto aus und klicken Sie auf Zulassen. Wählen Sie das Konto aus, in dem Sie der Rechteinhaber oder Content-Manager sind.

bq

Geben Sie den Befehl bq mk ein und geben Sie das Flag --transfer_config für die Übertragungserstellung an. Die folgenden Flags sind ebenfalls erforderlich:

  • --data_source
  • --target_dataset
  • --display_name
  • --params

Optionale Flags:

  • --service_account_name: Gibt ein Dienstkonto an, das für die Übertragungsauthentifizierung des Rechteinhabers anstelle Ihres Nutzerkontos verwendet werden soll.
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

Dabei gilt:

  • project_id ist die Projekt-ID.
  • dataset ist das Ziel-Dataset für die Übertragungskonfiguration.
  • name ist der Anzeigename für die Übertragungskonfiguration. Der Datenübertragungsname kann ein beliebiger Wert sein, mit dem Sie die Übertragung identifizieren können, wenn Sie sie später ändern müssen.
  • parameters enthält die Parameter für die erstellte Übertragungskonfiguration im JSON-Format. Beispiel: --params='{"param":"param_value"}'. Für Datenübertragungen von YouTube-Rechteinhabern müssen die Parameter content_owner_id und table_suffix angegeben werden. Optional können Sie den Parameter configure_jobs auf true setzen, damit BigQuery Data Transfer Service für Sie YouTube-Berichterstellungsjobs verwalten kann. Wenn YouTube-Berichte vorhanden sind, die nicht für Ihr Konto zur Verfügung stehen, werden neue Berichterstellungsjobs erstellt, um sie zu aktivieren.
  • data_source ist die Datenquelle: youtube_content_owner.
  • service_account_name ist der Name des Dienstkontos, der zur Authentifizierung der Datenübertragung verwendet wird. Das Dienstkonto sollte zum selben project_id gehören, das für die Erstellung der Übertragung verwendet wurde, und sollte alle erforderlichen Berechtigungen haben.

Sie können auch das Flag --project_id bereitstellen, um ein bestimmtes Projekt anzugeben. Wenn --project_id nicht angegeben ist, wird das Standardprojekt verwendet.

Mit dem folgenden Befehl wird beispielsweise eine Datenübertragung für YouTube-Rechteinhaber mit dem Namen My Transfer erstellt. Dabei werden die Rechteinhaber-ID AbCDE_8FghIjK, das Tabellensuffix MT und das Ziel-Dataset mydataset verwendet. Die Datenübertragung wird im Standardprojekt erstellt:

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

Verwenden Sie die Methode projects.locations.transferConfigs.create und geben Sie eine Instanz der Ressource TransferConfig an.

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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

Daten abfragen

Bei der Übertragung Ihrer Daten in BigQuery werden die Daten in zeitpartitionierte Tabellen geschrieben. Weitere Informationen finden Sie unter Einführung in partitionierte Tabellen.

Wenn Sie die Tabellen direkt abfragen, anstatt die automatisch generierten Ansichten zu verwenden, müssen Sie in der Abfrage die Pseudospalte _PARTITIONTIME verwenden. Weitere Informationen finden Sie unter Partitionierte Tabellen abfragen.

Fehlerbehebung beim Einrichten von Übertragungen für YouTube-Rechteinhaber

Bei Problemen beim Einrichten von Datenübertragungen finden Sie weitere Informationen unter Fehlerbehebung bei Übertragungskonfigurationen im Abschnitt Übertragungsprobleme mit YouTube.