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 Data Transfer Service を有効にするために必要なすべての操作が完了していることを確認します。
  • YouTube データを格納する BigQuery データセットを作成します。
  • 従来の BigQuery ウェブ UI を使用して転送を作成する場合は、権限ウィンドウが表示されるように、bigquery.cloud.google.com からのポップアップを許可します。転送を成功させるには、BigQuery Data Transfer Service 権限に YouTube レポートデータの管理を許可する必要があります。
  • Pub/Sub の転送実行通知を設定する場合は、pubsub.topics.setIamPolicy 権限が必要です。メール通知を設定するだけの場合、Pub/Sub の権限は必要ありません。詳細については、BigQuery Data Transfer Service の実行通知をご覧ください。

必要な権限

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

  • BigQuery:

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

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

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

YouTube チャンネル転送の設定

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

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

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

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

Console

  1. Cloud Console の BigQuery ウェブ UI に移動します。

    Cloud Console に移動

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

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

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

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

      転送のソース

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

      転送名

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

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

        転送スケジュール

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

      転送データセット

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

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

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

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

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

        Cloud Pub/Sub トピック

  5. [保存] をクリックします。

従来の UI

  1. BigQuery ウェブ UI に移動します。

    BigQuery ウェブ UI に移動

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

  3. [Add Transfer] をクリックします。

  4. [New Transfer] ページで次の操作を行います。

    • [Source] で、[YouTube Channel] を選択します。
    • [Display name] に転送名(例: My Transfer)を入力します。
    • [Schedule] は、デフォルト値のままにするか、[Edit] をクリックして時刻を変更します。

      チャンネル転送のカスタム スケジュール

    • [Destination dataset] で、該当するデータセットを選択します。

    • [Channel page ID] に、チャンネルのページ ID を入力します。

    • [Table suffix] に、サフィックス(例: MT)を入力します。

    • BigQuery Data Transfer Service に YouTube レポート作成ジョブの管理を許可するには、[Configure jobs] をオンにします。ユーザーのチャンネルに現在存在しない YouTube レポートがある場合は、新しいレポート作成ジョブが作成され、そのレポートを使用可能にします。

      YouTube チャンネル転送

    • (省略可)[Advanced] セクションを展開し、転送の実行通知を構成します。

      • [Pub/Sub topic] に、トピック名(例: projects/myproject/topics/mytopic)を入力します。
      • [Send email notifications] をオンにして、転送実行失敗のメール通知を許可します。
      • 転送を設定するときは [Disabled] をオンにしないでください。既存の転送を無効にするには、転送の操作をご覧ください。

        Pub/Sub トピック

  5. [Add] をクリックします。

  6. プロンプトが表示されたら、[Allow] をクリックし、YouTube レポートデータの管理権限を BigQuery Data Transfer Service に付与します。権限ウィンドウが表示されるように、bigquery.cloud.google.com からのポップアップを許可する必要があります。ユーザーが複数のアカウントを持っている場合は、アカウントの選択も求められます。

    転送の許可

CLI

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 チャンネル転送では、page_id パラメータと table_suffix パラメータを指定する必要があります。必要に応じて、configure_jobs パラメータを true に設定して、BigQuery Data Transfer Service に YouTube のレポート作成ジョブの管理を許可します。ユーザーのチャンネルに現在存在しない YouTube レポートがある場合は、新しいレポート作成ジョブが作成され、そのレポートを使用可能にします。
  • data_source は、データソース youtube_channel です。

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

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

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

API

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

データのクエリ

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

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

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

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