管理資料類型
當您變更欄的資料類型或資料類型大小時,這可能會對使用資料集的任務產生影響。
支援的資料類型和轉換因目標平台而異。如需目標平台的特定文件,請參閱 設定前往目標的連線。
理解變更資料類型的影響
對於變更資料類型大小或切換至不同的資料類型,有兩個常見的使用案例:
- 擷取不適合目前資料類型的資料。
- 要求更大的數值準確度。例如,將 SMALLINT 變更為 DECIMAL (p,s)。
在大部分的情況下,變更資料類型將會產生 ALTER TABLE 操作,藉此防止資料損失。例如,若之前的資料類型是 STRING (25),而新的資料類型是 STRING (50),具有新資料類型的欄中資料將會更新,且不會有任何問題。不過,在某些情況下,變更資料類型將會造成捨棄並重新建立表格。例如,若之前的欄資料類型是 NUMBER,且您變更為 DATE,則會捨棄並重新建立表格,因為不可能將數字轉換為日期。同樣地,若目標平台不支援 ALTER 表格操作 (例如 Databricks),則會捨棄並重新建立表格。
在某些情況下,理論上可以改變表格,但由於潛在的複雜性,資料任務將會捨棄並重新建立表格。最後,有的情況是,潛在資料損失 (而非實際資料損失) 將會觸發捨棄和重新建立操作。例如,若您將 STRING(25) 變更為 STRING(1),則如果擷取的資料不適合 STRING(1),將會發生資料損失。不過,有可能 STRING(25) 永遠只包含一個字元,那麼實際上並不會發生資料損失,但仍會因為潛在的資料損失,而捨棄並重新建立表格。
變更為需要捨棄並重新建立表格的資料類型,無論目標平台是什麼
變更下列資料類型將會造成捨棄並重新建立表格:
- 位元組
- BLOB
- CLOB
- NCLOB
支援資料類型大小變更的目標平台,而不需要捨棄並重新建立表格
使用 Snowflake、Google BigQuery、Amazon Redshift、Microsoft SQL Server 和 Azure Synapse Analytics 時,您可以變更特定資料類型的大小,不需要捨棄並重新建立表格。下表列出上述每個平台支援哪些資料類型。
| 資料類型 | Snowflake | Google BigQuery | Azure Synapse Analytics | Microsoft SQL Server | Amazon Redshift |
|---|---|---|---|---|---|
|
INT1 |
否 |
是 |
是 |
是 |
否 |
|
INT2 |
否 |
是 |
是 |
是 |
否 |
|
INT4 |
否 |
是 |
是 |
是 |
否 |
|
INT8 |
否 |
是 |
是 |
是 |
否 |
|
REAL4 |
否 |
否 |
是 |
是 |
否 |
|
REAL8 |
否 |
否 |
是 |
是 |
否 |
|
UINT1 |
否 |
是 |
是 |
是 |
否 |
|
UINT2 |
否 |
是 |
是 |
是 |
否 |
|
UNIT4 |
否 |
是 |
是 |
是 |
否 |
|
UNIT8 |
否 |
是 |
是 |
是 |
否 |
|
數字 |
是 |
是 |
是 |
是 |
否 |
|
字串 |
是 |
是 |
是 |
是 |
是 |
|
WSTRING |
否 |
是 |
是 |
是 |
否 |
支援將資料類型變更為 STRING、而不需要捨棄並重新建立表格的目標平台
將資料移至 Microsoft SQL Server 和 Azure Synapse Analytics 時,您可以將下列資料類型變更為 STRING,不需要捨棄並重新建立表格:
- 布林
- 日期
- 時間
- 日期時間
- INT1
- INT2
- INT4
- INT8
- REAL4
- REAL8
- UINT1
- UINT2
- UNIT4
- UNIT8
- 數字
- WSTRING (僅 Azure Synapse Analytics 支援)
管理 JSON 資料
Qlik 於 2025 年引入了對 JSON 資料類型的支援。在引入之前建立的任務中,不支援 JSON 資料類型。在新任務中,包含 JSON 資料的欄位將轉換為目標平台指定的資料類型。如果您使用用戶端管理的 Data Movement gateway,則需要 Data Movement gateway 2024.11.78 或更高版本才能在登陸任務中探索 JSON 資料類型。
轉換 JSON 資料時,可能會建立這些新的全域轉換規則。
-
QLIK__解析成JSON
此規則是在 Snowflake 專案中建立的,其中登陸正在將資料載入到湖泊登陸區。此規則會新增到儲存任務中,在登陸之後,以在 Snowflake 中將所有 JSON 欄位解析成 JSON。
-
QLIK__JSON作為VARCHAR
此規則是在 Snowflake 專案中建立的,其中資料會登陸到 Snowflake,且儲存會建立 Snowflake 管理的 Iceberg 資料表。該規則將 JSON 轉換為 Varchar,因為 Iceberg 不支援 Variant 類型。
管理在引入 JSON 資料類型支援之前建立的任務中的現有 JSON 資料
-
如果您在資料平台中有現有任務,其中包含 JSON、VARIANT 或 SUPER 資料,且已轉換為另一種資料類型 (例如 BLOB),您可能需要考慮將欄位轉換為目標平台中用於 JSON 的資料類型。您可以使用轉換規則來執行此操作。如果您需要在下游任務中將新欄位與現有欄位一起使用,這可能是必要的。
-
另一種選擇是將新任務中的欄位轉換為現有資料類型中使用的相同資料類型,以維持向後相容性。