YouTube チャンネル転送

BigQuery Data Transfer Service for YouTube を使用すると、繰り返し実施する必要がある YouTube チャンネル レポートの読み込みジョブのスケジュールと管理を自動化できます。

サポートされるレポート

BigQuery Data Transfer Service for YouTube では現在、次のレポート オプションがサポートされています。

YouTube チャンネル レポートがどのように BigQuery テーブルとビューに変換されるかの詳細については、YouTube チャンネル レポートの変換をご覧ください。

レポート オプション サポート
サポート対象の API バージョン 2018 年 6 月 18 日
スケジュール

毎日、14:10 頃(UTC)

時刻を設定できます。

ウィンドウの更新

過去 1 日

構成不可

最大バックフィル期間

30 日

2018 年 7 月現在、履歴データを含む YouTube レポートは、生成後 30 日間利用できます(履歴データ以外のデータを含むレポートは、60 日間利用できます)。詳細については、YouTube Reporting API ドキュメントの履歴データをご覧ください。

始める前に

YouTube チャンネル転送を作成する前に、以下を行います。

必要な権限

転送を作成するユーザーに、次の必要な権限が付与されていることを確認します。

  • BigQuery:

    • bigquery.transfers.update(転送を作成する権限)
    • bigquery.datasets.update(抽出先データセットに対する権限)

    プロジェクト レベルの IAM 事前定義ロール bigquery.admin には、bigquery.transfers.update 権限と bigquery.datasets.update 権限が含まれています。BigQuery Data Transfer Service での IAM ロールの詳細については、アクセス制御のリファレンスをご覧ください。

  • YouTube: YouTube チャンネルのオーナー。

YouTube チャンネル転送の設定

YouTube チャンネル転送を設定するには以下が必要です。

  • テーブル サフィックス: 転送を設定するときにユーザーが指定するわかりやすいチャンネル名です。サフィックスがジョブ ID に追加され、テーブル名が作成されます(例: reportTypeId_suffix)。このサフィックスは、別の転送によって同じテーブルへの書き込みが行われないようにするために使用されます。テーブル サフィックスは、同じデータセットにデータを読み込むすべての転送で一意にする必要があり、また、生成されるテーブル名の長さを抑えるために短くする必要があります。

現在 YouTube Reporting API を使用していて、既存のレポート作成ジョブが存在する場合は、BigQuery Data Transfer Service によってユーザーのレポートデータが読み込まれます。既存のレポート作成ジョブがない場合は、転送を設定すると、YouTube レポート作成ジョブが自動的に有効になります。

YouTube チャンネル転送を作成するには:

Console

  1. Cloud Console の BigQuery ページに移動します。

    [BigQuery] ページに移動

  2. [転送] をクリックします。

  3. [転送を作成] をクリックします。

  4. [転送の作成] ページで、次の操作を行います。

    • [ソースタイプ] セクションの [ソース] で、[YouTube チャンネル] を選択します。

      転送のソース

    • [転送構成名] セクションの [表示名] に、転送名(例: My Transfer)を入力します。転送名には、後で修正が必要になった場合に簡単に識別できる任意の名前を使用できます。

      転送名

    • [スケジュール オプション] セクションで、[スケジュール] をデフォルト値([すぐに開始可能])のままにするか、[設定した時間に開始] をクリックします。

      • [繰り返しの頻度] で、転送を実行する頻度のオプションを選択します。
        • 毎日(デフォルト)
        • 毎週
        • 毎月
        • カスタム
        • オンデマンド
      • [開始日と実行時間] に、転送を開始する日付と時刻を入力します。[すぐに開始可能] を選択した場合、このオプションは無効になります。

        転送スケジュール

    • [転送先の設定] セクションの [宛先データセット] で、データを保存するために作成したデータセットを選択します。

      転送データセット

    • [データソースの詳細] セクションで、次の操作を行います。

      • [テーブル サフィックス] に、サフィックス(例: MT)を入力します。
      • BigQuery Data Transfer Service に YouTube レポート作成ジョブの管理を許可するには、[Configure jobs] チェックボックスをオンにします。現在アカウントに存在しない YouTube レポートがある場合は、新しいレポート作成ジョブが作成されてそのレポートが有効になります。

        YouTube チャンネル ソースの詳細

    • (省略可)[通知オプション] セクションで、次の操作を行います。

      • 切り替えボタンをクリックしてメール通知を有効にします。このオプションを有効にすると、転送の実行が失敗した場合、転送管理者にメール通知が送信されます。
      • [Pub/Sub トピックを選択してください] で、トピック名を選択するか、[トピックを作成する] をクリックします。このオプションで、Pub/Sub の転送実行通知を構成します。
  5. [保存] をクリックします。

bq

bq mk コマンドを入力して、転送作成フラグ --transfer_config を指定します。次のフラグも必要です。

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

ここで

  • project_id は、プロジェクト ID です。
  • dataset は、転送構成の抽出先データセットです。
  • name は、転送構成の表示名です。転送名には、後で修正が必要になった場合に簡単に識別できる任意の名前を使用できます。
  • parameters には、作成される転送構成のパラメータを JSON 形式で指定します。例: --params='{"param":"param_value"}'。YouTube チャンネルの転送では、table_suffix パラメータを指定する必要があります。必要に応じて、configure_jobs パラメータを true に設定して、BigQuery Data Transfer Service に YouTube のレポート作成ジョブの管理を許可します。ユーザーのチャンネルに現在存在しない YouTube レポートがある場合は、新しいレポート作成ジョブが作成され、そのレポートを使用可能にします。
  • data_source は、データソース(youtube_channel)です。

--project_id フラグを指定して、特定のプロジェクトを指定することもできます。--project_id を指定しない場合は、デフォルトのプロジェクトが使用されます。

たとえば、次のコマンドは、テーブル サフィックス MT とターゲット データセット mydataset を使用して、My Transfer という名前の YouTube チャンネル転送を作成します。この転送はデフォルトのプロジェクトで作成されます。

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

API

projects.locations.transferConfigs.create メソッドを使用して、TransferConfig リソースのインスタンスを指定します。

データのクエリ

データが BigQuery に転送されると、取り込み時間パーティション分割テーブルにそのデータが書き込まれます。詳細については、パーティション分割テーブルの概要をご覧ください。

自動生成されたビューを使用せずに、テーブルでクエリを直接実行する場合は、そのクエリで _PARTITIONTIME 疑似列を使用する必要があります。詳細については、パーティション分割テーブルのクエリをご覧ください。

YouTube チャンネル転送設定のトラブルシューティング

転送を設定する際に問題が発生した場合は、BigQuery Data Transfer Service 転送設定のトラブルシューティングにある YouTube の転送に関する問題をご覧ください。