Hantera datatyper
När du ändrar datatypen eller datatypstorleken för en kolumn kan detta få konsekvenser för de uppgifter som använder datamängden.
Datatyper som stöds och konverteringar varierar beroende på målplattform. För specifik dokumentation för din målplattform, se Konfigurera kopplingar till mål.
Förstå effekten av att ändra en datatyp
Det finns två vanliga användningsfall för att ändra datatypstorlek eller att byta till en annan datatyp.
- Mata in data som inte passar i den aktuella datatypen.
- Ett krav för större numerär noggrannhet. Exempelvis att ändra SMALLINT till DECIMAL (p,s).
I de flesta fall leder ändring av datatyp till en ALTER TABLE-åtgärd vilket förhindrar dataförlust. Om exempelvis föregående datatyp var STRING (25) och den nya datatypen är STRING (50) kommer data i kolumnen med den nya datatypen att uppdateras utan problem. Men i vissa fall leder ändring av datatyp till att resultat i tabellen släpps och återskapas. Om exempelvis föregående kolumndatatyp var NUMBER och du ändrar den till DATE kommer tabellen att släppas och återskapas med siffervärden eftersom transformering till datum inte är möjligt. På samma sätt, om målplattformen inte har stöd för ALTER tabellåtgärder (som Databricks) släpps tabellen och återskapas.
Det förekommer vissa fall där det är teoretiskt möjligt att ändra en tabell men på grund av underliggande komplexitet kommer datauppgiften att släppas och återskapa tabellen. Slutligen finns det fall där potentiell dataförlust i stället för faktisk dataförlust löser ut ett släpp och en åtgärd för att återskapa. Om du exempelvis ändrar STRING(25) till STRING(1) kommer det att leda till dataförlust om inmatad data inte passar i STRING(1). Men det är möjligt att STRING(25) alltid kommer att behålla enbart ett tecken så i praktiken sker ingen dataförlust men tabellen släpps ändå för att återskapas på grund av potentiell dataförlust.
Ändringar av datatyp som kräver att tabellen släpps och återskapas oberoende av målplattform
Ändra följande datatyper leder till att tabellen släpps och återskapas.
- BYTES
- BLOB
- CLOB
- NCLOB
Målplattformar som har stöd för ändringar av datatypstorlek utan att släppa och återskapa tabellen
När du arbetar med Snowflake, Google BigQuery, Amazon Redshift, Microsoft SQL Server och Azure Synapse Analytics kan du ändra storlek på vissa datatyper utan att tabellen släpps och återskapas. Följande tabell listar vilka datatyper som stöds för var och en av föregående plattformar.
| Datatyp | Snowflake | Google BigQuery | Azure Synapse Analytics | Microsoft SQL Server | Amazon Redshift |
|---|---|---|---|---|---|
|
INT1 |
Nej |
Ja |
Ja |
Ja |
Nej |
|
INT2 |
Nej |
Ja |
Ja |
Ja |
Nej |
|
INT4 |
Nej |
Ja |
Ja |
Ja |
Nej |
|
INT8 |
Nej |
Ja |
Ja |
Ja |
Nej |
|
REAL4 |
Nej |
Nej |
Ja |
Ja |
Nej |
|
REAL8 |
Nej |
Nej |
Ja |
Ja |
Nej |
|
UINT1 |
Nej |
Ja |
Ja |
Ja |
Nej |
|
UINT2 |
Nej |
Ja |
Ja |
Ja |
Nej |
|
UNIT4 |
Nej |
Ja |
Ja |
Ja |
Nej |
|
UNIT8 |
Nej |
Ja |
Ja |
Ja |
Nej |
|
NUMERIC |
Ja |
Ja |
Ja |
Ja |
Nej |
|
sträng |
Ja |
Ja |
Ja |
Ja |
Ja |
|
WSTRING |
Nej |
Ja |
Ja |
Ja |
Nej |
Målplattformar som har stöd för ändringar av datatyper till STRING utan att tabellen släpps och återskapas
När du flyttar data till Microsoft SQL Server och Azure Synapse Analytics kan du ändra följande datatyper till STRING utan att tabellen släpps och återskapas:
- BOOLEAN
- DATE
- TIME
- DATETIME
- INT1
- INT2
- INT4
- INT8
- REAL4
- REAL8
- UINT1
- UINT2
- UNIT4
- UNIT8
- NUMERIC
- WSTRING (stöds enbart med Azure Synapse Analytics)
Hantera JSON-data
Qlik introducerade stöd för JSON-datatypen 2025. Stöd för JSON-datatyp är inte tillgängligt i uppgifter som skapats före introduktionen. I nya uppgifter kommer kolumner med JSON-data att konverteras till den datatyp som anges för målplattformen. Data Movement gateway 2024.11.78 eller högre krävs för att upptäcka JSON-datatyp i mellanlagringsuppgifter om du använder en klienthanterad gateway.
När JSON-data konverteras kan dessa nya globala transformeringsregler skapas.
-
QLIK__PARSE_TO_JSON
Denna regel skapas i Snowflake-projekt där mellanlagring laddar data till sjömellanlagring. Regeln läggs till i lagringsuppgiften efter mellanlagringen för att tolka alla JSON-kolumner till JSON i Snowflake.
-
QLIK__JSON_AS_VARCHAR
Denna regel skapas i Snowflake-projekt där data mellanlagras till Snowflake, och lagringen skapar Snowflake-hanterade Iceberg-tabeller. Regeln konverterar JSON till Varchar eftersom Iceberg inte stöder Variant-typen.
Hantera befintliga JSON-data i uppgifter som skapats innan stöd för JSON-datatypen introducerades
-
Om du har befintliga uppgifter med JSON-, VARIANT- eller SUPER-data i dataplattformen som konverterats till en annan datatyp, till exempel BLOB, kanske du vill överväga att konvertera kolumner till den datatyp som används för JSON i målplattformen. Du kan utföra detta med en transformeringsregel. Detta kan krävas om du behöver använda nya kolumner tillsammans med befintliga kolumner i nedströmsuppgifter.
-
Ett annat alternativ är att konvertera kolumnerna i den nya uppgiften till samma datatyp som används i befintliga datatyper för att bibehålla bakåtkompatibilitet.