BigQuery Data Transfer Service for YouTube を使用すると、繰り返し実施する必要がある YouTube チャンネル レポートの読み込みジョブのスケジュールと管理を自動化できます。
サポートされるレポート
BigQuery Data Transfer Service for YouTube では現在、次のレポート オプションがサポートされています。
- チャンネル レポート(BigQuery に自動的に読み込まれる)
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 データセットを作成します。
- 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 での IAM ロールの詳細については、アクセス制御のリファレンスをご覧ください。YouTube: YouTube チャンネルのオーナー。
YouTube チャンネル転送の設定
YouTube チャンネル転送を設定するには以下が必要です。
- テーブル サフィックス: 転送を設定するときにユーザーが指定するわかりやすいチャンネル名です。サフィックスがジョブ ID に追加され、テーブル名が作成されます(例: reportTypeId_suffix)。このサフィックスは、別の転送によって同じテーブルへの書き込みが行われないようにするために使用されます。テーブル サフィックスは、同じデータセットにデータを読み込むすべての転送で一意にする必要があり、また、生成されるテーブル名の長さを抑えるために短くする必要があります。
現在 YouTube Reporting API を使用していて、既存のレポート作成ジョブが存在する場合は、BigQuery Data Transfer Service によってユーザーのレポートデータが読み込まれます。既存のレポート作成ジョブがない場合は、転送を設定すると、YouTube レポート作成ジョブが自動的に有効になります。
YouTube チャンネル転送を作成するには:
Console
Cloud Console の BigQuery ページに移動します。
[転送] をクリックします。
[転送を作成] をクリックします。
[転送の作成] ページで、次の操作を行います。
[ソースタイプ] セクションの [ソース] で、[YouTube チャンネル] を選択します。
[転送構成名] セクションの [表示名] に、転送名(例:
My Transfer
)を入力します。転送名には、後で修正が必要になった場合に簡単に識別できる任意の名前を使用できます。[スケジュール オプション] セクションで、[スケジュール] をデフォルト値([すぐに開始可能])のままにするか、[設定した時間に開始] をクリックします。
- [繰り返しの頻度] で、転送を実行する頻度のオプションを選択します。
- 毎日(デフォルト)
- 毎週
- 毎月
- カスタム
- オンデマンド
[開始日と実行時間] に、転送を開始する日付と時刻を入力します。[すぐに開始可能] を選択した場合、このオプションは無効になります。
- [繰り返しの頻度] で、転送を実行する頻度のオプションを選択します。
[転送先の設定] セクションの [宛先データセット] で、データを保存するために作成したデータセットを選択します。
[データソースの詳細] セクションで、次の操作を行います。
- [テーブル サフィックス] に、サフィックス(例:
MT
)を入力します。 BigQuery Data Transfer Service に YouTube レポート作成ジョブの管理を許可するには、[Configure jobs] チェックボックスをオンにします。現在アカウントに存在しない 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 に転送されると、取り込み時間パーティション分割テーブルにそのデータが書き込まれます。詳細については、パーティション分割テーブルの概要をご覧ください。
自動生成されたビューを使用せずに、テーブルでクエリを直接実行する場合は、そのクエリで _PARTITIONTIME
疑似列を使用する必要があります。詳細については、パーティション分割テーブルのクエリをご覧ください。
YouTube チャンネル転送設定のトラブルシューティング
転送を設定する際に問題が発生した場合は、転送構成のトラブルシューティングにある YouTube の転送に関する問題をご覧ください。