將 YouTube 內容擁有者資料載入 BigQuery
您可以使用 YouTube 內容擁有者專用的 BigQuery 資料移轉服務連接器,將資料從 YouTube 內容擁有者載入 BigQuery。您可以使用 BigQuery 資料移轉服務,排定週期性移轉工作,將 YouTube 內容擁有者的最新資料新增至 BigQuery。
支援的報表
YouTube 內容擁有者報表適用的 BigQuery 資料移轉服務支援下列報表選項:
報表選項 | 支援 |
---|---|
支援的 API 版本 | 2018 年 6 月 18 日 |
重複頻率 | UTC 時間每天 14:45 左右 您可以設定當天的時間 |
重新整理視窗 | 過去 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 內容擁有者資料移轉作業前,請先完成下列事項:
- 確認您已完成啟用 BigQuery 資料移轉服務的一切必要動作。
- 建立 BigQuery 資料集來儲存 YouTube 資料。
- 確認您擁有 YouTube 內容擁有者帳戶。YouTube 內容擁有者與 YouTube 頻道並不相同。 一般來說,只有在必須管理多個不同的頻道時,您才需要擁有 YouTube 內容擁有者帳戶。
- 如要為 Pub/Sub 設定移轉作業執行通知,您必須擁有
pubsub.topics.setIamPolicy
權限。如果您只想設定電子郵件通知,則不需要擁有 Pub/Sub 權限。詳情請參閱 BigQuery 資料移轉服務執行通知一文。
所需權限
請確認要建立資料移轉作業的人員具備下列必要權限:
BigQuery:
- 建立資料移轉作業的
bigquery.transfers.update
權限 - 目標資料集的
bigquery.datasets.get
和bigquery.datasets.update
權限
bigquery.admin
這個預先定義的 IAM 角色具備bigquery.transfers.update
、bigquery.datasets.update
和bigquery.datasets.get
權限。如要進一步瞭解 BigQuery 資料移轉服務中的身分與存取權管理角色,請參閱存取權控管。- 建立資料移轉作業的
YouTube:
- YouTube 內容管理員或 YouTube 內容擁有者。
內容管理員具有為內容擁有者管理 YouTube 內容的權限。內容擁有者是一種綜合帳戶,這個帳戶擁有一個或多個 YouTube 頻道,以及這些頻道中的影片。
- YouTube 內容擁有者報表設定中的
Hide revenue data
已取消勾選。
如要移轉收益相關報表,您必須為建立移轉作業的使用者取消勾選 YouTube 報表權限設定中的
Hide revenue data
。
設定 YouTube 內容擁有者轉移作業
如要設定 YouTube 內容擁有者資料移轉作業,您需要下列項目:
- 內容擁有者 ID:由 YouTube 提供。當您以內容擁有者或管理員身分登入 YouTube 時,您的 ID 會顯示在 URL 的
o=
後方。舉例來說,如果網址為https://studio.youtube.com/owner/AbCDE_8FghIjK?o=AbCDE_8FghIjK
,則內容擁有者 ID 為AbCDE_8FghIjK
。如要選取其他內容管理工具帳戶,請參閱「登入內容管理工具帳戶」或「YouTube 頻道切換器」。如要進一步瞭解如何建立及管理內容管理工具帳戶,請參閱「設定內容管理工具帳戶設定」。 - 資料表後置字串:您在設定移轉作業時為頻道提供的易記名稱。後置字串會附加在工作 ID 後方,形成資料表名稱,例如 reportTypeId_suffix。後置字串可用於防止不同的資料移轉作業寫入同一個資料表。所有將資料載入同個資料集的移轉工作,其資料表後置字串都不能重複,且後置字串應盡量簡短,避免產生過於冗長的資料表名稱。
如果您使用 YouTube Reporting API,並且已經有一些報表工作,BigQuery 資料移轉服務會載入您的報表資料。如果沒有現有的報表工作,設定資料移轉時,系統會自動啟用 YouTube 報表工作。
如要設定 YouTube 內容擁有者資料轉移作業:
主控台
前往 Google Cloud 控制台的「BigQuery」頁面。確認你已登入帳戶,且身分是內容擁有者或內容管理員。
按一下 [Transfers] (傳輸作業)。
按一下 [Create Transfer] (建立移轉作業)。
在「Create Transfer」(建立轉移作業) 頁面:
在「Source type」(來源類型) 區段中,針對「Source」(來源),選擇 [YouTube Content Owner] (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」(資料來源詳細資料) 區段:
- 於「Content Owner ID」(內容擁有者 ID) 部分輸入您的內容擁有者 ID。
- 在「Table Suffix」(資料表後置字串) 部分,輸入後置字串,例如
MT
。
在「Service Account」(服務帳戶) 選單,選取與貴組織 Google Cloud 專案相關聯的服務帳戶。您可以將服務帳戶與資料移轉作業建立關聯,這樣就不需要使用者憑證。如要進一步瞭解如何搭配使用服務帳戶與資料移轉作業,請參閱使用服務帳戶的相關說明。
如果使用聯合身分登入,您必須擁有服務帳戶才能建立資料移轉作業。如果以 Google 帳戶登入,則不一定要透過服務帳戶建立資料移轉作業。服務帳戶必須具備必要權限。
(選用) 在「Notification options」(通知選項) 區段中:
按一下 [儲存]。
如果您是第一次登入帳戶,請選取帳戶並點選「Allow」(允許)。請選取您是內容擁有者或內容管理員的帳戶。
bq
輸入 bq mk
指令並提供移轉建立標記 - --transfer_config
。還需加上以下旗標:
--data_source
--target_dataset
--display_name
--params
選用標記:
--service_account_name
:指定要用於內容擁有者轉移驗證的服務帳戶,而非使用者帳戶。
bq mk \ --transfer_config \ --project_id=project_id \ --target_dataset=dataset \ --display_name=name \ --params='parameters' \ --data_source=data_source \ --service_account_name=service_account_name
其中:
- project_id 是您的專案 ID。
- dataset 是移轉設定的目標資料集。
- name 是移轉設定的顯示名稱。資料移轉作業名稱可以是任意值,日後需要修改移轉作業時,能夠據此識別即可。
- parameters 含有已建立移轉設定的 JSON 格式參數,例如:
--params='{"param":"param_value"}'
。進行 YouTube 內容擁有者資料移轉時,您必須提供content_owner_id
和table_suffix
參數。您可以選擇將configure_jobs
參數設為true
,讓 BigQuery 資料移轉服務為您管理 YouTube 報表工作。如果有些 YouTube 報表不存在您的帳戶中,您必須建立新的報表工作才能啟用移轉功能。 - data_source 是資料來源:
youtube_content_owner
。 - service_account_name 是用於驗證資料移轉作業的服務帳戶名稱。服務帳戶應由用於建立轉移作業的
project_id
擁有,且應具備所有必要權限。
您還可以提供 --project_id
標記來指定特定專案。如果未指定 --project_id
,系統會採用預設專案。
舉例來說,下列指令會使用內容擁有者 ID AbCDE_8FghIjK
、資料表後置字串 MT
和目標資料集 mydataset
,建立名為 My Transfer
的 YouTube 內容擁有者資料移轉作業。資料移轉作業會在預設專案中建立:
bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"content_owner_id":"abCDE_8FghIjK","table_suffix":"MT","configure_jobs":"true"}' \
--data_source=youtube_content_owner
API
請使用 projects.locations.transferConfigs.create
方法,並提供 TransferConfig
資源的執行個體。
Java
在試行這個範例之前,請先按照 BigQuery 快速入門導覽課程:使用用戶端程式庫中的 Java 設定說明進行操作。詳情請參閱 BigQuery Java API 參考說明文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
查詢資料
資料移轉至 BigQuery 時,系統會將資料寫入擷取時間分區資料表。詳情請參閱分區資料表。
如果您要直接查詢資料表,而不要使用自動產生的檢視表,您必須在查詢中使用 _PARTITIONTIME
虛擬資料欄。詳情請參閱查詢分區資料表一文。
排解 YouTube 內容擁有者移轉設定問題
如果您無法順利設定資料移轉,請參閱排解移轉設定問題中的 YouTube 移轉問題一節。