YouTube チャンネル転送
BigQuery Data Transfer Service for YouTube コネクタを使用すると、YouTube チャンネル レポートの定期的な読み込みジョブのスケジュール設定と管理を自動化できます。
サポートされるレポート
- チャンネル レポート(BigQuery に自動的に読み込まれる)
BigQuery Data Transfer Service for YouTube チャンネル レポートでは現在、次のレポート オプションがサポートされています。
レポート オプション | サポート |
---|---|
サポート対象の API バージョン | 2018 年 6 月 18 日 |
繰り返しの頻度 | 毎日、14:10 頃(UTC) 時刻を設定できます。 |
更新ウィンドウ | 過去 1 日 構成不可 |
最大バックフィル期間 | 30 日 2018 年 7 月現在、履歴データを含む YouTube レポートは、生成後 30 日間利用できます(履歴データ以外のデータを含むレポートは、60 日間利用できます)。詳細については、YouTube Reporting API ドキュメントの履歴データをご覧ください。 |
YouTube チャンネル レポートがどのように BigQuery テーブルとビューに変換されるかの詳細については、YouTube チャンネル レポートの変換をご覧ください。
YouTube チャンネル転送によるデータ取り込み
YouTube チャンネルから BigQuery にデータを転送すると、データは日付でパーティション分割された BigQuery テーブルに読み込まれます。データが読み込まれるテーブル パーティションは、データソースの日付に対応します。同じ日付の複数の転送をスケジュールすると、BigQuery Data Transfer Service により、対象の日付のパーティションが最新のデータで上書きされます。同じ日に複数回の転送やバックフィルを実行しても、データは重複せず、他の日付のパーティションに対する影響はありません。更新ウィンドウ
更新ウィンドウとは、データ転送が行われたときにデータ転送でデータが取得される日数です。たとえば、更新ウィンドウが 3 日であり、毎日転送が行われる場合、BigQuery Data Transfer Service は過去 3 日間のソーステーブルからすべてのデータを取得します。この例では、毎日転送が発生すると、BigQuery Data Transfer Service は、当日のソーステーブルのデータのコピーを含む新しい BigQuery 宛先テーブル パーティションを作成し、バックフィル実行を自動的にトリガーして、過去 2 日間のソーステーブルのデータで BigQuery 宛先テーブル パーティションを更新します。自動トリガーされたバックフィル実行は、BigQuery Data Transfer Service コネクタで増分更新がサポートされているかどうかに応じて、BigQuery の宛先テーブルを上書きするか、増分更新します。
データ転送を初めて実行する際に、更新ウィンドウ内で利用可能なすべてのソースデータが取得されます。たとえば、更新ウィンドウが 3 日で、データ転送を初めて実行する際は、BigQuery Data Transfer Service によって 3 日以内のすべてのソースデータが取得されます。
更新ウィンドウは TransferConfig.data_refresh_window_days
API フィールドにマッピングされます。
更新ウィンドウの期間外のデータ(過去のデータなど)を取得する場合や、転送の停止やギャップからデータを復元する場合は、バックフィル実行を開始またはスケジュールできます。
制限事項
- 各レポートでサポートされている最大ファイルサイズは 1,710 GB です。
- データ転送をスケジュールできる最短の頻度は 24 時間に 1 回です。デフォルトでは、転送を作成したときにデータ転送が開始されます。ただし、転送を構成するときに、データ転送の開始時間を構成できます。
- BigQuery Data Transfer Service は、YouTube コンテンツ所有者の転送中の増分データの転送をサポートしていません。データ転送の日付を指定すると、その日付で使用できるすべてのデータが転送されます。
- フェデレーション ID でログインしている場合は、YouTube チャンネル データ転送を作成できません。YouTube チャンネル転送を作成できるのは、Google アカウントでログインしている場合のみです。
始める前に
YouTube チャンネル データ転送を作成する前に、以下を行います。
- BigQuery Data Transfer Service を有効にするために必要なすべての操作が完了していることを確認します。
- YouTube データを格納する BigQuery データセットを作成します。
必要な権限
YouTube チャンネル データ転送を作成するには、以下が必要です。
- YouTube: YouTube チャンネルの所有権
BigQuery: BigQuery における次の Identity and Access Management(IAM)権限:
- 転送を作成するための
bigquery.transfers.update
。 - ターゲット データセットに対する
bigquery.datasets.get
とbigquery.datasets.update
。 - Pub/Sub の転送実行通知を設定する場合は、
pubsub.topics.setIamPolicy
権限が必要です。メール通知を設定するだけの場合、Pub/Sub の権限は必要ありません。詳細については、BigQuery Data Transfer Service の実行通知をご覧ください。
- 転送を作成するための
IAM 事前定義ロール bigquery.admin
には、YouTube チャンネル データ転送を作成するために必要なすべての BigQuery の権限が含まれています。BigQuery での IAM のロールの詳細については、事前定義ロールと権限をご覧ください。
YouTube チャンネル転送を設定する
YouTube チャンネル データ転送を設定するには以下が必要です。
- テーブル サフィックス: データ転送を設定するときにユーザーが指定するユーザー フレンドリーなチャンネル名です。サフィックスがジョブ ID に追加され、テーブル名が作成されます(例: reportTypeId_suffix)。このサフィックスは、別の転送によって同じテーブルへの書き込みが行われないようにするために使用されます。テーブル サフィックスは、同じデータセットにデータを読み込むすべての転送で一意にする必要があり、また、生成されるテーブル名の長さを抑えるために短くする必要があります。
YouTube Reporting API を使用しており、既存のレポート作成ジョブが存在する場合は、BigQuery Data Transfer Service によってユーザーのレポートデータが読み込まれます。既存のレポート作成ジョブがない場合は、転送を設定すると、YouTube レポート作成ジョブが自動的に有効になります。
YouTube チャンネル データ転送を作成するには:
コンソール
Google Cloud コンソールの [データ転送] ページに移動します。
[
転送を作成] をクリックします。[転送の作成] ページで、次の操作を行います。
[ソースタイプ] セクションの [ソース] で、[YouTube チャンネル] を選択します。
[転送構成名] セクションの [表示名] に、データ転送の名前(例:
My Transfer
)を入力します。転送名には、後で修正が必要になった場合に識別できる任意の名前を使用できます。[スケジュール オプション] セクションで:
[繰り返しの頻度] で、データ転送を実行する頻度のオプションを選択します。[日数] を選択した場合は、有効な時刻を UTC で入力します。
- 時間
- 日数
- オンデマンド
必要に応じて、[すぐに開始可能] を選択するか、[設定した時刻に開始] を選択して開始日と実行時間を指定します。
[転送先の設定] セクションの [宛先データセット] で、データを保存するために作成したデータセットを選択します。
[データソースの詳細] セクションで、次の操作を行います。
- [テーブル サフィックス] に、サフィックス(例:
MT
)を入力します。 BigQuery に YouTube レポート作成ジョブの管理を許可するには、[ジョブを設定する] チェックボックスをオンにします。まだアカウントに存在しない YouTube レポートがある場合は、新しいレポート作成ジョブが作成されて対象のレポートが有効になります。
- [テーブル サフィックス] に、サフィックス(例:
(省略可)[通知オプション] セクションで、次の操作を行います。
[保存] をクリックします。
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
リソースのインスタンスを指定します。
Java
このサンプルを試す前に、クライアント ライブラリを使用した BigQuery クイックスタートにある Java の設定手順を完了してください。詳細については、BigQuery Java API のリファレンス ドキュメントをご覧ください。
BigQuery に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証を設定するをご覧ください。
データに対するクエリを実行する
データが BigQuery に転送されると、取り込み時間パーティション分割テーブルにそのデータが書き込まれます。詳細については、パーティション分割テーブルの概要をご覧ください。
自動生成されたビューを使用せずに、テーブルでクエリを直接実行する場合は、そのクエリで _PARTITIONTIME
疑似列を使用する必要があります。詳細については、パーティション分割テーブルのクエリをご覧ください。
YouTube チャンネル転送の設定に関するトラブルシューティング
データ転送を設定する際に問題が発生した場合は、転送構成のトラブルシューティングにある YouTube の転送に関する問題をご覧ください。