Transferencias de canales de YouTube

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

Informes compatibles

El Servicio de transferencia de datos de BigQuery para los informes de canal de YouTube es compatible con 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

Diaria, aproximadamente a las 14:10 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 están disponibles durante 60 días). Para obtener más información, consulta la sección de datos históricos en la documentación de la API de informes de YouTube.

Para obtener información sobre cómo los informes de canales de YouTube se transforman en tablas y vistas de BigQuery, consulta la página sobre las transformaciones de informes de canales de YouTube.

Transferencia de datos desde transferencias de canal de YouTube

Cuando transfieres datos de un canal 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. 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.
  • No puedes crear una transferencia de datos de canal de YouTube si accediste como una identidad federada. Solo puedes crear una transferencia de canal de YouTube con una Cuenta de Google.

Antes de comenzar

Antes de crear una transferencia de datos de canal de YouTube, haz lo siguiente:

Permisos necesarios

Para crear una transferencia de datos de canal de YouTube se requiere lo siguiente:

  • YouTube: Propiedad del canal de YouTube
  • BigQuery: Los siguientes permisos de Identity and Access Management (IAM) en BigQuery:

    • bigquery.transfers.update para crear la transferencia
    • bigquery.datasets.get y bigquery.datasets.update en el conjunto de datos de destino
    • Si quieres configurar las notificaciones de ejecución de transferencias para Pub/Sub, debes tener los permisos pubsub.topics.setIamPolicy. Los permisos de Pub/Sub no son necesarios si solo configuras las notificaciones por correo electrónico. Para obtener más información, consulta la sección sobre notificaciones de ejecución del Servicio de transferencia de datos de BigQuery.

El rol de IAM predefinido bigquery.admin incluye todos los permisos de BigQuery que necesitas para crear una transferencia de datos de canal de YouTube. Para obtener más información sobre las funciones de IAM en BigQuery, consulta Funciones y permisos predefinidos.

Configura una transferencia de canal de YouTube

Para configurar una transferencia de datos de canal de YouTube se requiere un:

  • Sufijo de tabla: un nombre fácil de usar para el canal que proporcionaste cuando configuraste la transferencia de datos. 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 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 habilita de forma automática los trabajos de informes de YouTube.

Para crear una transferencia de datos de canal de YouTube, sigue estos pasos:

Console

  1. Ve a la página Transferencia de datos en la consola de Google Cloud.

    Ir a Transferencias de datos

  2. Haz clic en Crear transferencia.

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

    • En la sección Tipo de fuente (Source Type), en Fuente (Source), elige Canal de YouTube (YouTube Channel).

      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):

      • En Sufijo de tabla (Table suffix), ingresa un sufijo como MT.
      • Marca la casilla Configurar trabajos para permitir que BigQuery administre los trabajos de informes de YouTube por ti. Si hay informes de YouTube que, por el momento, no existen para tu cuenta, se crearán trabajos de informes nuevos a fin de habilitarlos.

        Detalles de la fuente del canal de YouTube

    • 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. Cuando habilitas esta opción, el administrador de transferencias recibe una notificación por correo electrónico cuando falla una ejecución de transferencia.
      • 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). Esta opción configura las notificaciones de ejecución de Pub/Sub para tu transferencia de datos.
  4. Haz clic en Guardar.

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
bq mk \
--transfer_config \
--project_id=project_id \
--target_dataset=dataset \
--display_name=name \
--params='parameters' \
--data_source=data_source

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 canal de YouTube, debes proporcionar el parámetro 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 actualmente para tu canal, se crearán trabajos de informes nuevos para habilitarlos.
  • data_source es la fuente de datos: youtube_channel.

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, con el siguiente comando, se crea una transferencia de datos de canales de YouTube llamada My Transfer con 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='{"table_suffix":"MT","configure_jobs":"true"}' \
--data_source=youtube_channel

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

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 Introducción a tablas con particiones.

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 canal 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.