左右合併預設選擇左合併
並集合並資料量過大時,系統主動打斷更新
直連:新增支援「impala 資料庫」中的資料表與 Excel 左右合併
在實際使用資料的過程中經常會有需要將兩張表聯合在一起形成一張新表使用的情況,
假如有這樣兩張資料表:
① Table A:記錄了學生姓名、英語成績
② Table B:記錄了學生姓名、數學成績
如果想在一張表中就看到學生的姓名、數學成績和英語成績,則可以使用「姓名」欄位作為「合併依據」進行左右合併。
不同的合併方式如下所示:
直連版本左右合併的兩張表不能來自兩個資料源中(抽數版本可以來自兩個資料源)。
合併後會報錯:[DIRECT-ETL] unsupported data source: databases on different hosts/ports
直連版本下,只有部分資料庫中的表可以和 Excel 表左右合併,詳細請參見:[直連]支援與Excel融合分析的資料庫
將「銷售明細」和「品牌維度」兩張表的欄位合到一張表進行分析。
1)在零售行業下找到 FineBI 自帶的資料表「銷售明細」表,並使用它建立自助資料集。如下圖所示:
2)勾選「銷售明細」表的所有欄位,如下圖所示:
注:建議使用者在進行左右合併前,減少表欄位名稱長度,避免出現欄位名稱過長導致的自助資料集儲存失敗問題。
1)如下圖,新增左右合併:
2)選擇要左右合併的表「品牌維度」,並勾選該表中要參與左右合併的欄位。如下圖所示:
注:要合併的表不能選擇當前自助資料集的子表,系統會提示“該表為當前表的子表,無法選擇”
3)選擇合併方式為「左合併」,並新增合併依據為「品牌編號」。如下圖所示:
合併依據欄位必須為同一欄位型別;
若左右兩表中有欄位名一致,系統會將其自動新增為合併依據。使用者可以手動刪除或新增合併依據。
合併方式說明:
兩張表的欄位合併到一張表中。
抽取資料(Spider 版本):合併依據會合併成一個欄位,只保留合併結果「品牌編號」,如下圖所示:
實時資料(直連版本):左表和右表的合併依據欄位都會保留,所以有兩個「品牌編號」欄位,如下圖所示:
實現「部門人數」和「銷售額」合併到一張表中,如下圖所示:
無法單獨使用一個欄位作為合併依據,所以需要「部門、地區」欄位共同作為合併依據。多個合併依據的意義即保證左右合併時資料的唯一性,如下圖所示:
左右合併的兩張表中如果有 null 值,null 之間不會互相匹配。
若進行左右合併的兩張表,它們的合併依據欄位中有重複項,左右合併後就會產生笛卡爾積,導致資料量膨脹。(比如說以「id」列作為合併依據,左表 id 欄位不唯一,右表 id 欄位不唯一,進行左右合併後就會產生笛卡爾積)
為了不影響系統的穩定性,當並集合並後資料量滿足以下情況時系統會主動打斷進行過 N:N 操作的自助資料集的更新:
進行並集合並後資料量超過 1 千萬;
膨脹係數>=5;膨脹係數:MIN (並集合並結果資料量/左表資料,並集合並結果資料量/右表資料)。例如,100w 資料和 500w 資料 N:N 結果為 2000w資料,那麼 N:N 膨脹係數為: 2000w/500w =4
若出現笛卡爾積,更新資訊處會提示使用者是否更新成功:
資料集生成成功:更新時檢查到笛卡爾積,資料膨脹,更新耗時增加,請檢查左右合併步驟中的合併依據列資料是否有重複值。
資料集生成失敗:更新時檢查到笛卡爾積,資料嚴重膨脹,操作中止。請檢查左右合併步驟中的合併依據列資料是否有重複值,請確定重複值不應過多。
若「更新資訊」處提示生成失敗,但使用者依舊要使用 N:N 進行分析,可以透過過濾等手段縮減資料量達到系統不打斷的要求。
資料表的欄位有空格會導致左右合併結果異常,在進行左右合併前,請確定合併資料表欄位中沒有空格。如下圖所示:
若建立的自助資料集為 資料分析使用者 建立的或者資料處理使用者在我的自助資料集建立的。
當資料量比較大時,可以在資料集的編輯過程中使用前 5000 行進行計算,使計算更為流暢,如下圖所示: