建立含參數的資料集

有時候,您可能需要對同時儲存在來源中的資料執行相同的轉換。在這類情況下,您可以將資料的輸入路徑參數化,以相同的方式處理所有相關資料。

當您在 Cloud Dataprep by TRIFACTA® 中建立含有參數的資料集時,您可以將輸入路徑的一部分改成參數。假設您有下列檔案,並想透過參數化資料集擷取:

//source/user/me/datasets/month01/2017-01-31-file.csv
//source/user/me/datasets/month02/2017-02-28-file.csv
//source/user/me/datasets/month03/2017-03-31-file.csv
//source/user/me/datasets/month04/2017-04-30-file.csv
//source/user/me/datasets/month05/2017-05-31-file.csv
//source/user/me/datasets/month06/2017-06-30-file.csv
//source/user/me/datasets/month07/2017-07-31-file.csv
//source/user/me/datasets/month08/2017-08-31-file.csv
//source/user/me/datasets/month09/2017-09-30-file.csv
//source/user/me/datasets/month10/2017-10-31-file.csv
//source/user/me/datasets/month11/2017-11-30-file.csv
//source/user/me/datasets/month12/2017-12-31-file.csv

指向上述所有檔案的參數化參照會如下所示:

//source/user/me/datasets/month##/YYYY-MM-DD-file.csv

透過應用程式,您可以指定要針對哪些參數比對所有值:

  • ##:您可以將這類值改成萬用字元或特定模式 (後者較佳)。
  • YYYY-MM-DD:您可以將這類值改成已設定格式的日期時間參數。

編排資料結構

含參數資料集中的每個檔案都應有相同的結構:

  • 檔案格式要一致
  • 資料欄順序、命名方式和資料類型要一致
  • 每個資料欄中的資料格式應一致。
    • 例如,如果來源系統中不同檔案的日期格式有所差異,您和您的方案可能無法處理這些差異,且輸出中可能會缺少資料。

附註:建立含參數的資料集時,請避免讓當中的個別檔案或資料表具有不同的結構定義。請分別匯入這些來源,並在應用程式中進行修正,然後再對資料集執行聯集作業;或者,請在來源應用程式中進行修正,將結構定義標準化。

使用含參數的資料集時,如果您預期基礎資料集之間不會完全一致,建議您執行下列步驟。

  1. 重新建立含參數的資料集,但在匯入步驟中取消選取 [Detect Structure] (偵測結構) 選項。
  2. 在「Transformer」(轉換器) 頁面中,使用「完整掃描」收集隨機樣本。這個步驟會嘗試從多個個別檔案收集資料,並標示出資料中的問題。

    提示:如果您認為特定檔案或資料列 (例如特定日期的資料列) 有問題,可以透過相關檔案建立靜態資料集。

步驟

附註:比對大型目錄中檔案路徑模式的速度可能較慢。請盡可能避免使用多個模式來比對檔案模式,或掃描包含大量檔案的目錄。如要提高比對速度,請避免在頂層目錄中使用萬用字元,所用的萬用字元和模式也要盡可能明確。

附註:由於 Cloud Dataflow 的限制,因此如果您對含有超過 100 個檔案的參數化資料集執行工作,輸入路徑資料就必須經過壓縮,導致在 Cloud Dataflow 主控台中出現無法讀取的位置值。如果資料集的來源為超過 6000 個檔案,對這類資料集執行的工作可能會失敗。

  1. 在「Import Data」(匯入資料) 頁面中進行瀏覽,找出一個您要參數化的檔案或資料表。
  2. 按一下 [Create Dataset with Parameters] (建立含參數的資料集)。


    圖:建立含參數的資料集

  3. 在「Define Parameterized Path」(定義參數化路徑) 中選取一段文字,接著選取下列其中一個選項:
    1. 新增日期時間參數
    2. 新增變數
    3. 新增模式參數:萬用字元和模式
    4. 如要進一步瞭解相關限制,請參閱參數化總覽
    5. 如要瀏覽至其他地方,請選取 [Browse] (瀏覽)。
  4. 指定參數,然後按一下 [Save] (儲存)。
  5. 按一下 [Update matches] (更新比對結果),確認系統比對出所有的所需資料集。

    附註:如果比對出的資料集數量超出預期,請檢查參數。

  6. 按一下 [Create] (建立)。

  7. 參數化資料集現已載入。請參閱匯入資料頁面一文。

系統提供一個包括含參數資料集的流程,當中有其他參數管理選項。請參閱流程檢視頁面一文。

新增日期時間參數

日期時間參數需要下列元素:

格式:您必須使用英數字元模式指定相符日期和/或時間值的格式。如要查看範例格式清單,請按一下 [Browse Date/Timestamp Patterns] (瀏覽日期/時間戳記模式)

您也使用模式來建立自訂的格式。例如,下列規則運算式模式符合模式如 MM.DD.YYYY

/[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9][0-9]/


日期範圍:
使用這類控制項來指定相符日期的範圍。

附註:日期範圍參數有分大小寫。

時區:預設時區為應用程式主機所在的時區。如要變更目前的時區,請按一下 [Change] (變更)

如需支援的時區值清單,請參閱支援的時區值一文。

擴充日期時間參數

參數化資料集僅能支援一個日期時間參數。如果在路徑中的多個部分含有日期資訊,您可以為每個部分建立日期時間的元素。

步驟:

  1. 在「Define Parameterized Path」(定義參數化路徑) 中選取要用來建立第一個部分的一段文字。
  2. 為此元素建立日期時間參數。請使用適合此部分的格式。例如,如果您選取的部分為四位數的年份,則日期格是的值應為:YYYY
  3. 然後,選擇第二個元素,並按一下 [Extend Datetime Parameter] (擴充日期時間參數) 圖示。


    圖:按一下 [Extend Datetime Parameter] (擴充日期時間參數) 圖示,為日期時間參數建立額外的部分。

  4. 在對話方塊中,您可以指定日期時間參數中第二個元素的日期格示。比對會根據兩個元素及其間的靜態文字來進行。

新增變數

變數參數是可插入路徑的鍵/值組合。

  • 系統會在執行時套用預設值,但您也可以選擇覆寫這個值。
  • 變數可以有空白的預設值。

名稱:變數名稱是用來識別其用途。

附註:如果相同流程中有多個資料集具有相同的變數名稱,就會被視為相同的變數。

預設值:如果變數值在執行時未遭到覆寫,系統就會將這個值插入路徑中的變數位置。

新增模式參數

上方的畫面中有一個模式參數化的範例。在這個範例中,您要將 POS-r 這個值後面的兩位數參數化。

萬用字元

最簡單的方式就是新增萬用字元:*

萬用字元可為長度不限的任何值 (包括空白字串)。

提示:萬用字元比對非常廣泛。如要使用萬用字元,其只應佔整個路徑的一小部分。某些執行環境針對可比對的檔案數量設有限制。

模式:規則運算式

您可以指定規則運算式進行比對,而不使用萬用字元比對。規則運算式是用來表示模式的標準化方法。

指定規則運算式時要在前後加上正斜線,如下所示:

/my_regular_expression/

附註:如果規則運算式的指定方法錯誤,可能會產生非預期的比對和結果,因此使用規則運算式時請務必謹慎。如要瞭解用於參數化的規則運算式有哪些限制,請參閱參數化總覽

以下規則運算式會比對與前述畫面相同的兩個來源:

/\_[0-9]*\_[0-9]*/

上述運算式會比對一個底線 (_),後面依序是任一位數、另一個底線和任一位數。

提示:在規則運算式中,部分字元可能有特殊意義。如要確保參照的是常值字元,您可以在相關字元前面插入反斜線 (\)。

上述運算式會比對兩個來源,但同時也會比對下列任一項目:

_2_1
__1
_1231231231231231235245234343_

這些比對結果可能並不正確。您可以改為讓運算式更具體,以產生更精確的比對結果:

/\_[0-9]{13}\_[0-9]{4}/

上述模式會比對一個底線,後面依序是 13 位數、另一個底線和另外 4 位數。這個模式只會比對上方的兩個來源,而不會比對其他數字模式。

模式:Cloud Dataprep 模式比對

Cloud Dataprep 模式是用來指定模式的平台專屬機制,比使用規則運算式簡單許多。這類簡易模式可涵蓋大部分以規則運算式做為模式運算式時的範圍,而不會有運算式和有時很複雜的語法所帶來的風險。如要進一步瞭解 Cloud Dataprep 模式,請參閱文字比對一文。

指定 Cloud Dataprep 模式時要在前後加上反引號,如下所示:

`my_pattern`

上述範例使用了以下規則運算式來比對正確的檔案集:

/\_[0-9]{13}\_[0-9]{4}/

使用 Cloud Dataprep 模式時,您可以用較簡單的格式表示上述規則運算式:

`\_{digit}{13}\_{digit}{4}`

這個語法較簡單,因此較易於剖析,且會與規則預算式版本執行相同的比對作業。

刪除參數

步驟:

  1. 在「Flow View」(流程檢視) 中,選取有參數圖示的資料集。
  2. 在內容選單中,選取 [Edit parameters...] (編輯參數...)
  3. 在「Edit Dataset with Parameters」(編輯含參數的資料集) 畫面中,選取您要移除的參數。
  4. 在彈出式視窗中,按一下 [Delete] (刪除)
  5. 儲存變更。
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁