Transferencias de propietario del contenido de YouTube

El Servicio de transferencia de datos de BigQuery para el conector de propietario del contenido de YouTube te permite programar y administrar de forma automática los trabajos de carga recurrentes de los informes de propietario del contenido de YouTube.

Informes compatibles

En la actualidad, el Servicio de transferencia de datos de BigQuery para los informes de propietario del contenido de YouTube admite las siguientes opciones de informes:

Opción de informe Asistencia
Versión de la API compatible 18 de junio de 2018
Frecuencia de repetición

Diario, alrededor de las 14:45 UTC

Puedes configurar la hora del día

Período de actualización

Último día

No configurable

Duración máxima del reabastecimiento

30 días

A partir de julio de 2018, los informes de YouTube que contienen datos históricos estarán disponibles durante 30 días desde el momento en que se generan. Los informes que contienen datos no históricos estarán disponibles durante los 60 días posteriores a la modificación de la política. Para obtener más información, consulta Datos históricos en la documentación de la API de informes de YouTube

Para obtener información sobre cómo se transforman los informes de propietario del contenido de YouTube en tablas y vistas de BigQuery, consulta Transformaciones de informes de propietario del contenido de YouTube.

Transferencia de datos desde transferencias de propietario del contenido de YouTube

Cuando transfieres datos de los informes de propietario de contenido de YouTube a BigQuery, los datos se cargan en tablas de BigQuery que se particionan por fecha. La partición de la tabla en la que se cargan los datos corresponde a la fecha de la fuente de datos. Si programas varias transferencias para la misma fecha, el Servicio de transferencia de datos de BigQuery reemplaza la partición para esa fecha específica con los datos más recientes. Las transferencias múltiples en el mismo día o los reabastecimientos en ejecución no generan datos duplicados y las particiones para otras fechas no se ven afectadas.

Períodos de actualización

El período de actualización se refiere a la cantidad de días durante los cuales una transferencia de datos recupera datos cuando se produce la transferencia. Por ejemplo, si el período de actualización es de tres días y se produce una transferencia diaria, el Servicio de transferencia de datos de BigQuery recuperará todos los datos de tu tabla de origen de los últimos tres días. En este ejemplo, cuando se produce una transferencia diaria, el Servicio de transferencia de datos de BigQuery crea una nueva partición de tabla de destino de BigQuery con una copia de los datos de la tabla de origen del día actual y, luego, activa automáticamente las ejecuciones de reabastecimiento para actualizar las particiones de la tabla de destino de BigQuery con los datos de la tabla de origen de los últimos dos días. Las ejecuciones de reabastecimiento activadas automáticamente reemplazarán o actualizarán de forma incremental tu tabla de destino de BigQuery, en base a si las actualizaciones incrementales son compatibles o no con el conector del Servicio de transferencia de datos de BigQuery.

Cuando ejecutas una transferencia de datos por primera vez, la transferencia de datos recupera todos los datos de origen disponibles dentro del período de actualización. Por ejemplo, si el período de actualización es de tres días y ejecutas la transferencia de datos por primera vez, el Servicio de transferencia de datos de BigQuery recupera todos los datos de origen en un plazo de tres días.

Las ventanas de actualización se asignan al campo de API TransferConfig.data_refresh_window_days.

Para recuperar datos fuera del período de actualización, como datos históricos, o para recuperar datos de interrupciones o brechas de transferencia, puedes iniciar o programar una ejecución de reabastecimiento.

Limitaciones

  • El tamaño máximo admitido de cada archivo para cada informe es de 1,710 GB.
  • La frecuencia mínima que puedes programar para una transferencia de datos es una vez cada 24 horas. De forma predeterminada, una transferencia de datos comienza en el momento en que creas la transferencia de datos. Sin embargo, puedes configurar la hora de inicio cuando configuras la transferencia.
  • El Servicio de transferencia de datos de BigQuery no admite transferencias incrementales durante una transferencia de datos de propietario del contenido de YouTube. Cuando especificas una fecha para una transferencia de datos, se transfieren todos los datos disponibles para esa fecha.

Antes de comenzar

Antes de crear una transferencia de datos de propietario del contenido de YouTube, haz lo siguiente:

Permisos necesarios

Asegúrate de que la persona que crea la transferencia de datos tenga los siguientes permisos requeridos:

  • BigQuery:

    • Los permisos bigquery.transfers.update para crear la transferencia de datos
    • Los permisos bigquery.datasets.get y bigquery.datasets.update en el conjunto de datos de destino

    La función predefinida de IAM bigquery.admin incluye los permisos bigquery.transfers.update, bigquery.datasets.update y bigquery.datasets.get. Para obtener más información sobre los roles de IAM en el Servicio de transferencia de datos de BigQuery, consulta Control de acceso.

  • YouTube:

    • Administrador de contenido de YouTube o propietario del contenido de YouTube.

    A un Administrador de contenido se le otorgan derechos a fin de administrar contenido de YouTube para un propietario del contenido. Un propietario del contenido es una cuenta general que es propietaria de uno o más canales de YouTube y de los videos en esos canales.

    • Hide revenue data está desmarcado en la configuración del informe Propietario del contenido de YouTube.

    Para transferir informes relacionados con los ingresos, la configuración de permisos de los informes de YouTube Hide revenue data debe estar desmarcada para el usuario que crea la transferencia.

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

Configura una transferencia de propietario del contenido de YouTube

La configuración de una transferencia de datos de propietario del contenido de YouTube requiere lo siguiente:

  • ID de propietario del contenido: proporcionado por YouTube. Cuando accedes a YouTube como propietario o administrador del contenido, tu ID aparece en la URL después de o=. Por ejemplo, si la URL es https://studio.youtube.com/owner/AbCDE_8FghIjK?o=AbCDE_8FghIjK, el ID del propietario del contenido es AbCDE_8FghIjK. Para seleccionar una cuenta diferente del Administrador de contenido, consulta Cómo acceder a una cuenta del Administrador de contenido o Cambiador de canales de YouTube. Para obtener más información sobre cómo crear y administrar tu cuenta de Administrador de contenido, consulta Cómo configurar la cuenta del Administrador de contenido.
  • Sufijo de tabla: un nombre fácil de usar para el canal que proporcionaste cuando configuraste la transferencia. El sufijo se adjunta al ID de trabajo para crear el nombre de la tabla, por ejemplo reportTypeId_suffix. El sufijo se usa para evitar que las transferencias de datos que se ejecutan por separado escriban en las mismas tablas. El sufijo de la tabla debe ser único en todas las transferencias que carguen datos en el mismo conjunto de datos, y el sufijo debe ser corto para minimizar la longitud del nombre de la tabla resultante.

Si usas la API de informes de YouTube y tienes trabajos de informes existentes, el Servicio de transferencia de datos de BigQuery carga tus datos de informes. Si no tienes trabajos de informes existentes, la configuración de la transferencia de datos habilita de forma automática los trabajos de informes de YouTube.

Para configurar una transferencia de datos de propietario del contenido de YouTube, sigue estos pasos:

Console

  1. Ve a la página de BigQuery en la consola de Google Cloud. Asegúrate de haber accedido a la cuenta como propietario o administrador de contenido.

    Ir a la página de BigQuery

  2. Haz clic en Transferencias.

  3. Haz clic en Crear transferencia.

  4. En la página Crear transferencia, sigue estos pasos:

    • En la sección Tipo de fuente (Source type), en Fuente (Source), selecciona Propietario del contenido de YouTube (YouTube Content Owner).

      Fuente de transferencia

    • En la sección Nombre de la configuración de transferencia (Transfer config name), en Nombre visible, ingresa el nombre de la transferencia de datos, como My Transfer. El nombre de la transferencia puede ser cualquier valor que te permita identificarla si es necesario hacerle modificaciones más tarde.

      Nombre de la transferencia

    • En la sección Opciones de programación, haz lo siguiente:

      • En Frecuencia de repetición, elige una opción para la frecuencia con la que se ejecutará la transferencia de datos. Si seleccionas Días, proporciona una hora válida en UTC.

        • Horas
        • Días
        • A pedido
      • Si corresponde, selecciona Comenzar ahora o Comenzar a una hora determinada y proporciona una fecha de inicio y una hora de ejecución.

    • En la sección Configuración de destino (Destination settings), en Conjunto de datos de destino (Destination dataset), selecciona el conjunto de datos que creaste para almacenar tus datos.

      Conjunto de datos de la transferencia

    • En la sección Detalles de fuente de datos (Data source details), haz lo siguiente:

      • En ID de propietario del contenido (Content owner ID), ingresa tu ID de propietario del contenido.
      • En Sufijo de tabla (Table suffix), ingresa un sufijo como MT.

        Detalles de la fuente del propietario del contenido de YouTube

    • En el menú Cuenta de servicio, selecciona una cuenta de servicio de las cuentas de servicio asociadas a tu proyecto de Google Cloud. Puedes asociar una cuenta de servicio con tu transferencia de datos en lugar de usar tus credenciales de usuario. Para obtener más información sobre el uso de cuentas de servicio con transferencias de datos, consulta Usa cuentas de servicio.

      • Si accediste con una identidad federada, se requiere una cuenta de servicio para crear una transferencia de datos. Si accediste con una Cuenta de Google, la cuenta de servicio para dicha transferencia de datos es opcional.
      • La cuenta de servicio debe tener los permisos necesarios.
    • De forma opcional, en la sección Opciones de notificación, haz lo siguiente:

      • Haz clic en el botón de activación para habilitar las notificaciones por correo electrónico. Si habilitas esta opción, el administrador de transferencias recibirá una notificación por correo electrónico cuando falle la ejecución de una transferencia de datos.
      • En Seleccionar un tema de Cloud Pub/Sub (Select a Cloud Pub/Sub topic), elige el nombre de tu tema o haz clic en Crear un tema (Create a topic). Con esta opción, se configuran las notificaciones de ejecución de Pub/Sub para tu transferencia.
  5. Haz clic en Guardar.

  6. Si es la primera vez que accedes a la cuenta, selecciona una y haz clic en Permitir. Selecciona la misma cuenta en la que eres el propietario o el administrador de contenido.

bq

Ingresa el comando bq mk y suministra la marca de creación de transferencias --transfer_config. También se requieren las siguientes marcas:

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

Marcas opcionales:

  • --service_account_name: especifica una cuenta de servicio que se usará para la autenticación de la transferencia del propietario del contenido en lugar de tu cuenta de usuario.
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

Donde:

  • project_id es el ID del proyecto.
  • dataset es el conjunto de datos de destino para la configuración de la transferencia.
  • name es el nombre visible de la configuración de transferencia. El nombre de la transferencia de datos puede ser cualquier valor que te permita identificarla si es necesario hacerle modificaciones más tarde.
  • parameters contiene los parámetros para la configuración de la transferencia creada en formato JSON. Por ejemplo: --params='{"param":"param_value"}' Para las transferencias de datos de propietarios del contenido de YouTube, debes proporcionar los parámetros content_owner_id y table_suffix. De manera opcional, puedes configurar el parámetro configure_jobs en true para permitir que el Servicio de transferencia de datos de BigQuery administre los trabajos de informes de YouTube por ti. Si hay informes de YouTube que no existen para tu cuenta, se crearán trabajos de informes nuevos a fin de habilitarlos.
  • data_source es la fuente de datos: youtube_content_owner.
  • service_account_name es el nombre de la cuenta de servicio que se usa para autenticar tu transferencia de datos. La cuenta de servicio debe ser propiedad del mismo project_id que se usa para crear la transferencia y debe tener todos los permisos necesarios.

También puedes proporcionar la marca --project_id para especificar un proyecto en particular. Si no se especifica --project_id, se usa el proyecto predeterminado.

Por ejemplo, el siguiente comando crea una transferencia de datos de propietario del contenido de YouTube llamada My Transfer con el ID de propietario del contenido AbCDE_8FghIjK, el sufijo de tabla MT y el conjunto de datos de destino mydataset. La transferencia de datos se crea en el proyecto predeterminado:

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

Usa el método projects.locations.transferConfigs.create y suministra una instancia del recurso TransferConfig.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

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

Consulta tus datos

Cuando tus datos se transfieren a BigQuery, se escriben en tablas particionadas por tiempo de transferencia. Para obtener más información, consulta Tablas particionadas.

Si consultas tus tablas directamente en lugar de usar las vistas generadas de manera automática, debes usar la seudocolumna _PARTITIONTIME en tu consulta. Para obtener más información, visita la página Consulta tablas particionadas.

Soluciona problemas de configuración de transferencia de propietario del contenido de YouTube

Si tienes problemas para configurar tu transferencia de datos, consulta la sección sobre los problemas de transferencias de YouTube en la página sobre cómo solucionar problemas de configuración de transferencias.