將 YouTube 頻道資料載入 BigQuery
您可以使用 YouTube 頻道專用的 BigQuery 資料移轉服務連接器,將資料從 YouTube 頻道載入 BigQuery。您可以使用 BigQuery 資料移轉服務,安排週期性移轉工作,將 YouTube 頻道的最新資料新增至 BigQuery。
支援的報表
- 頻道報表 (會自動載入 BigQuery)
YouTube 頻道報表適用的 BigQuery 資料移轉服務支援下列報表選項:
報表選項 | 支援 |
---|---|
支援的 API 版本 | 2018 年 6 月 18 日 |
重複頻率 | 每天,大約在 14:10 (世界標準時間) 您可以設定時段 |
重新整理視窗 | 過去 1 天 無法設定 |
補充作業時間長度上限 | 30 天 自 2018 年 7 月起,包含歷來資料的 YouTube 報表在產生後可保留 30 天 (不含歷來資料的報表可保留 60 天)。詳情請參閱 YouTube Reporting API 說明文件中的歷來資料。 |
要瞭解 YouTube 頻道報表如何轉換成 BigQuery 資料表和檢視表,請參閱 YouTube 頻道報表轉換一文。
從 YouTube 頻道移轉作業擷取資料
從 YouTube 頻道將資料移轉至 BigQuery 時,資料會載入以日期為分區依據的 BigQuery 資料表。資料載入的資料表分區會對應至資料來源的日期。如果為同一天排定多項移轉作業,BigQuery 資料移轉服務會以最新資料覆寫該特定日期的資料分割。同一天內多次轉移資料或執行回填作業,不會導致資料重複,其他日期的分區也不會受到影響。重新整理視窗
更新期是指資料移轉作業在執行時,擷取資料的天數。舉例來說,如果重新整理時間範圍為三天,且每天都會進行移轉,BigQuery 資料移轉服務就會從來源資料表擷取過去三天的所有資料。在這個範例中,每天進行移轉時,BigQuery 資料移轉服務會建立新的 BigQuery 目的地資料表分割區,並複製當天的來源資料表資料,然後自動觸發回填執行作業,以更新過去兩天的來源資料表資料。系統自動觸發的回填作業會覆寫或增量更新 BigQuery 目的地資料表,具體做法取決於 BigQuery 資料移轉服務連接器是否支援增量更新。
首次執行資料移轉時,資料移轉作業會擷取重新整理視窗內的所有可用來源資料。舉例來說,如果重新整理時間範圍為三天,且您是第一次執行資料移轉作業,BigQuery 資料移轉服務會擷取三天內的所有來源資料。
重新整理視窗會對應至 TransferConfig.data_refresh_window_days
API 欄位。
如要擷取重新整理時間範圍外的資料 (例如歷來資料),或從任何轉移中斷或缺漏中復原資料,您可以啟動或排定補充作業。
限制
- 每個報表支援的檔案大小上限為 1710 GB。
- 資料移轉作業的最低排程頻率為每 24 小時一次。根據預設,資料移轉作業會在您建立移轉作業時啟動。不過,您可以在設定轉移作業時,設定資料轉移開始時間。
- 在 YouTube 內容擁有者移轉作業期間,BigQuery 資料移轉服務不支援增量資料移轉。指定資料移轉日期後,系統會移轉該日期可用的所有資料。
- 如果使用聯合身分登入,就無法建立 YouTube 頻道資料移轉作業。你只能使用 Google 帳戶登入時,才能建立 YouTube 頻道轉移作業。
事前準備
建立 YouTube 頻道資料移轉作業前,請先完成下列事項:
- 確認您已完成啟用 BigQuery 資料移轉服務的一切必要動作。
- 建立 BigQuery 資料集來儲存 YouTube 資料。
所需權限
如要建立 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 資料移轉服務執行通知一文。
bigquery.admin
預先定義的 IAM 角色包含建立 YouTube 頻道資料移轉作業所需的所有 BigQuery 權限。如要進一步瞭解 BigQuery 中的 IAM 角色,請參閱「預先定義的角色與權限」一文。
設定 YouTube 頻道轉移作業
如要設定 YouTube 頻道資料移轉作業,您需要下列項目:
- 資料表後置字串:您在設定資料移轉作業時為頻道提供的易記名稱。後置字串會附加在工作 ID 後方,形成資料表名稱,例如 reportTypeId_suffix。後置字串可用於防止不同的移轉作業寫入同一個資料表。所有將資料載入同個資料集的移轉工作,其資料表後置字串都不能重複,且後置字串應盡量簡短,避免產生過於冗長的資料表名稱。
如果您使用 YouTube Reporting API,並且已經有一些報表工作,BigQuery 資料移轉服務會載入您的報表資料。如果沒有現有的報表工作,設定移轉作業時,系統會自動啟用 YouTube 報表工作。
如要建立 YouTube 頻道資料移轉作業,請按照以下步驟操作:
主控台
前往 Google Cloud 控制台的「資料移轉」頁面。
按一下
「建立移轉作業」。在「Create Transfer」(建立轉移作業) 頁面:
在「Source type」(來源類型) 區段,針對「Source」(來源) 選取 [YouTube Channel] (YouTube 頻道)。
在「Transfer config name」(轉移設定名稱) 專區,針對「Display name」(顯示名稱) 輸入資料移轉作業的名稱,例如
My Transfer
。移轉作業名稱可以是任何能讓您辨識移轉作業的值,方便您日後在必要時進行修改。在「Schedule options」(排程選項) 專區:
- 在「Repeat frequency」(重複執行頻率) 部分,選擇多久執行一次資料移轉作業。如果選取「Days」(天),請按照世界標準時間提供有效的值。
- 視情況選取「Start now」(立即開始) 或「Start at set time」(在所設時間開始執行),並提供開始日期和執行時間。
在「Destination settings」(目的地設定) 區段中,針對「Destination dataset」(目的地資料集),選擇您建立來儲存資料的資料集。
在「Data source details」(資料來源詳細資料) 區段:
- 在「Table Suffix」(資料表後置字串) 中輸入後置字串,例如
MT
。 - 勾選「Configure jobs」(設定工作) 方塊,讓 BigQuery 為您管理 YouTube 報表工作。如果有些 YouTube 報表目前尚不存在於您的帳戶中,則系統會建立新的報表工作來啟用這些報表。
- 在「Table Suffix」(資料表後置字串) 中輸入後置字串,例如
(選用) 在「Notification options」(通知選項) 區段中:
按一下 [儲存]。
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 資料移轉服務為您管理 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 移轉問題一節。