來源中繼資料參照

Wrangle 可讓您使用一組變數,透過程式參照資料集層面或其來源資料。這些中繼資料參照可以用來建立範圍更大和彈性更好的個別轉換作業。

提示:有些轉換步驟可以存取無法保留之原始資料來源的相關中繼資料。如果可能,最好是在方案中提早使用這些參照。如需其他資訊,請參閱以下說明。

提示:您可使用 $filepath$sourcerownumber,針對檔案型資料集中的任何資料列,建立用來識別來源資訊的主鍵。

$filepath

這個參照會擷取源自檔案的資料列的完整路徑。當您在應用程式中使用資料集時,知道每一列資料的來源檔案將會有所幫助。您可以使用 $filepath 函式,在方案中提早產生資料欄,以保留這個有用的資訊。

下列轉換可能會造成檔案路徑資訊無效或無法使用:

  • pivot
  • join
  • unnest

注意:對於來自關聯資料庫來源的值,這個參照會傳回空值。

注意:這個參照會傳回檔案路徑,不包含來自 URI 的結構定義或授權資訊。所以,在輸出內容中不會提供通訊協定識別碼 (例如 http://)。

注意:就 Avro 來源來說,如果您匯入的資料夾包含多個 Avro 檔案,系統會傳回資料夾路徑。如果是單一 Avro 檔案和其他多檔案資料集,將會傳回的完整路徑。

支援的檔案格式

基本檔案格式:

檔案格式是否支援? 附註
CSV
JSON
Excel有限

會傳回轉換 CSV 檔案在後端資料儲存庫上的完整路徑,這是臨時位置。無法提供原始 XLSX 檔案路徑。

壓縮檔 (Gzip、Bzip2 等)有限僅支援單一檔案封存。如果封存檔包含單一檔案,則傳回完整路徑。
資料夾傳回檔案的完整路徑。如果只要傳回資料夾路徑,您可以修改輸出欄。

其他檔案格式:

檔案格式是否支援? 附註
Avro
Parquet

其他來源類型:

格式是否支援? 附註
關聯資料表

限制

  • FILEPATH 函式會針對啟用此功能之前所收集的任何樣本產生空值,這是因為無法取得資訊。如要查看歷程資訊,您必須切至初始樣本或收集新樣本。
  • 啟用此函式後,日後收集的非初始樣本會稍微小一點,因為系統在收集樣本過程中所追蹤的 filepath 歷程資訊耗用了空間。您可能會在樣本中看到列數改變。

範例:

以下的範例會產生一個資料欄,其中包含資料集中每個資料列的 filepath 資訊:

derive type: single value: $filepath as: 'src_filepath'

您可以使用下列的額外步驟,從上述 src_filepath 資料欄擷取檔案名稱。

derive type: single value: RIGHTFIND(src_filepath, '\/', false, 0) as: 'rightfind__src_filepath'

derive type: single value: SUBSTRING(src_filepath, rightfind_src_filepath + 1, LEN(src_filepath)) as: 'filename'

drop col: rightfind_src_filepath action: Drop

$sourcerownumber

$sourcerownumber 變數是資料列編號的參照,即目前資料列原本在資料來源中的出現位置。

提示:如果來源資料列資訊仍可供使用,將滑鼠懸停在資料網格中任一資料列的左側,即可查看原始來源資料中的來源資料列編號。


限制:

  • 下列轉換可能會造成原始的資料列資訊無效或無法使用,在這類情況下,參照會傳回空值:
    • pivot
    • flatten
    • join
    • lookup
    • union
    • unnest
    • unpivot
  • 使用含參數的資料集時,$sourcerownumber 參照無法用於 Avro 或 Parquet 檔案。

  • 使用源自 Avro 檔案的資料集時,不支援 $sourcerownumber 參照。

  • 使用源自 Parquet 檔案的資料集時,不支援 $sourcerownumber 參照。

範例:

以下的範例會產生一個新資料欄,其中包含資料集中每個資料列的來源資料列編號 (如果有):

derive type: single value: $sourcerownumber as: 'src_rownumber'

如果您使用了 $filepath 參照,如同上述範例,您可以合併這兩個資料欄,以建立每個資料列來源的專屬索引鍵:

derive type: single value: MERGE([src_filename,src_rownumber],'-') as: 'src_key'

$col

$col 變數是目前評估中資料欄的參照。這個變數會參照目前資料集 (而非原始來源) 的狀態。

注意:這個參照僅適用於 edit with formula 轉換 (set 轉換)。

在下列範例中,資料集中的所有資料欄都是會轉換為大寫的 String 類型:

set col: * value: IF(ISMISMATCHED($col, ['String']), $col, UPPER($col))

上述的萬用字元會套用到每個資料欄的編輯。系統會測試每個資料欄,確認其是否與 String 資料類型不相符。如果不相符,就會寫入資料欄 ($col) 中的值。如果相符,則資料欄中的值就會轉換為大寫 (UPPER($col))。

提示:$col 對多欄轉換非常有用。

本頁內容對您是否有任何幫助?請提供意見:

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

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