Carregue dados de proprietário de conteúdo do YouTube para o BigQuery

Pode carregar dados do proprietário de conteúdo do YouTube para o BigQuery através do conetor do Serviço de transferência de dados do BigQuery para proprietário de conteúdo do YouTube. Com o Serviço de transferência de dados do BigQuery, pode agendar tarefas de transferência recorrentes que adicionam os seus dados mais recentes do proprietário de conteúdo do YouTube ao BigQuery.

Vista geral do conetor

O Serviço de transferência de dados do BigQuery para o conetor de proprietário de conteúdo do YouTube suporta as seguintes opções para a transferência de dados.

Opções de transferência de dados Apoio técnico
Relatórios suportados O conetor de proprietário do conteúdo do YouTube suporta a transferência de dados dos seguintes relatórios:

O conector de proprietário de conteúdo do YouTube suporta a versão da API de 18 de junho de 2018.

Para obter informações sobre como os relatórios de proprietário do conteúdo do YouTube são transformados em tabelas e vistas do BigQuery, consulte o artigo Transformação de relatórios de proprietário do conteúdo do YouTube.

Frequência de repetição O conetor de proprietário do conteúdo do YouTube suporta transferências de dados diárias.

Por predefinição, as transferências de dados são agendadas no momento em que são criadas. Pode configurar a hora da transferência de dados quando configurar a transferência de dados.
Período de atualização O conector de proprietário de conteúdo do YouTube obtém dados de proprietário de conteúdo do YouTube até 1 dia no momento em que a transferência de dados é executada.

Para mais informações, consulte o artigo Períodos de atualização.
Disponibilidade de dados de preenchimento Execute um repreenchimento de dados para obter dados fora da transferência de dados agendada. Pode obter dados até ao limite permitido pela política de retenção de dados na sua origem de dados.

Os relatórios do YouTube que contêm dados do histórico estão disponíveis durante 30 dias a partir da data de criação. (Os relatórios que contêm dados não históricos estão disponíveis durante 60 dias.) Para mais informações, consulte Dados do histórico.

Carregamento de dados de transferências de proprietários do conteúdo do YouTube

Quando transfere dados dos relatórios de proprietários de conteúdo do YouTube para o BigQuery, os dados são carregados em tabelas do BigQuery particionadas por data. A partição da tabela na qual os dados são carregados corresponde à data da origem de dados. Se agendar várias transferências para a mesma data, o Serviço de transferência de dados do BigQuery substitui a partição dessa data específica pelos dados mais recentes. As várias transferências no mesmo dia ou a execução de preenchimentos não resultam em dados duplicados, e as partições para outras datas não são afetadas.

Atualize as janelas

Um período de atualização é o número de dias que uma transferência de dados obtém dados quando ocorre uma transferência de dados. Por exemplo, se a janela de atualização for de três dias e ocorrer uma transferência diária, o Serviço de transferência de dados do BigQuery obtém todos os dados da tabela de origem dos últimos três dias. Neste exemplo, quando ocorre uma transferência diária, o Serviço de transferência de dados do BigQuery cria uma nova partição da tabela de destino do BigQuery com uma cópia dos dados da tabela de origem do dia atual e, em seguida, aciona automaticamente execuções de preenchimento para atualizar as partições da tabela de destino do BigQuery com os dados da tabela de origem dos últimos dois dias. As execuções de preenchimento automático acionadas automaticamente substituem ou atualizam incrementalmente a tabela de destino do BigQuery, consoante as atualizações incrementais sejam ou não suportadas no conector do Serviço de transferência de dados do BigQuery.

Quando executa uma transferência de dados pela primeira vez, a transferência de dados obtém todos os dados de origem disponíveis na janela de atualização. Por exemplo, se a janela de atualização for de três dias e executar a transferência de dados pela primeira vez, o Serviço de transferência de dados do BigQuery obtém todos os dados de origem no prazo de três dias.

Para obter dados fora do período de atualização, como dados do histórico, ou para recuperar dados de quaisquer indisponibilidades ou lacunas de transferência, pode iniciar ou agendar uma execução de preenchimento.

Limitações

  • O tamanho máximo de ficheiro suportado para cada relatório é de 1710 GB.
  • A frequência mínima para a qual pode agendar uma transferência de dados é uma vez a cada 24 horas. Por predefinição, uma transferência de dados começa no momento em que cria a transferência de dados. No entanto, pode configurar a hora de início da transferência quando configurar a transferência.
  • O Serviço de transferência de dados do BigQuery não suporta transferências de dados incrementais durante uma transferência de proprietário do conteúdo do YouTube. Quando especifica uma data para uma transferência de dados, todos os dados disponíveis para essa data são transferidos.

Antes de começar

Antes de criar uma transferência de dados de proprietário do conteúdo do YouTube:

Autorizações necessárias

Certifique-se de que a pessoa que cria a transferência de dados tem as seguintes autorizações necessárias:

  • BigQuery:

    • Autorizações bigquery.transfers.update para criar a Transferência de dados
    • Autorizações de bigquery.datasets.get e bigquery.datasets.update no conjunto de dados de destino

    A bigquery.adminfunção de IAM predefinida inclui as autorizações bigquery.transfers.update, bigquery.datasets.update e bigquery.datasets.get. Para mais informações sobre as funções do IAM no Serviço de transferência de dados do BigQuery, consulte o artigo Controlo de acesso.

  • YouTube:

    • Gestor de Conteúdos do YouTube ou proprietário do conteúdo do YouTube.

    Um gestor de conteúdos tem direitos concedidos para administrar conteúdo do YouTube para um proprietário do conteúdo. Um proprietário do conteúdo é uma conta principal que possui um ou mais canais do YouTube e os vídeos nesses canais.

    • Hide revenue data não estiver selecionada nas definições de relatórios do proprietário do conteúdo do YouTube.

    Para que os relatórios relacionados com a receita sejam transferidos, a definição de autorização dos relatórios do YouTube Hide revenue data deve ser desmarcada para o utilizador que está a criar a transferência.

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

Configure uma transferência de proprietário do conteúdo do YouTube

A configuração de uma transferência de dados de proprietário do conteúdo do YouTube requer:

  • ID do proprietário do conteúdo: fornecido pelo YouTube. Quando inicia sessão no YouTube como proprietário ou gestor de conteúdo, o seu ID aparece no URL após o=. Por exemplo, se o URL for https://studio.youtube.com/owner/AbCDE_8FghIjK?o=AbCDE_8FghIjK, o ID do proprietário do conteúdo é AbCDE_8FghIjK. Para selecionar uma conta do Gestor de Conteúdos diferente, consulte o artigo Inicie sessão numa conta do Gestor de Conteúdos ou o comutador de canais do YouTube. Para mais informações sobre como criar e gerir a sua conta do Gestor de Conteúdos, consulte o artigo Configure as definições da conta do Gestor de Conteúdos.
  • Sufixo da tabela: um nome fácil de usar para o canal fornecido por si quando configura a transferência. O sufixo é anexado ao ID da tarefa para criar o nome da tabela, por exemplo, reportTypeId_suffix. O sufixo é usado para impedir que transferências de dados separadas escrevam nas mesmas tabelas. O sufixo da tabela tem de ser exclusivo em todas as transferências que carregam dados no mesmo conjunto de dados e o sufixo deve ser curto para minimizar o comprimento do nome da tabela resultante.

Se usar a API YouTube Reporting e tiver tarefas de relatórios existentes, o Serviço de transferência de dados do BigQuery carrega os dados dos seus relatórios. Se não tiver tarefas de relatórios existentes, a configuração da transferência de dados ativa automaticamente as tarefas de relatórios do YouTube.

Para configurar uma transferência de dados de proprietário do conteúdo do YouTube:

Consola

  1. Aceda à página do BigQuery na Google Cloud consola. Certifique-se de que tem sessão iniciada na conta como proprietário do conteúdo ou gestor de conteúdos.

    Aceda à página do BigQuery

  2. Clique em Transferências.

  3. Clique em Criar transferência.

  4. Na página Criar transferência:

    • Na secção Tipo de origem, para Origem, escolha Proprietário do conteúdo do YouTube.

      Origem da transferência

    • Na secção Nome da configuração de transferência, em Nome a apresentar, introduza um nome para a transferência de dados, como My Transfer. O nome da transferência pode ser qualquer valor que lhe permita identificar a transferência se precisar de a modificar mais tarde.

      Nome da transferência

    • Na secção Opções de programação:

      • Para Frequência de repetição, escolha uma opção para a frequência de execução da transferência de dados. Se selecionar Dias, indique uma hora válida em UTC.
      • Se aplicável, selecione Começar agora ou Começar à hora definida e indique uma data de início e um tempo de execução.
    • Na secção Definições de destino, para Conjunto de dados de destino, escolha o conjunto de dados que criou para armazenar os seus dados.

      Conjunto de dados de transferência

    • Na secção Detalhes da origem de dados:

      • Em ID do proprietário do conteúdo, introduza o seu ID do proprietário do conteúdo.
      • Para Sufixo da tabela, introduza um sufixo, como MT.

      Detalhes da origem do proprietário do conteúdo do YouTube

    • No menu Conta de serviço, selecione uma conta de serviço nas contas de serviço associadas ao seu Google Cloud projeto. Pode associar uma conta de serviço à transferência de dados em vez de usar as suas credenciais de utilizador. Para mais informações sobre a utilização de contas de serviço com transferências de dados, consulte o artigo Utilize contas de serviço.

      Se iniciou sessão com uma identidade federada, é necessária uma conta de serviço para criar uma transferência de dados. Se iniciou sessão com uma Conta Google, uma conta de serviço para a transferência de dados é opcional. A conta de serviço tem de ter as autorizações necessárias.

    • (Opcional) Na secção Opções de notificação:

      • Clique no botão para ativar as notificações por email. Quando ativa esta opção, o administrador da transferência recebe uma notificação por email quando uma execução da transferência de dados falha.
      • Em Selecionar um tópico do Pub/Sub, escolha o nome do tópico ou clique em Criar um tópico. Esta opção configura notificações executadas pelo Pub/Sub para a transferência.
  5. Clique em Guardar.

  6. Se for a primeira vez que inicia sessão na conta, selecione uma conta e, em seguida, clique em Permitir. Selecione a mesma conta na qual é o proprietário de conteúdo ou o gestor de conteúdo.

bq

Introduza o comando bq mk e forneça a flag de criação de transferência — --transfer_config. Os seguintes indicadores também são obrigatórios:

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

Sinalizadores opcionais:

  • --service_account_name: especifica uma conta de serviço a usar para a autenticação de transferência do proprietário do conteúdo em vez da sua conta de utilizador.
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

Onde:

  • project_id é o ID do seu projeto.
  • dataset é o conjunto de dados de destino para a configuração de transferência.
  • name é o nome a apresentar da configuração de transferência. O nome da transferência de dados pode ser qualquer valor que lhe permita identificar a transferência se precisar de a modificar mais tarde.
  • parameters contém os parâmetros da configuração de transferência criada no formato JSON. Por exemplo: --params='{"param":"param_value"}'. Para transferências de dados de proprietários do conteúdo do YouTube, tem de fornecer os parâmetros content_owner_id e table_suffix. Opcionalmente, pode definir o parâmetro configure_jobs como true para permitir que o Serviço de transferência de dados do BigQuery faça a gestão das tarefas de relatórios do YouTube por si. Se existirem relatórios do YouTube que não existam para a sua conta, são criadas novas tarefas de relatórios para os ativar.
  • data_source é a origem de dados — youtube_content_owner.
  • service_account_name é o nome da conta de serviço usado para autenticar a transferência de dados. A conta de serviço deve ser propriedade do mesmo project_id usado para criar a transferência e deve ter todas as autorizações necessárias.

Também pode fornecer a flag --project_id para especificar um projeto em particular. Se --project_id não for especificado, é usado o projeto predefinido.

Por exemplo, o comando seguinte cria uma transferência de dados de proprietário do conteúdo do YouTube denominada My Transfer com o ID do proprietário do conteúdo AbCDE_8FghIjK, o sufixo da tabela MT e o conjunto de dados de destino mydataset. A transferência de dados é criada no projeto predefinido:

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

Use o método projects.locations.transferConfigs.create e forneça uma instância do recurso TransferConfig.

Java

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de 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());
    }
  }
}

Consultar os seus dados

Quando os dados são transferidos para o BigQuery, são gravados em tabelas particionadas por tempo de ingestão. Para mais informações, consulte o artigo Tabelas particionadas.

Se consultar as tabelas diretamente em vez de usar as vistas geradas automaticamente, tem de usar a pseudocoluna _PARTITIONTIME na consulta. Para mais informações, consulte o artigo Consultar tabelas particionadas.

Resolva problemas de configuração da transferência de proprietário do conteúdo do YouTube

Se tiver problemas com a configuração da transferência de dados, consulte a secção Problemas de transferência do YouTube em Resolução de problemas de configurações de transferência.