arrow_back

使用 Cloud Dataprep 建立資料轉換 pipeline

登录 加入
Quick tip: Review the prerequisites before you run the lab
Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the student account, which may cause extra charges incurred to your personal account.
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

使用 Cloud Dataprep 建立資料轉換 pipeline

实验 1 小时 15 分钟 universal_currency_alt 5 积分 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

本實驗室是我們與合作夥伴 Alteryx 攜手開發而成。如果您在帳戶個人資料中選擇接收產品最新消息、公告和優惠資訊,您的個人資訊即有可能提供給本實驗室的贊助者 Alteryx。

GSP430

Google Cloud 自學實驗室標誌

總覽

Dataprep by Alteryx 是一項智慧型資料服務,能以圖形化的介面探索、清除與準備結構化與非結構化資料,方便您進行資料分析工作。在本實驗室中,您將瞭解如何透過 Dataprep 使用者介面 (UI) 建構資料轉換 pipeline。將結果輸出至 BigQuery。

本實驗室中使用的資料集,是已載入 BigQuery 的電子商務資料集,內含數百萬筆 Google Analytics 的 Google 商品網路商店工作階段記錄。在這個實驗室中,您將探索可用的欄位與列,並備妥資料以進行分析。

學習內容

本實驗室將說明如何執行下列工作:

  • 將 BigQuery 資料集連結至 Dataprep
  • 使用 Dataprep 瞭解資料集品質
  • 使用 Dataprep 建立資料轉換 pipeline
  • 執行轉換工作並將輸出內容傳送至 BigQuery

設定和需求

注意:您必須使用 Google Chrome,才能執行本實驗室。Dataprep 目前不支援其他瀏覽器。

建議您先參加「使用 Google Cloud 中的 Cloud Dataprep」實驗室,再進行此實驗室。

點選「Start Lab」按鈕前的須知事項

請詳閱以下操作說明。研究室活動會計時,而且中途無法暫停。點選「Start Lab」 後就會開始計時,讓您瞭解有多少時間可以使用 Google Cloud 資源。

您將在真正的雲端環境中完成實作研究室活動,而不是在模擬或示範環境。為達此目的,我們會提供新的暫時憑證,讓您用來在研究室活動期間登入及存取 Google Cloud。

如要完成這個研究室活動,請先確認:

  • 您可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意:請使用無痕模式或私密瀏覽視窗執行此研究室。這可以防止個人帳戶和學生帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成研究室活動了!別忘了,活動一開始將無法暫停。
注意:如果您擁有個人 Google Cloud 帳戶或專案,請勿用於本研究室,以免產生額外費用。

如何開始研究室及登入 Google Cloud 控制台

  1. 按一下「Start Lab」(開始研究室) 按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」窗格會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的暫時憑證
    • 完成這個實驗室所需的其他資訊 (如有)
  2. 點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,然後選取「在無痕式視窗中開啟連結」

    接著,實驗室會啟動相關資源並開啟另一個分頁,當中顯示「登入」頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab Details」窗格找到 Username

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab Details」窗格找到 Password

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要查看列出 Google Cloud 產品和服務的選單,請點選左上角的「導覽選單」「導覽選單」圖示

工作 1:在 Google Cloud 控制台中開啟 Dataprep

  1. 開啟「Cloud Shell」 並執行下列指令:
gcloud beta services identity create --service=dataprep.googleapis.com

畫面上應會顯示訊息,表示您已建立服務身分。

  1. 在 Cloud 控制台中,前往「導覽選單」,然後在「Analytics」下方選取「Dataprep」

  2. 開始使用 Dataprep 前,請勾選核取方塊,表示您同意《Google Dataprep 服務條款》,接著點選「接受」

  3. 勾選核取方塊,然後在出現與 Alteryx 共用帳戶資訊的提示時,點選「同意並繼續」

  4. 按一下「允許」,授予 Alteryx 專案的存取權。

  5. 選取 Qwiklabs 憑證進行登入,然後點選「允許」

  6. 勾選核取方塊並點選「接受」,表示同意《Alteryx 服務條款》。

  7. 如果出現「使用儲存空間 bucket 的預設位置」提示訊息,請點選「繼續」

工作 2:建立 BigQuery 資料集

雖然本實驗室的重點是 Cloud Dataprep,但您需要使用 BigQuery 做為將資料集擷取至 pipeline 的端點,以及 pipeline 完成後的輸出目的地。

Dataflow pipeline

  1. 在 Cloud 控制台中,依序選取「導覽選單」>「BigQuery」

  2. 接著,畫面中會顯示「歡迎使用 Cloud 控制台中的 BigQuery」訊息方塊,當中會列出快速入門指南的連結和使用者介面更新內容。

  3. 點選「完成」

  4. 在「Explorer」窗格中選取專案名稱

「Explorer」窗格

  1. 在左側窗格的「Explorer」專區下方,點選專案 ID 右側的「查看動作」圖示 (「查看動作」圖示),然後點選「建立資料集」
  • 在「資料集 ID」部分,輸入「ecommerce」。
  • 其他設定均保留預設值。
  1. 點選「建立資料集」。資料集會顯示在左側窗格的專案下方。

  2. 複製下列 SQL 查詢並貼入查詢編輯器:

#standardSQL CREATE OR REPLACE TABLE ecommerce.all_sessions_raw_dataprep OPTIONS( description="Raw data from analyst team to ingest into Cloud Dataprep" ) AS SELECT * FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE date = '20170801'; # limiting to one day of data 56k rows for this lab
  1. 點選「執行」。這項查詢執行時,會將公開原始電子商務資料集中的子集 (一天的工作階段資料量或大約 56,000 筆記錄) 複製到名為 all_sessions_raw_dataprep 的新資料表,這份資料表已新增至電子商務資料集中,方便您在 Cloud Dataprep 中探索和清除資料。

  2. 請確認 ecommerce 資料集中已有新的資料表:

工作 3:將 BigQuery 資料連結至 Cloud Dataprep

在這項工作中,您要將 Cloud Dataprep 連結至 BigQuery 資料來源。請在「Cloud Dataprep」頁面進行下列步驟:

  1. 點選右上角的「建立流程」

  2. 將「未命名的流程」重新命名,並指定以下詳細資料:

  • 在「流程名稱」部分,輸入「Ecommerce Analytics Pipeline
  • 在「流程說明」部分,輸入「Revenue reporting table
  1. 按一下「確定」

  2. 如果出現「What's a flow?」彈出式視窗,請選取「不要顯示任何輔助程式」

  3. 按一下資料集方塊中的「新增圖示」

醒目顯示的「新增圖示」

  1. 於「在流程中新增資料集」對話方塊中,選取「匯入資料集」

  2. 在左側窗格中,點選「BigQuery」

  3. 載入「電子商務」資料集後,點選該資料集。

醒目顯示的「電子商務資料集」

  1. 點選 all_sessions_raw_dataprep 資料表左側的「建立資料集」圖示 (+ 號)

  2. 按一下右下角的「匯入及新增至流程」

資料來源會自動更新。現在可以開始進行下一個工作。

工作 4:透過使用者介面探索電子商務資料欄位

在這項工作中,您將在 Cloud Dataprep 中載入並探索資料集範例。

  • 點選「方案圖示」,然後選取「編輯方案」

醒目顯示的「方案圖示」和「編輯方案」按鈕

Cloud Dataprep 會將資料集範例載入至轉換檢視畫面。這項程序可能需要幾秒鐘才能完成。現在您可以開始探索資料了!

請回答以下問題:

  • 資料集中有多少個資料欄?

資料集

答案:32 個資料欄。

  • 該範例包含多少個資料列?

資料集

答案:大約 12,000 個資料列。

  • channelGrouping 欄中最常見的值為何?
提示:將滑鼠游標懸停在 channelGrouping 欄標題下方的直方圖上,即可查看答案。

channelGrouping 欄

答案:參照連結網址。參照連結網站通常是指任何其他網站,當中包含您內容的連結。以下是其他網站瀏覽了電子商務網站中的產品,並與該產品連結的範例。相較於來自搜尋引擎的訪客,這是不同的獲取新客管道。

注意: 如要尋找特定資料欄,請按一下右上角的「查看資料欄」圖示 (「查看資料欄」圖示),然後在「查看資料欄」文字欄位中輸入資料欄名稱並點選該名稱。系統會自動捲動網格,在畫面上顯示所需資料欄。
  • 工作階段來源的最主要三個國家/地區為何?

國家/地區資料集

答案:美國、印度和英國

  • totalTransactionRevenue 下方的灰色長條代表什麼?

totalTransactionRevenue 長條

答案totalTransactionRevenue 欄位中的遺漏值。這表示此範例中有許多工作階段沒有產生收益。我們稍後會篩除這些值,讓最終資料表只包含客戶交易量和相關收益內容。

  • 在該資料範例中,timeOnSite (以秒為單位)、pageviewssessionQualityDim 的上限是多少?(提示:點選 下拉式選單箭頭 圖示開啟「timeOnSite」欄右側的選單,然後選取「資料欄詳細資料」)

timeOnSite 和網頁瀏覽資料集上限

timeOnSite 總覽分頁式頁面

如要關閉詳細資料視窗,請點選右上角的「關閉資料欄詳細資料」(X) 按鈕。接著重複執行上述步驟,即可查看 pageviewssessionQualityDim 欄的詳細資料。

「關閉」按鈕

答案

  • 最大網站停留時間:5,561 秒 (或 92 分鐘)
  • 最大網頁瀏覽量:155 頁
  • 最大工作階段品質維度數量:97 個
注意:實際數據可能會因 Cloud Dataprep 使用的資料範本不同而略有差異。 關於平均值的注意事項:在對資料欄進行如平均值等匯總作業時,需格外謹慎。首先,必須確保像 timeOnSite 這樣的欄位在每個工作階段中只會計算一次。我們會在後續實驗室中,探討訪客和工作階段資料的獨特性。
  • 查看 sessionQualityDim 的直方圖,其中資料值是否均勻分布?

sessionQualityDim 直方圖

答案:否,資料值未均勻分布,而是偏向較低的值 (低品質工作階段),這是正常的。

  • 資料集的日期範圍為何?提示:查看日期欄位

答案:2017 年 1 月 8 日(一天的資料)

  • productSKU 欄下方可能會顯示紅色長條。如有顯示的話,這代表什麼意思?

productSKU 欄

答案:紅色長條表示不相符的值。進行資料取樣時,Cloud Dataprep 會試著自動識別每個資料欄的類型。如果 productSKU 欄沒有顯示紅色長條,表示 Cloud Dataprep 正確識別了資料欄的類型 (也就是字串類型)。若有顯示紅色長條,則表示 Cloud Dataprep 在取樣過程中發現了足夠的數值,從而誤判該資料欄類型應為整數。此外,Cloud Dataprep 也偵測到部分非整數值,因此將這些值標示為不相符。事實上,productSKU 不一定是整數 (例如,正確的值可能是「GGOEGOCD078399」)。在本例中,Cloud Dataprep 誤判了資料欄類型:該資料欄應該是字串,而不是整數。我們會在本實驗室的後續部分修正這個問題。

  • 查看 v2ProductName 欄,其中熱門產品是哪些?

v2ProductName 欄

答案:Google Nest 產品

  • 查看 v2ProductCategory 欄,其中熱門產品類別是哪些?

v2ProductCategory 欄

答案

熱門產品類別是:

  • Google Nest

  • 提袋

  • (未設定) (這表示部分工作階段並未與產品類別建立關聯)

  • True 或 False?最常見的 productVariantCOLOR

答案:False。其實是 (未設定),因為大部分產品沒有子類 (80% 以上)

  • 類型欄中的兩個值是什麼?

答案PAGEEVENT

使用者在瀏覽網站時,可能會有多種不同的互動類型,包括在查看「網頁」或進行特殊「事件」(例如「點選產品」) 時記錄工作階段資料及其他類型。多個命中類型可以在同一時間觸發,因此通常需要篩選命中類型以免重複計數。我們稍後會在數據分析實驗室中,詳細探討這個部分。

  • productQuantity 的上限是多少?

答案:100 個 (實際數據可能有出入)

productQuantity 表示已新增至購物車的產品數量。數字 100 表示新增了 100 個單項產品。

  • 主要採用何種 currencyCode 進行交易?

答案USD (美元)

  • itemQuantityitemRevenue 是否包含有效值?

答案:否,這兩個資料欄包含的都是 NULL (或遺漏) 值。

注意:在探索之後,您可能會在部分資料集中發現重複或已淘汰的資料欄。稍後我們會在本實驗室中改用「productQuantity」和「productRevenue」欄位,並移除「itemQuantity」和「itemRevenue」欄位,以防報表使用者產生混淆。
  • 有效的 transactionId 值占了多少比例?在 ecommerce 資料集中這代表什麼?

transactionId 總覽頁面

  • 答案:大約 4.6% 的交易 ID 具備有效值,這代表網站的平均轉換率 (有 4.6% 的訪客進行交易)。
  • 有多少個 eCommerceAction_type 值,最常見的值為何?
提示:計算直方圖資料欄中不重複值的數量。

eCommerceAction_type 值

答案:我們在範例中發現七個值。最常見的值是 0,表示類型不明。這很合理,因為網站上大多數的網頁工作階段不會執行任何電子商務動作,就只是進行瀏覽。

  • 結構定義中,eCommerceAction_type = 6 代表什麼意義?
提示:搜尋 eCommerceAction 類型,並詳閱對應關係說明

答案:數字 6 對應的是「完成購買」。稍後我們會在本實驗室中擷取此對應關係,做為資料 pipeline 的一部分。

commerceAction.action_type 字串

工作 5:清除資料

在這項工作中,您將刪除未使用的資料欄、減少重複項目、建立計算結果欄位,以及篩除不必要的資料列來清除資料。

轉換 productSKU 欄資料類型

  1. 點選 下拉式選單箭頭 圖示開啟「productSKU」欄右側的選單,然後依序點選「變更類型」>「字串」,確認「productSKU」 資料欄類型為字串。

「productSKU」>「變更類型」>「字串」

  1. 點選「方案」圖示,確認已建立資料轉換 pipeline 的第一個步驟:

「方案」圖示

注意:如果看到方案已遭鎖定,請選取方案,然後點選編輯並取消勾選鎖定資料欄類型的選項。

刪除未使用的資料欄

如前面所說,我們會刪除 itemQuantityitemRevenue 欄,因為這兩個資料欄只包含空值,在本實驗室中不具參考價值。

  1. 開啟選單找到「itemQuantity」欄,然後點選「刪除」

醒目顯示的 itemQuantity 欄和「刪除選單」選項

  1. 重複執行上述步驟,即可刪除「itemRevenue」

簡化資料列

您的團隊已通知您,來源資料集中可能包含重複的工作階段值。現在就透過新的簡化步驟移除這些重複值。

  1. 按一下工具列中的「篩選資料列」圖示,然後點選「移除重複的資料列」

醒目顯示的「篩選資料列」下拉式選單和「移除重複的資料列」選項

  1. 按一下右側面板中的「新增」

  2. 查看目前已建立的方案,內容應如下所示:

四步驟方案

篩除沒有收益的工作階段

您的團隊想請您建立一份資料表,當中列出在網站中購買至少一件商品的所有使用者工作階段。請篩除收益為空值的使用者工作階段。

  1. 在「totalTransactionRevenue」欄下方,點選灰色的「遺漏值」長條。「totalTransactionRevenue」欄中包含遺漏值的所有資料列,便會以紅色醒目顯示。
  2. 在「建議」面板的「刪除資料列」中,按一下「新增」

「建議」面板

這個步驟會篩選資料集,只納入有收益的交易 (也就是「totalTransactionRevenue」不是空值)。

篩選網頁瀏覽的工作階段

資料集包含各種類型的工作階段,例如「網頁」(網頁瀏覽次數) 或「事件」(「瀏覽產品類別」或「新增至購物車」等觸發事件)。為避免重複計算工作階段中的網頁瀏覽次數,請新增篩選器,只納入與命中相關的網頁瀏覽。

  1. 在「類型」資料欄下方的直方圖中,點選「網頁」資料列。所有類型為「網頁」的資料列便會以綠色醒目顯示。

  2. 在「建議」面板的「保留資料列」中,按一下「新增」

工作 6:使資料更加豐富

結構定義說明文件中搜尋「visitId」並詳閱說明,以判斷這是所有使用者工作階段的 ID 或僅是特定使用者專屬的 ID。

  • visitId:這個工作階段的 ID。這個 ID 包含在一般儲存為 utmb 的 Cookie 中;是這位使用者專屬的 ID。如想查詢完全專屬 ID,請以 fullVisitorId 加上 visitId 的方式查詢。

我們可以看到,visitId 並非所有使用者的專屬 ID。因此,我們必須建立專屬 ID。

建立專屬工作階段 ID 的新資料欄

如您所見,資料集中沒有不重複的訪客工作階段的單一資料欄。串連「fullVisitorId」和「visitId」欄位,以建立每個工作階段的專屬 ID。

  1. 點選工具列中的「合併資料欄」圖示。

「合併資料欄」圖示

  1. 在「資料欄」部分,選取「fullVisitorId」和「visitId」。

  2. 在「分隔符」部分,輸入單一連字號字元:「-」。

  3. 在「新資料欄名稱」部分,輸入「unique_session_id」。

「合併資料欄」面板

  1. 按一下「新增」。

unique_session_id 現在是 fullVisitorIdvisitId 的組合。我們會在後續實驗室中,探索這個資料集內的每個資料列是在專屬工作階段層級(每個使用者工作階段一個資料列),還是在其他更精細的層級。

建立電子商務動作類型的案例說明

如前文所述,eCommerceAction_type 欄中的值是整數,對應該工作階段中執行的實際電子商務動作。例如 3 =「新增至購物車」或 5 =「結帳」。使用者不會立即察覺這項對應,因此我們建立計算結果欄位並帶入這些值的名稱。

  1. 按一下工具列中的「Conditions」,然後點選「單一資料欄的案例」

醒目顯示的「Conditions」下拉式選單和「單一資料欄的案例」選項

  1. 在「要評估的資料欄」部分,指定「eCommerceAction_type」。

  2. 點選「案例 (1)」旁的「新增」8 次,總共增加 9 個案例。

「Conditions」區段

  1. 在各個「案例」部分,指定下列對應值 (包括單引號字元):

比較

新值

0

'Unknown'

1

'Click through of product lists'

2

'Product detail views'

3

'Add product(s) to cart'

4

'Remove product(s) from cart'

5

'Check out'

6

'Completed purchase'

7

'Refund of purchase'

8

'Checkout options'

Condition 面板,顯示已評估資料欄的預覽畫面,其中已評估 eCommerceAction_type 欄

  1. 在「新資料欄名稱」部分,輸入「eCommerceAction_label」。其他欄位則保留預設值。

  2. 按一下「新增」。

調整 totalTransactionRevenue 欄中的值

結構定義中所述,「totalTransactionRevenue」欄包含的值是傳送至 Analytics 的值乘以 10^6 (例如 2.40 將會以 2400000 表示)。將該資料欄的內容除以 10^6,就能取得原始值。

  1. 點選 下拉式選單箭頭 圖示開啟「totalTransactionRevenue」欄右側的選單,然後依序選取「計算」>「自訂公式」

醒目顯示的「自訂公式」

  1. 在「公式」部分,輸入:DIVIDE(totalTransactionRevenue,1000000),然後在「新資料欄名稱」部分,輸入:totalTransactionRevenue1。請注意轉換的預覽畫面:

預覽畫面

  1. 按一下「新增」。
注意:totalTransactionRevenue1 欄下方可能會顯示紅色長條。點選 93c14cbf1f70a561.png 圖示開啟「totalTransactionRevenue1」欄右側的選單,然後點選「變更類型」>「十進位」
  1. 查看方案中的完整步驟清單:

完整方案

  1. 您現在可以點選「執行」

工作 7:在 BigQuery 中執行 Cloud Dataprep 工作

  1. 在「執行工作」頁面,選取「Dataflow + BigQuery」做為「執行環境」

  2. 在「發布動作」下方,點選「Create-CSV」右側的「編輯」

  3. 在以下頁面的左側選單中,選取「BigQuery」

  4. 選取「電子商務」資料集。

  5. 在右側面板中,點選「建立新資料表」

  6. 將資料表命名為「revenue_reporting」

  7. 選取「每次執行時捨棄資料表」

  8. 按一下「更新」

  9. 點選「執行」

完成 Cloud Dataprep 工作後,請重新整理 BigQuery 頁面,並確認輸出內容資料表「revenue_reporting」已存在。

注意: 如果工作失敗,請試著在一分鐘後按下瀏覽器的返回按鈕,然後以相同設定再次執行工作。

點選「Check my progress」確認目標已達成。 確認 Cloud Dataprep 工作是否將資料輸出至 BigQuery

恭喜!

您已成功探索電子商務資料集,並使用 Cloud Dataprep 建立資料轉換 pipeline。

後續步驟/瞭解詳情

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2024 年 2 月 11 日

實驗室上次測試日期:2023 年 9 月 20 日

Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

One lab at a time

Confirm to end all existing labs and start this one

Setup your console before you begin

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.