Generic
Generic 載入前置詞允許將實體–屬性–值模型化資料 (EAV) 轉換為傳統的標準化關係表格結構。EAV 模型化也稱為「一般資料模型化」或「開啟結構描述」。
雖然技術上可以在 Qlik 中載入並分析 EAV 模型化資料,但使用對等的傳統關係資料結構通常更簡單。
語法:
Generic( loadstatement | selectstatement )
這些主題可協助您使用此函數:
主題 | 描述 |
---|---|
Crosstable | Crosstable 載入前置詞將水平方向的資料轉換為垂直方向的資料。從純粹的功能性觀點來看,這對 Generic 載入前置詞執行相對轉換,雖然前置詞通常用於完全不同的使用案例。 |
管理資料泛型資料庫 | 在此進一步說明 EAV 結構化資料模型。 |
範例 1 – 轉換含泛型載入前置詞的 EAV 結構化資料
概覽
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含載入到名為 Transactions 之表格的資料集。資料集包括日期欄位。使用預設 MonthNames 定義。
載入指令碼
Products:
Generic
Load * inline [
Product ID, Attribute, Value
13, Status, Discontinued
13, Color, Brown
20, Color, White
13, Size, 13-15
20, Size, 16-18
2, Status, Discontinued
5, Color, Brown
2, Color, White
44, Color, Brown
45, Size, 16-18
45, Color, Brown
];
結果
載入資料並開啟工作表。建立新的表格並將此欄位新增為維度: Color。
新增此量值:
=Count([Product ID])
現在您可以按色彩檢查產品數量。
色彩 | =Count([Product ID]) |
---|---|
棕色 | 4 |
白色 | 2 |
注意資料模型的形狀,其中每個屬性已分為根據原始目標表格標記 Product 命名的獨立表格。每個表格具有屬性作為後置詞。其中一個範例是 Product.Color。產生的產品屬性輸出記錄透過 Product ID 關聯。
產品 ID | 狀態 |
---|---|
13 | 已中斷 |
2 | 已中斷 |
產品 ID | 大小 |
---|---|
13 | 13-15 |
20 | 16-18 |
45 | 16-18 |
產品 ID | 色彩 |
---|---|
13 | 棕色 |
5 | 棕色 |
44 | 棕色 |
45 | 棕色 |
20 | 白色 |
2 | 白色 |
範例 2 – 分析不含泛型載入前置詞的 EAV 結構化資料
概覽
此範例顯示如何以原始形式分析 EAV 結構化資料。
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含載入到 EAV 結構中名為 Products 之表格的資料集。
在此範例中,我們仍在按色彩屬性計算產品數。若要分析以此方式結構化的資料,您將需要套用具有屬性值 Color 之產品的運算式層級篩選。
此外,個別屬性無法用來選取作為維度或欄位,因此更難判定如何建置有效的視覺化。
載入指令碼
Products:
Load * Inline
[
Product ID, Attribute, Value
13, Status, Discontinued
13, Color, Brown
20, Color, White
13, Size, 13-15
20, Size, 16-18
2, Status, Discontinued
5, Color, Brown
2, Color, White
44, Color, Brown
45, Size, 16-18
45, Color, Brown
];
結果
載入資料並開啟工作表。建立新的表格並將此欄位新增為維度: Value。
建立下列量值:
=Count({<Attribute={'Color'}>} [Product ID])
現在您可以按色彩檢查產品數量。
值 | =Count({<Attribute={'Color'}>} [Product ID]) |
---|---|
棕色 | 4 |
白色 | 2 |
範例 3 – 對從泛型載入 (進階) 產生的輸出表格去正規化
概覽
在此範例中,我們顯示透過 Generic 載入前置詞產生的正規化資料結構可以如何去正規化回到合併的 Product 維度表格。這是進階模型化技術,可作為資料模型效能微調的一部分採用。
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼
Products:
Generic
Load * inline [
Product ID, Attribute, Value
13, Status, Discontinued
13, Color, Brown
20, Color, White
13, Size, 13-15
20, Size, 16-18
2, Status, Discontinued
5, Color, Brown
2, Color, White
44, Color, Brown
45, Size, 16-18
45, Color, Brown
];
RENAME TABLE Products.Color TO Products;
OUTER JOIN (Products)
LOAD * RESIDENT Products.Size;
OUTER JOIN (Products)
LOAD * RESIDENT Products.Status;
DROP TABLES Products.Size,Products.Status;
結果
開啟資料模型檢視器並注意產生的資料模型形狀。僅存在一個去正規化的表格。這是三個中繼輸出表格的組合:Products.Size、Products.Status 和 Products.Color。
產品 |
---|
產品 ID |
狀態 |
色彩 |
大小 |
產品 ID | 狀態 | 色彩 | 大小 |
---|---|---|---|
13 | 已中斷 | 棕色 | 13-15 |
20 | - | 白色 | 16-18 |
2 | 已中斷 | 白色 | - |
5 | - | 棕色 | - |
44 | - | 棕色 | - |
45 | - | 棕色 | 16-18 |
載入資料並開啟工作表。建立新的表格並將此欄位新增為維度: Color。
新增此量值:
=Count([Product ID])
色彩 | =Count([Product ID]) |
---|---|
棕色 | 4 |
白色 | 2 |