arrow_back

使用 Cloud Dataprep 建立資料轉換 pipeline

登录 加入
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

使用 Cloud Dataprep 建立資料轉換 pipeline

Lab 1 小时 15 分钟 universal_currency_alt 5 积分 show_chart 中级
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

本實驗室是我們與合作夥伴 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 Console」(開啟 Google 控制台) 按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的暫時憑證
    • 完成這個研究室所需的其他資訊 (如有)
  2. 按一下「Open Google Console」(開啟 Google 控制台)。接著,研究室會啟動相關資源並開啟另一個分頁,當中會顯示「Sign in」(登入) 頁面。

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

    注意事項:如果頁面中顯示了「Choose an account」(選擇帳戶) 對話方塊,請按一下「Use Another Account」(使用其他帳戶)
  3. 如有必要,請複製「Lab Details」(研究室詳細資料) 面板中的使用者名稱,然後貼到「Sign in」(登入) 對話方塊。按一下「Next」(下一步)

  4. 複製「Lab Details」(研究室詳細資料) 面板中的密碼,然後貼到「Welcome」(歡迎使用) 對話方塊。按一下「Next」(下一步)

    重要注意事項:請務必使用左側面板中的憑證,而非 Google Cloud 技能重點加強的憑證。 注意事項:如果使用自己的 Google Cloud 帳戶來進行這個研究室,可能會產生額外費用。
  5. 按過後續的所有頁面:

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

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 2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。